1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 2002-2011 VLC authors and VideoLAN])
5 AC_INIT(vlc, 1.3.0-git)
15 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
17 COPYRIGHT_YEARS="1996-2011"
19 AC_CONFIG_SRCDIR(src/libvlc.c)
20 AC_CONFIG_AUX_DIR(autotools)
21 AC_CONFIG_MACRO_DIR(m4)
22 AC_CONFIG_LIBOBJ_DIR(compat)
25 AC_PRESERVE_HELP_ORDER
27 AM_INIT_AUTOMAKE(tar-ustar color-tests)
28 AM_CONFIG_HEADER(config.h)
30 # Disable with "./configure --disable-silent-rules" or "make V=1"
31 AM_SILENT_RULES([yes])
33 dnl Too many people are not aware of maintainer mode:
34 dnl If you want to use it, you definitely know what you are doing, so
35 dnl you can specify "--disable-maintainer-mode". But if you want the default
36 dnl automake behavior, you've likely never heard of maintainer mode, so we
37 dnl can't expect you to enable it manually.
38 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
39 [enable_maintainer_mode="yes"])
45 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
46 dnl AC_SUBST(vlcincludedir)
47 vlcdatadir="\${datadir}/\${PKGDIR}"
49 vlclibdir="\${libdir}/\${PKGDIR}"
56 AC_USE_SYSTEM_EXTENSIONS
57 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to 2 to get glibc warnings.])
58 AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
59 AC_DEFINE([_REENTRANT],, [Define to expose reentrant functions.])
60 AC_DEFINE([_THREAD_SAFE],, [Same as _REENTANT for some other OSes.])
61 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
67 _AM_DEPENDENCIES([OBJC])
73 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
74 AC_CHECK_PROGS(DESKTOP_FILE_VALIDATE, [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
76 dnl Check for compiler properties
81 dnl Extend the --help string at the current spot.
82 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
84 dnl Allow binary package maintainer to pass a custom string to avoid
86 AC_ARG_WITH(binary-version,
87 AS_HELP_STRING([--with-binary-version=STRING],
88 [To avoid plugins cache problem between binary version]),[],[])
89 AS_IF([test -n "${with_binary_version}"],[
90 AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
91 [Binary specific version])
95 dnl Check the operating system
107 CFLAGS="${CFLAGS} -pthread"
108 VLC_ADD_LIBS([vcd cdda vcdx],[-ldvd])
112 CFLAGS="${CFLAGS} -pthread"
115 CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
116 LDFLAGS="${LDFLAGS} -L/usr/local/lib"
119 CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
120 LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
126 dnl Force gcc "-arch" flag
130 ARCH_flag="-arch i386"
133 ARCH_flag="-arch ppc64"
136 ARCH_flag="-arch ppc"
139 ARCH_flag="-arch x86_64"
144 CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
145 CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
146 CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
147 OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"
148 LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
149 VLC_ADD_LIBS([mkv mp4 motion], [-Wl,-framework,IOKit,-framework,CoreFoundation])
150 VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup])
151 VLC_ADD_LIBS([avcodec avformat access_avio swscale postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
152 VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
153 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation])
156 dnl Check for Mac OS X SDK settings
158 AC_ARG_WITH(macosx-sdk,
159 [AS_HELP_STRING([--with-macosx-sdk=DIR],
160 [compile using the SDK in DIR])])
161 test "${with_macosx_sdk}" = "" && with_macosx_sdk=/Developer/SDKs/MacOSX10.5.sdk
162 ! test -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
163 CPP="${CPP} -isysroot ${with_macosx_sdk}"
164 CC="${CC} -isysroot ${with_macosx_sdk}"
165 CXX="${CXX} -isysroot ${with_macosx_sdk}"
166 OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
167 LD="${LD} -syslibroot ${with_macosx_sdk}"
168 AC_ARG_WITH(macosx-version-min,
169 [AS_HELP_STRING([--with-macosx-version-min=VERSION],
170 [compile for MacOS X VERSION and above])])
171 if test "${with_macosx_version_min}" != "" ; then
172 CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
173 CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
174 CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
175 OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
176 LD="${LD} -macosx_version_min=${with_macosx_version_min}"
177 CFLAGS="${CFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
178 CXXFLAGS="${CXXFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
179 OBJCFLAGS="${OBJCFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
180 MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
181 export MACOSX_DEPLOYMENT_TARGET
184 *mingw32* | *cygwin* | *wince* | *mingwce*)
185 AC_CHECK_TOOL(WINDRES, windres, :)
186 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
187 AC_DEFINE([_WIN32_WINNT], 0x0502, [Define to '0x0502' for Windows XP SP2 APIs.])
188 AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
191 *wince* | *mingwce* | *mingw32ce*)
193 dnl Sadly CeGCC still needs non-wince macros
199 dnl Check if we are using the mno-cygwin mode in which case we are
200 dnl actually dealing with a mingw32 compiler.
205 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
209 if test "${SYS}" = "mingw32"; then
210 VLC_ADD_LIBS([libvlccore],[-lnetapi32 -lwinmm])
211 VLC_ADD_LDFLAGS([vlc],[-mwindows])
212 VLC_ADD_LIBS([win32text],[-lgdi32])
213 VLC_ADD_LIBS([cdda vcdx sdl_image vout_sdl],[-lwinmm])
214 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
215 ac_default_prefix="`pwd`/_win32"
216 DESTDIR="`pwd`/_win32/"
219 dnl NSIS Installer prefix and WIN64
224 PROGRAMFILES="PROGRAMFILES64"
227 PROGRAMFILES="PROGRAMFILES"
230 AC_SUBST(PROGRAMFILES)
233 if test "${SYS}" = "mingwce"; then
234 VLC_ADD_LIBS([libvlccore],[-lmmtimer])
235 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
236 ac_default_prefix="`pwd`/_wince"
237 DESTDIR="`pwd`/_wince/"
254 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild"
260 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
261 AM_CONDITIONAL(HAVE_LINUX, test "${SYS}" = "linux")
262 AM_CONDITIONAL(HAVE_OS2, test "${SYS}" = "os2")
263 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
264 AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1")
265 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
266 AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
269 dnl Check for the contrib directory
272 [AS_HELP_STRING([--with-contrib[=DIR]],
273 [search for 3rd party libraries in DIR/include and DIR/lib])
275 AC_MSG_CHECKING([for 3rd party libraries path])
276 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
277 CONTRIB_DIR="${srcdir}/contrib/${host}"
278 AS_IF([test ! -d "${CONTRIB_DIR}"], [
279 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
280 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
281 AS_IF([test ! -d "${CONTRIB_DIR}"], [
282 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
283 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/${host}"
284 AS_IF([test ! -d "${CONTRIB_DIR}"], [
285 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
286 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/`$CC -dumpmachine`"
287 AS_IF([test ! -d "${CONTRIB_DIR}"], [
288 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
290 AC_MSG_RESULT([not found])
296 AS_IF([test "${with_contrib}" != "no"], [
297 CONTRIB_DIR="${with_contrib}"
300 AC_MSG_RESULT([disabled])
303 AS_IF([test -n "${CONTRIB_DIR}"], [
304 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
305 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
307 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
309 AC_MSG_RESULT([not usable])
313 AS_IF([test -n "${CONTRIB_DIR}"], [
314 AC_MSG_RESULT([${CONTRIB_DIR}])
315 export PATH=${CONTRIB_DIR}/bin:$PATH
316 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
317 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
318 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
319 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
320 AS_IF([test "$build" = "$host" -o "$PKG_CONFIG_LIBDIR"], [
321 export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
323 export PKG_CONFIG_LIBDIR="${CONTRIB_DIR}/lib/pkgconfig"
325 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
327 AS_IF([test "${SYS}" = "darwin"], [
328 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
329 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
332 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
333 AC_MSG_ERROR([Third party libraries not found!])
336 AC_SUBST(CONTRIB_DIR)
339 dnl Sadly autoconf does not think about testing foo.exe when ask to test
340 dnl for program foo on win32
342 case "${build_os}" in
344 ac_executable_extensions=".exe"
350 dnl Android is linux, but a bit different
351 AS_IF([test "$SYS" = linux],[
352 AC_MSG_CHECKING([for an Android system])
353 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
354 [[#ifndef __ANDROID__
365 AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")
369 dnl It's very bad, but our former custom system was worst
373 dnl override platform specific check for dependent libraries
374 dnl otherwise libtool linking of shared libraries will
375 dnl fail on anything other than pass_all.
376 AC_CACHE_VAL(lt_cv_deplibs_check_method,
377 [lt_cv_deplibs_check_method=pass_all])
379 LT_INIT([dlopen win32-dll shared disable-static])
381 LT_LANG([Windows Resource])
383 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
384 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
386 lt_cv_deplibs_check_method=pass_all
388 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
389 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
395 AM_GNU_GETTEXT_VERSION([0.18.1])
396 AM_GNU_GETTEXT([external])
403 dnl Check for broken versions of mingw-runtime compatability library
404 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
405 AC_MSG_CHECKING(for broken mingw-runtime)
406 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
408 #if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 15)
409 #ifndef __MINGW64_VERSION_MAJOR
410 # error Attempting to use mingw-runtime with broken vsnprintf support
416 AC_MSG_RESULT([present])
417 AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher!])
419 dnl force use of mingw provided c99 *printf over msvcrt
420 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
423 dnl Check for the need to include the mingwex lib for mingw32
424 if test "${SYS}" = "mingw32" ; then
425 AC_CHECK_LIB(mingwex,opendir,
426 AC_CHECK_LIB(mingw32,opendir,,
427 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
431 dnl Check for fnative-struct or mms-bitfields support for mingw32
432 if test "${SYS}" = "mingw32" ; then
434 CFLAGS="${CFLAGS} -mms-bitfields"
435 CXXFLAGS="${CXXFLAGS} -mms-bitfields"
436 AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
437 [ac_cv_c_mms_bitfields],
438 [AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
439 if test "${ac_cv_c_mms_bitfields}" = "no"; then
441 CFLAGS="${CFLAGS} -fnative-struct"
442 CXXFLAGS="${CXXFLAGS} -fnative-struct"
443 AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
444 [ac_cv_c_fnative_struct],
445 [AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
446 "${ac_cv_c_fnative_struct}" = "no" && VLC_RESTORE_FLAGS
451 dnl Buggy glibc prevention. Purposedly not cached.
452 dnl See sourceware.org bugs 5058 and 5443.
453 dnl Ubuntu alone has 20 bug numbers for this...
455 AC_MSG_CHECKING(for buggy GNU/libc versions)
456 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
458 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
459 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
460 # error GNU/libc with dcgettext killer bug!
463 AC_MSG_RESULT([not present])
465 AC_MSG_RESULT([found])
466 AS_IF([test "x${enable_nls}" != "xno"], [
467 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
468 work-around for this. Check with your distribution vendor on how to update the
469 glibc run-time. Alternatively, build with --disable-nls.])
473 dnl Plugin compilation stuff
477 dnl Check for system libs needed
480 dnl Check for usual libc functions
481 AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
482 AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r if_nameindex if_nametoindex isatty lstat memalign mmap openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp uselocale])
483 AC_REPLACE_FUNCS([asprintf 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 vasprintf])
484 AC_CHECK_FUNCS(fdatasync,,
485 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
488 # Windows CE does not have strcoll()
491 dnl Check for non-standard system calls
492 AC_CHECK_FUNCS([accept4 pipe2 eventfd vmsplice sched_getaffinity])
494 AH_BOTTOM([#include <vlc_fixups.h>])
497 AC_SEARCH_LIBS(poll, [poll], [
498 AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS has poll().])
500 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "os2"], [
501 AC_MSG_ERROR([poll() is required.])
505 dnl Check for struct pollfd
506 AC_CHECK_TYPES([struct pollfd],,,
507 [#include <sys/types.h>
510 #elif defined (WIN32)
511 # include <winsock2.h>
515 dnl Check for connect
518 AC_SEARCH_LIBS(connect, [socket], [
519 AS_IF([test "$ac_cv_search_connect" != "none required"], [
520 SOCKET_LIBS="$ac_cv_search_connect"
523 AS_IF([test "${SYS}" = "mingw32"], [
524 SOCKET_LIBS="-lws2_32"
526 AS_IF([test "${SYS}" = "mingwce"], [
531 AS_IF([test -n "$SOCKET_LIBS"], [
532 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}])
534 AC_SUBST(SOCKET_LIBS)
536 dnl Check for socklen_t
537 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
538 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
539 ac_cv_type_socklen_t,
540 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
541 [#include <sys/types.h>
543 # include <winsock2.h>
544 # include <ws2tcpip.h>
546 # include <sys/socket.h>
547 #endif]], [[socklen_t len; len = 0;]])],
548 ac_cv_type_socklen_t=yes,
549 ac_cv_type_socklen_t=no)])
550 AS_IF([test "$ac_cv_type_socklen_t" = no],
551 [AC_DEFINE(socklen_t, int)])
553 dnl Check for struct sockaddr_storage
554 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
555 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
556 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
558 [#include <sys/types.h>
559 #if defined( UNDER_CE )
560 # include <winsock2.h>
561 #elif defined( WIN32 )
562 # include <winsock2.h>
564 # include <sys/socket.h>
565 #endif], [struct sockaddr_storage addr;],
566 ac_cv_struct_sockaddr_storage=yes,
567 ac_cv_struct_sockaddr_storage=no)])
568 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
569 AC_DEFINE(sockaddr_storage, sockaddr)
570 AC_DEFINE(ss_family, sa_family)
573 dnl getaddrinfo, getnameinfo and gai_strerror check
574 dnl -lnsl and -lsocket are needed on Solaris;
575 dnl we purposedly make the test fail on Windows
577 AC_SEARCH_LIBS([getaddrinfo], [nsl],,, [${SOCKET_LIBS}])
580 dnl FreeBSD has a gnugetopt library for this:
582 AC_CHECK_FUNC(getopt_long,, [
583 AC_CHECK_LIB([gnugetopt],[getopt_long], [
584 GNUGETOPT_LIBS="-lgnugetopt"
587 AC_SUBST(GNUGETOPT_LIBS)
590 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])
597 AC_CHECK_LIB(m,lrintf, [
598 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
599 VLC_ADD_LIBS([skins2],[-lm])
602 dnl Check for dynamic plugins
604 have_dynamic_objects="no"
606 AC_SEARCH_LIBS(dlopen, [dl svld], [
607 AS_IF([test "$ac_cv_search_dlopen" != "none required"], [
608 LIBDL="$ac_cv_search_dlopen"
610 have_dynamic_objects="yes"
615 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
617 have_dynamic_objects="yes" #assume we can use shared objects
620 test "${enable_shared}" = "no" && have_dynamic_objects=no
622 AS_IF([test "${have_dynamic_objects}" != "no"], [
623 AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1,
624 [Define to 1 if dynamic plugins are supported.])
626 dnl Clear $LIBDL so as not to break linking
629 AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])
632 VLC_ADD_LIBS([realvideo lua],[$LIBDL])
634 dnl Check for thread library
635 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
636 dnl Check for pthreads - borrowed from XMMS
638 if test "${THREAD_LIB}" = "error"; then
639 AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
641 if test "${THREAD_LIB}" = "error"; then
642 AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
644 if test "${THREAD_LIB}" = "error"; then
645 AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
647 if test "${THREAD_LIB}" = "error"; then
648 AC_CHECK_FUNCS(pthread_mutex_lock)
652 VLC_ADD_LIBS([libvlccore libvlc vlc plugin],[${THREAD_LIB}])
654 AC_CHECK_LIB(rt, clock_nanosleep, [
655 VLC_ADD_LIBS([libvlccore],[-lrt])
657 AC_CHECK_FUNC(nanosleep,,[
658 AC_CHECK_LIB(rt,nanosleep, [
659 VLC_ADD_LIBS([libvlccore],[-lrt])
661 AC_CHECK_LIB(posix4,nanosleep, [
662 VLC_ADD_LIBS([libvlccore],[-lposix4])
667 AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
669 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
671 dnl Check for misc headers
672 AC_MSG_CHECKING(for strncasecmp in strings.h)
673 AC_EGREP_HEADER(strncasecmp,strings.h,[
675 AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
676 Define if <strings.h> defines strncasecmp.)],[
679 dnl Check for headers
680 AC_CHECK_HEADERS([search.h])
681 AC_CHECK_HEADERS(getopt.h strings.h locale.h xlocale.h)
682 AC_CHECK_HEADERS(fcntl.h sys/time.h sys/ioctl.h sys/stat.h)
683 AC_CHECK_HEADERS([arpa/inet.h netinet/udplite.h sys/eventfd.h])
684 AC_CHECK_HEADERS([net/if.h], [], [],
686 #include <sys/types.h>
687 #include <sys/socket.h>
689 AC_CHECK_HEADERS([sys/mount.h], [], [],
691 #include <sys/param.h>
694 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
695 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
696 AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
697 AC_CHECK_HEADERS(syslog.h)
698 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
700 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
701 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
702 AC_CHECK_TYPE(ssize_t,, [
703 AC_DEFINE(ssize_t, int)
706 dnl Check for threads library
707 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
708 AC_CHECK_HEADERS(pthread.h)
709 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
711 dnl It seems that autoconf detects pkg-config only during the first
712 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
713 dnl it is nested within a conditional block, so it was not working right.
714 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
715 AC_ARG_VAR(PKG_CONFIG_PATH,
716 [Paths where to find .pc not at the default location])
717 PKG_PROG_PKG_CONFIG()
719 dnl On some OS we need static linking
720 AS_IF([test -n "${PKG_CONFIG}" ],[
721 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
722 PKG_CONFIG="${PKG_CONFIG} --static"
728 dnl Check for zlib.h and -lz along with system -lminizip if available
730 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
731 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
732 if test "${have_zlib}" = "yes"
734 VLC_ADD_LIBS([access_http mp4 skins2 sap mkv unzip zip],[-lz])
735 PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
736 AC_CHECK_HEADERS([unzip.h], [
738 MINIZIP_LIBS="-lminizip -lz"
741 MINIZIP_CFLAGS="-I\\\${top_srcdir}/modules/access/zip/unzip"
742 MINIZIP_LIBS="\\\${top_builddir}/modules/access/zip/unzip/libunzip.la"
745 VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
746 VLC_ADD_LIBS([skins2],[$MINIZIP_LIBS])
748 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
751 dnl Manual switch for UTF-8
752 AC_ARG_ENABLE(non-utf8,
753 [AS_HELP_STRING([--enable-non-utf8],
754 [support legacy non-UTF-8 systems (default disabled)])],, [
755 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "os2"], [
759 AS_IF([test "${enable_non_utf8}" != "no"], [
760 AC_DEFINE([ASSUME_UTF8], [1],
761 [Define to 1 if the operating system uses UTF-8 internally])
767 [AS_HELP_STRING([--enable-dbus],
768 [compile D-Bus message bus support (default enabled)])])
771 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
774 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.0.0],
775 [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
776 VLC_ADD_LIBS([libvlccore],[$DBUS_LIBS])
777 VLC_ADD_CFLAGS([libvlccore],[$DBUS_CFLAGS])
778 dnl Check for dbus control interface
779 AC_ARG_ENABLE(dbus-control,
780 [AS_HELP_STRING([--disable-dbus-control],
781 [D-Bus control interface (default enabled)])])
782 if test "${enable_dbus_control}" != "no"
784 VLC_ADD_PLUGIN([dbus])
785 VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
786 VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
788 dnl Check for Telepathy
789 AC_ARG_ENABLE(telepathy,
790 AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
791 if test "${enable_telepathy}" != "no"; then
792 VLC_ADD_PLUGIN([telepathy])
793 VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
794 VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
796 dnl Power Management Inhibiter
797 VLC_ADD_PLUGIN([inhibit])
798 VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
799 VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
801 [AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])]
807 dnl Check for ntohl, etc.
809 CFLAGS="${CFLAGS} -Wall -Werror"
810 AC_CACHE_CHECK([for ntohl in sys/param.h],
811 [ac_cv_c_ntohl_sys_param_h],
812 [ AC_TRY_COMPILE([#include <sys/param.h>],
813 [int meuh; ntohl(meuh);],
814 ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
815 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
816 AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
820 EXTEND_HELP_STRING([Optimization options:])
822 dnl Compiler warnings
825 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])
826 RDC_PROG_CC_FLAGS([-pipe])
828 RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
835 [AS_HELP_STRING([--enable-debug],
836 [build with run-time assertions (default disabled)])],,
839 [Define to 1 if debug code should NOT be compiled])
840 AS_IF([test "${enable_debug}" != "no"], [
841 AC_CHECK_HEADERS([valgrind/valgrind.h])
850 [AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)])],,
852 AS_IF([test "${enable_gprof}" != "no"], [
853 CFLAGS="${CFLAGS} -pg"
854 CXXFLAGS="${CXXFLAGS} -pg"
855 OBJCFLAGS="${OBJCFLAGS} -pg"
856 LDFLAGS="${LDFLAGS} -pg"
860 [AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)])],,
862 AS_IF([test "${enable_gprof}" != "no"], [
863 CFLAGS="${CFLAGS} -finstrument-functions"
864 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
865 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
866 LDFLAGS="${LDFLAGS} -finstrument-functions"
872 AC_ARG_ENABLE(coverage,
873 [AS_HELP_STRING([--enable-coverage],
874 [build for test coverage (default disabled)])],,
875 [enable_coverage="no"])
876 AS_IF([test "${enable_coverage}" != "no"], [
877 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
878 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
879 LDFLAGS="-lgcov ${LDFLAGS}"
883 CFLAGS="${CFLAGS} -fvisibility=hidden"
884 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
885 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
886 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
887 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
888 [ac_cv_c_visibility_hidden], [
889 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
890 ac_cv_c_visibility_hidden=yes
892 ac_cv_c_visibility_hidden=no
895 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
900 dnl Enable/disable optimizations
902 AC_ARG_ENABLE(optimizations,
903 [AS_HELP_STRING([--disable-optimizations],
904 [disable compiler optimizations (default enabled)])],,
905 [enable_optimizations="yes"])
907 dnl Check for various optimization flags
908 AS_IF([test "${enable_optimizations}" != "no"], [
910 dnl -O4 and -O3 only in production builds
911 AS_IF([test "{enable_debug}" = "no"], [
913 CFLAGS="${CFLAGS} -O4"
914 CXXFLAGS="${CXXFLAGS} -O4"
915 OBJCFLAGS="${OBJCFLAGS} -O4"
916 AC_CACHE_CHECK([if $CC accepts -O4], [ac_cv_c_o4], [
917 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
923 AS_IF([test "${ac_cv_c_o4}" = "no"], [
925 CFLAGS="${CFLAGS} -O3"
926 CXXFLAGS="${CXXFLAGS} -O3"
927 OBJCFLAGS="${OBJCFLAGS} -O3"
928 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
929 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
935 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
939 dnl Check for -ffast-math
941 CFLAGS="${CFLAGS} -ffast-math"
942 CXXFLAGS="${CXXFLAGS} -ffast-math"
943 OBJCFLAGS="${OBJCFLAGS} -ffast-math"
944 AC_CACHE_CHECK([if $CC accepts -ffast-math], [ac_cv_c_fast_math], [
945 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
946 ac_cv_c_fast_math=yes
951 AS_IF([test "${ac_cv_c_fast_math}" = "no"], [VLC_RESTORE_FLAGS])
953 dnl Check for -funroll-loops
955 CFLAGS="${CFLAGS} -funroll-loops"
956 CXXFLAGS="${CXXFLAGS} -funroll-loops"
957 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
958 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
959 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
960 ac_cv_c_unroll_loops=yes
962 ac_cv_c_unroll_loops=no
965 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
967 AS_IF([test "$enable_debug" = "no"], [
968 dnl Check for -fomit-frame-pointer
970 CFLAGS="${CFLAGS} -fomit-frame-pointer"
971 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
972 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
973 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
974 [ac_cv_c_omit_frame_pointer], [
975 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
976 ac_cv_c_omit_frame_pointer=yes
978 ac_cv_c_omit_frame_pointer=no
981 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
985 dnl Check for Darwin plugin linking flags
986 AS_IF([test "${SYS}" = "darwin"], [
988 CFLAGS="${CFLAGS} -bundle -undefined error"
989 AC_CACHE_CHECK([if $CC accepts -bundle -undefined error],
991 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
997 AS_IF([test "${ac_cv_ld_darwin}" != "no"], [
998 VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1003 dnl Checks for __attribute__(aligned()) directive
1005 CFLAGS="${CFLAGS} -Werror"
1006 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1007 [ac_cv_c_attribute_aligned],
1008 [ac_cv_c_attribute_aligned=0
1009 for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1011 [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1012 [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1015 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1016 AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1017 [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1020 dnl Check for __attribute__((packed))
1021 AC_CACHE_CHECK([for __attribute__((packed))],
1022 [ac_cv_c_attribute_packed],
1023 [ac_cv_c_attribute_packed=no
1024 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1025 [ac_cv_c_attribute_packed=yes])])
1026 if test "${ac_cv_c_attribute_packed}" != "no"; then
1027 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1033 case "${host_cpu}" in
1042 dnl Check for backtrace() support
1043 AC_CHECK_HEADERS(execinfo.h)
1044 AC_CHECK_FUNCS(backtrace)
1049 ALIASES="${ALIASES} cvlc rvlc"
1052 dnl Some plugins aren't useful on some platforms
1054 if test "${SYS}" = "os2"; then
1055 VLC_ADD_PLUGIN([dynamicoverlay])
1056 elif test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1057 VLC_ADD_PLUGIN([dynamicoverlay access_shm])
1058 elif test "${SYS}" != "mingwce"; then
1059 VLC_ADD_PLUGIN([access_smb dmo globalhotkeys])
1060 VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1062 if test "${SYS}" = "darwin"; then
1063 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
1067 dnl Accelerated modules
1070 dnl Check for fully working MMX intrinsics
1071 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1072 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1074 [AS_HELP_STRING([--disable-mmx],
1075 [disable MMX optimizations (default auto)])],,[
1076 case "${host_cpu}" in
1087 AS_IF([test "${enable_mmx}" != "no"], [
1090 CFLAGS="${CFLAGS} -O -mmmx"
1091 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1092 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1093 [#include <mmintrin.h>
1095 uint64_t frobzor;]], [
1097 a = b = c = (__m64)frobzor;
1098 a = _mm_slli_pi16(a, 3);
1099 a = _mm_adds_pi16(a, b);
1100 c = _mm_srli_pi16(c, 8);
1101 c = _mm_slli_pi16(c, 3);
1102 b = _mm_adds_pi16(b, c);
1103 a = _mm_unpacklo_pi8(a, b);
1104 frobzor = (uint64_t)a;]])], [
1105 ac_cv_c_mmx_intrinsics=yes
1107 ac_cv_c_mmx_intrinsics=no
1111 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1112 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1116 CFLAGS="${CFLAGS} -mmmx"
1117 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1118 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1120 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1123 ac_cv_mmx_inline=yes
1128 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1129 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1133 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1134 [ac_cv_mmxext_inline], [
1135 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1137 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1140 ac_cv_mmxext_inline=yes
1142 ac_cv_mmxext_inline=no
1146 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1147 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1151 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1152 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1154 dnl Check for fully workin SSE2 intrinsics
1155 dnl We need support for -mmmx, we need <emmintrin.h>, and we also need a
1156 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1158 [AS_HELP_STRING([--disable-sse],
1159 [disable SSE (1-4) optimizations (default auto)])],, [
1160 case "${host_cpu}" in
1170 AS_IF([test "${enable_sse}" != "no"], [
1171 ARCH="${ARCH} sse sse2"
1174 CFLAGS="${CFLAGS} -O -msse2"
1175 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1176 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1177 [#include <emmintrin.h>
1179 uint64_t frobzor;]], [
1181 a = b = c = _mm_set1_epi64((__m64)frobzor);
1182 a = _mm_slli_epi16(a, 3);
1183 a = _mm_adds_epi16(a, b);
1184 c = _mm_srli_epi16(c, 8);
1185 c = _mm_slli_epi16(c, 3);
1186 b = _mm_adds_epi16(b, c);
1187 a = _mm_unpacklo_epi8(a, b);
1188 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1189 ac_cv_c_sse2_intrinsics=yes
1191 ac_cv_c_sse2_intrinsics=no
1195 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1196 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1200 CFLAGS="${CFLAGS} -msse"
1201 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1202 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1204 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1207 ac_cv_sse_inline=yes
1213 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1214 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1217 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1218 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1220 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1223 ac_cv_sse2_inline=yes
1225 ac_cv_sse2_inline=no
1228 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1229 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1234 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1235 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1237 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1240 ac_cv_sse3_inline=yes
1242 ac_cv_sse3_inline=no
1246 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1247 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1249 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1250 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1252 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1255 ac_cv_ssse3_inline=yes
1257 ac_cv_ssse3_inline=no
1261 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1262 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1265 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1266 [ac_cv_sse4_1_inline], [
1267 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1269 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1272 ac_cv_sse4_1_inline=yes
1274 ac_cv_sse4_1_inline=no
1278 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1279 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1282 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1283 [ac_cv_sse4_2_inline], [
1284 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1286 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1289 ac_cv_sse4_2_inline=yes
1291 ac_cv_sse4_2_inline=no
1295 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1296 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1299 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1300 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1302 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1305 ac_cv_sse4a_inline=yes
1307 ac_cv_sse4a_inline=no
1311 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1312 AC_DEFINE(CAN_COMPILE_SSE4A, 1, [Define to 1 if SSE4A inline assembly is available.]) ])
1314 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1317 CFLAGS="${CFLAGS} -mmmx"
1319 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1320 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1322 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1325 ac_cv_3dnow_inline=yes
1327 ac_cv_3dnow_inline=no
1331 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1332 AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1333 [Define to 1 if 3D Now! inline assembly is available.])
1336 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1340 [AS_HELP_STRING([--disable-neon],
1341 [disable NEON optimizations (default auto)])],, [
1342 AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1344 AS_IF([test "${enable_neon}" != "no"], [
1346 CFLAGS="${CFLAGS} -mfpu=neon"
1347 AC_CACHE_CHECK([if $CC groks NEON inline assembly], [ac_cv_neon_inline], [
1350 asm volatile("vqmovun.s64 d0, q1":::"d0");
1351 asm volatile("ssat r0, #1, r0":::"r0"); /* assume ARMv6 */
1354 ac_cv_neon_inline="-mfpu=neon"
1356 ac_cv_neon_inline="no"
1360 AS_IF([test "$ac_cv_neon_inline" != "no"], [
1361 NEON_CFLAGS="$ac_cv_neon_inline"
1362 AC_DEFINE([CAN_COMPILE_NEON], 1, [Define to 1 if NEON (and ARMv6) assembly is available with NEON_CFLAGS.])
1365 ac_cv_neon_inline="no"
1367 AC_SUBST(NEON_CFLAGS)
1368 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_neon_inline}" != "no"])
1371 AC_ARG_ENABLE(altivec,
1372 [AS_HELP_STRING([--disable-altivec],
1373 [disable AltiVec optimizations (default auto)])],, [
1374 AS_IF([test "${host_cpu}" = "powerpc"],
1375 [enable_altivec=yes], [enable_altivec=no])
1378 AS_IF([test "${enable_altivec}" = "yes"], [
1379 ARCH="${ARCH} altivec";
1381 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1382 [ac_cv_altivec_inline],
1383 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1384 ac_cv_altivec_inline="yes",
1385 [CFLAGS="${CFLAGS} -Wa,-m7400"
1386 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1387 [ac_cv_altivec_inline="-Wa,-m7400"],
1388 ac_cv_altivec_inline=no)
1391 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1392 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1393 [Define to 1 if AltiVec inline assembly is available.])
1394 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1395 VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1396 VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1397 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1402 dnl The AltiVec C extensions
1404 dnl There are several possible cases:
1405 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1406 dnl need <altivec.h>
1407 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1408 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1409 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1410 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1411 dnl - Others: test should fail
1413 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1415 [# OS X/PPC test (gcc 4.x)
1416 CFLAGS="${CFLAGS} -mpim-altivec -force_cpusubtype_ALL"
1417 AC_TRY_COMPILE([vector unsigned char foo;],
1418 [vec_ld(0, (unsigned char *)0);],
1419 [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1420 [# OS X/PPC test (gcc 3.x)
1421 CFLAGS="${CFLAGS} -faltivec"
1422 AC_TRY_COMPILE([vector unsigned char foo;],
1423 [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1424 [ac_cv_c_altivec="-faltivec"],
1425 dnl Below this are the Linux tests
1426 [# Linux/PPC test (gcc 4.x)
1427 CFLAGS="${CFLAGS} -maltivec"
1428 AC_TRY_COMPILE([#include <altivec.h>],
1429 [vec_ld(0, (unsigned char *)0);],
1430 [ac_cv_c_altivec="-maltivec"],
1431 [# Linux/PPC test (gcc 3.3)
1432 CFLAGS="${CFLAGS} -maltivec -mabi=altivec"
1433 AC_TRY_COMPILE([#include <altivec.h>],
1434 [vec_ld(0, (unsigned char *)0);],
1436 ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1437 [# Linux/PPC test (gcc 3.3)
1438 CFLAGS="${CFLAGS} -fvec"
1439 AC_TRY_COMPILE([#include <altivec.h>],
1440 [vec_ld(0, (unsigned char *)0);],
1441 [ac_cv_c_altivec="-fvec"],
1442 [ac_cv_c_altivec=no])
1450 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1451 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1452 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1453 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1454 VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1457 AC_CHECK_HEADERS(altivec.h)
1460 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1461 AC_CACHE_CHECK([if linker needs -framework vecLib],
1463 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1465 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1466 VLC_ADD_LIBS([libvlccore memcpyaltivec],[-Wl,-framework,vecLib])
1469 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1472 dnl Special arch tuning
1475 [AS_HELP_STRING([--with-tuning=ARCH],
1476 [tune compilation for an architecture (default varies)])])
1477 if test -n "${with_tuning}"; then
1478 if test "${with_tuning}" != "no"; then
1479 CFLAGS_TUNING="-mtune=${with_tuning}"
1482 if test "${SYS}" = "darwin" -a "${host_cpu}" = "i686"; then
1483 CFLAGS_TUNING="-march=prescott -mtune=generic"
1484 elif test "${SYS}" = "darwin" -a "${host_cpu}" = "x86_64"; then
1485 CFLAGS_TUNING="-march=core2 -mtune=core2"
1486 elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1487 CFLAGS_TUNING="-mtune=pentium2"
1488 elif test "${host_cpu}" = "x86_64"; then
1489 CFLAGS_TUNING="-mtune=athlon64"
1490 elif test "${host_cpu}" = "powerpc"; then
1491 CFLAGS_TUNING="-mtune=G4";
1495 dnl NOTE: this can't be cached cleanly
1496 AS_IF([test -n "${CFLAGS_TUNING}"], [
1498 CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1499 AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1500 AC_COMPILE_IFELSE([AC_LANG_SOURCE([])], [
1501 AC_MSG_RESULT([yes])
1505 AS_IF([test "${with_tuning}"], [AC_MSG_ERROR([requested tuning not supported])])
1512 AC_ARG_ENABLE(optimize-memory,
1513 [AS_HELP_STRING([--enable-optimize-memory],
1514 [optimize memory usage over performance])])
1515 if test "${enable_optimize_memory}" = "yes"; then
1516 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1520 dnl Allow running as root (useful for people running on embedded platforms)
1522 AC_ARG_ENABLE(run-as-root,
1523 [AS_HELP_STRING([--enable-run-as-root],
1524 [allow running VLC as root (default disabled)])])
1525 AS_IF([test "${enable_run_as_root}" = "yes"],[
1526 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1527 [Define to 1 to allow running VLC as root (uid 0).])
1534 [AS_HELP_STRING([--disable-sout],
1535 [disable streaming output (default enabled)])])
1536 AS_IF([test "${enable_sout}" != "no"], [
1537 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1539 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1543 [AS_HELP_STRING([--disable-lua],
1544 [disable LUA scripting support (default enabled)])])
1545 if test "${enable_lua}" != "no"
1547 PKG_CHECK_MODULES(LUA, lua5.1,
1550 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1551 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1554 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1556 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1559 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1560 [LUA_LIBS="-llua5.1"],
1561 AC_CHECK_LIB( lua51 , luaL_newstate,
1562 [LUA_LIBS="-llua51"],
1563 AC_CHECK_LIB( lua , luaL_newstate,
1571 if test "x${have_lua}" = "xyes" ; then
1572 VLC_ADD_LIBS([lua],[$LUA_LIBS])
1573 VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1575 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.])
1577 AC_ARG_VAR([LUAC], [LUA byte compiler])
1578 AC_PATH_PROGS(LUAC,[${LUAC} luac], [false])
1579 AS_IF([test "${LUAC}" = "false"], [
1580 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1583 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1589 AC_ARG_ENABLE(httpd,
1590 [AS_HELP_STRING([--disable-httpd],
1591 [disable the built-in HTTP server (default enabled)])])
1592 if test "${enable_httpd}" != "no"
1594 AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP daemon support)
1596 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1600 dnl VideoLAN manager
1603 [AS_HELP_STRING([--disable-vlm],
1604 [disable the stream manager (default enabled)])],,
1605 [enable_vlm="${enable_sout}"])
1606 AS_IF([test "${enable_vlm}" != "no"], [
1607 AS_IF([test "${enable_sout}" = "no"], [
1608 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1610 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1612 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1619 EXTEND_HELP_STRING([Input plugins:])
1622 dnl libproxy support
1624 AC_ARG_ENABLE(libproxy,
1625 [AS_HELP_STRING([--enable-libproxy],[support libproxy (default auto)])])
1626 AS_IF([test "${enable_libproxy}" != "no"], [
1627 PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1628 AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1629 VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1630 VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1632 AS_IF([test -n "${enable_libproxy}"], [
1633 AC_MSG_ERROR([${LIBPROXY_PKG_ERRORS}.])
1641 AC_ARG_ENABLE(live555,
1642 [AS_HELP_STRING([--enable-live555],
1643 [enable RTSP input through live555 (default enabled)])])
1644 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1647 AS_IF([test -z "${CONTRIB_DIR}"], [
1648 CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1650 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1652 AS_IF([test "${SYS}" = "solaris"], [
1653 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1655 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1657 AC_CACHE_CHECK([for live555 version 1275091200 or later], [ac_cv_live555], [
1658 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1659 [#include <liveMedia_version.hh>
1660 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1275091200)
1669 AS_IF([test "$ac_cv_live555" = "no"], [
1670 AC_MSG_WARN([liveMedia is missing or its installed version is too old:
1671 Version 2010.05.29 or later is required to proceed.
1672 You can get an updated one from http://www.live555.com/liveMedia .])
1673 AS_IF([test -n "${enable_live555}"], [
1674 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1676 ac_cv_live555_usable=""
1678 dnl Check that live555 is patched correctly.
1679 AC_CACHE_CHECK([for live555 usability], [ac_cv_live555_usable], [
1680 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1681 [#include <locale.h>
1683 # include <xlocale.h>
1688 #include <Locale.hh>
1690 #include <GroupsockHelper.hh>]], [
1691 [struct in_addr addr;
1692 our_inet_ntoa(addr, NULL);]])
1694 ac_cv_live555_usable="yes"
1696 ac_cv_live555_usable="no"
1699 AS_IF([test "$ac_cv_live555_usable" = "no"], [
1700 AC_MSG_ERROR([liveMedia lacks patches and is not usable.
1701 Please apply our patches from the VLC contrib (contrib/src/live555/).
1702 You can also disable RTSP input with --disable-live555. You were warned.])
1704 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1705 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1706 AS_IF([test "${SYS}" = "mingw32"], [
1707 # add ws2_32 for closesocket, select, recv
1708 other_libs="$other_libs -lws2_32"
1709 ], [test "${SYS}" = "mingwce"], [
1710 # add ws2 for closesocket, select, recv
1711 other_libs="$other_libs -lws2"
1714 dnl We need to check for pic because live555 don't provide shared libs
1715 dnl and we want to build a plugins so we need -fPIC on some arch.
1716 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1717 AC_CHECK_LIB(liveMedia_pic, main, [
1718 VLC_ADD_PLUGIN([live555])
1719 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1721 AC_CHECK_LIB(liveMedia, main, [
1722 VLC_ADD_PLUGIN([live555])
1723 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1724 ],[],[${other_libs}])],[${other_libs_pic}])
1731 dnl - special access module for dc1394 input
1732 dnl - dv module: digital video module check for libraw1394
1733 dnl - linsys modules: access module check for libzvbi
1735 PKG_ENABLE_MODULES_VLC([DC1394], [], [libraw1394 >= 2.0.1 libdc1394-2 >= 2.1.0], [dc1394 access module], [auto])
1736 PKG_ENABLE_MODULES_VLC([DV], [access_dv], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV input module], [auto])
1738 AC_ARG_ENABLE(linsys,
1739 [AS_HELP_STRING([--enable-linsys],
1740 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
1741 if test "$SYS" = "linux" -a "${enable_linsys}" != "no"; then
1742 VLC_ADD_PLUGIN([linsys_hdsdi])
1743 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28],
1744 [ VLC_ADD_LIBS([linsys_sdi],[$LINSYS_SDI_LIBS])
1745 VLC_ADD_CFLAGS([linsys_sdi],[$LINSYS_SDI_CFLAGS])
1746 VLC_ADD_PLUGIN([linsys_sdi]) ],
1747 [AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])]
1752 dnl dvdread module: check for libdvdread
1754 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread], [dvdread input module], [auto])
1757 dnl libdvdnav plugin
1759 AC_ARG_ENABLE(dvdnav,
1760 [AS_HELP_STRING([--disable-dvdnav],
1761 [disable DVD navigation with libdvdnav (default auto)])])
1762 if test "${enable_dvdnav}" != "no"
1764 PKG_CHECK_MODULES(DVDNAV, dvdnav, [
1765 VLC_ADD_PLUGIN([dvdnav])
1766 VLC_ADD_CFLAGS([dvdnav],[${DVDNAV_CFLAGS}])
1767 VLC_ADD_LIBS([dvdnav],[${DVDNAV_LIBS}])
1768 AC_CHECK_LIB(dvdnav, dvdnav_get_video_resolution,
1769 AC_DEFINE(HAVE_DVDNAV_GET_VIDEO_RESOLUTION, 1, [Define if you have dvdnav_get_video_resolution.]),
1770 [], [${LIBS_dvdnav}])
1771 AC_CHECK_LIB(dvdnav, dvdnav_describe_title_chapters,
1772 AC_DEFINE(HAVE_DVDNAV_DESCRIBE_TITLE_CHAPTERS, 1, [Define if you have dvdnav_describe_title_chapters.]),
1773 [], [${LIBS_dvdnav}])],
1774 [AC_MSG_WARN([${DVDNAV_PKG_ERRORS}.])])
1778 dnl Windows DirectShow access module
1780 AC_ARG_ENABLE(dshow,
1781 [AS_HELP_STRING([--disable-dshow],
1782 [support DirectShow (default auto)])])
1783 if test "${enable_dshow}" != "no"
1785 if test "${SYS}" = "mingw32"
1788 AC_CHECK_HEADERS(dshow.h,
1789 [ VLC_ADD_PLUGIN([dshow])
1790 VLC_ADD_CXXFLAGS([dshow],[])
1791 VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
1797 dnl Blu-ray Disc Support with libbluray
1799 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.2 libxml-2.0 >= 2.6 ], (libbluray for Blu-ray disc support ) )
1802 dnl OpenCV wrapper and example filters
1804 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv], (OpenCV (computer vision) filter), [off])
1808 dnl libsmbclient plugin
1811 [AS_HELP_STRING([--disable-smb], [disable SMB/CIFS support (default auto)])])
1812 if test "${enable_smb}" != "no"; then
1813 AC_CHECK_HEADERS(libsmbclient.h,
1814 [ VLC_ADD_PLUGIN([access_smb])
1815 VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
1816 [ if test -n "${enable_smb}"; then
1817 AC_MSG_ERROR([cannot find libsmbclient headers])
1823 dnl sftp access support
1826 [AS_HELP_STRING([--enable-sftp],
1827 [support SFTP file transfer via libssh2 (default disabled)])])
1828 if test "${enable_sftp}" = "yes"; then
1829 AC_CHECK_HEADERS(libssh2.h, [
1830 VLC_ADD_PLUGIN([access_sftp])
1831 VLC_ADD_LIBS([access_sftp], [-lssh2])
1838 AC_ARG_ENABLE(libv4l2, [AS_HELP_STRING([--disable-libv4l2],
1839 [disable userspace V4L2 library (default auto)])])
1840 AC_ARG_ENABLE(pvr, [AS_HELP_STRING([--enable-pvr],
1841 [support PVR V4L2 cards (default disabled)])])
1843 AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h], [
1846 AS_IF([test "$have_v4l2" = "yes"], [
1847 AS_IF([test "${enable_libv4l2}" != "no"], [
1848 PKG_CHECK_MODULES(LIBV4L2, libv4l2, [
1849 AC_DEFINE(HAVE_LIBV4L2, 1, [Define to 1 if libv4l2 is available])
1851 AC_MSG_WARN([${LIBV4L2_PKG_ERRORS}.])
1854 AS_IF([test "${enable_pvr}" = "yes"], [
1855 VLC_ADD_PLUGIN([pvr])
1858 AM_CONDITIONAL(HAVE_V4L2, [test "${have_v4l2}" != "no"])
1861 dnl special access module for Blackmagic SDI cards
1863 AC_ARG_ENABLE(decklink,
1864 [AS_HELP_STRING([--disable-decklink],
1865 [disable Blackmagic DeckLink SDI input (default auto)])])
1866 AC_ARG_WITH(decklink_sdk,
1867 [AS_HELP_STRING[--with-decklink-sdk=DIR],
1868 [ location of Blackmagic DeckLink SDI SDK])])
1869 if test "${enable_decklink}" != "no"
1871 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1873 VLC_ADD_CPPFLAGS([decklink],[-I${with_decklink_sdk}/include])
1876 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1878 AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
1879 VLC_ADD_PLUGIN([decklink])
1880 ],[AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)])
1887 dnl gnomeVFS access module
1889 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
1895 [AS_HELP_STRING([--enable-vcdx],
1896 [navigate VCD with libvcdinfo (default disabled)])])
1897 if test "${enable_vcdx}" = "yes"
1899 PKG_CHECK_MODULES(LIBCDIO, [libcdio >= 0.78.2 libiso9660 >= 0.72],
1900 [VLC_ADD_LIBS([vcdx],[$LIBCDIO_LIBS])
1901 VLC_ADD_CFLAGS([vcdx],[$LIBCDIO_CFLAGS])],
1902 [AC_MSG_ERROR([${LIBCDIO_PKG_ERRORS} (required for vcdx plugin).])])
1903 PKG_CHECK_MODULES(LIBVCDINFO, libvcdinfo >= 0.7.22,
1904 [VLC_ADD_LIBS([vcdx],[$LIBVCDINFO_LIBS])
1905 VLC_ADD_CFLAGS([vcdx],[$LIBVCDINFO_CFLAGS])],
1906 [AC_MSG_ERROR([${LIBVCDINFO_PKG_ERRORS} (required for vcdx plugin).])])
1907 VLC_ADD_PLUGIN([vcdx])
1911 dnl Built-in CD-DA and VCD module
1914 [AS_HELP_STRING([--disable-vcd],
1915 [disable built-in VCD and CD-DA support (default enabled)])])
1917 AC_ARG_ENABLE(libcddb,
1918 [AS_HELP_STRING([--disable-libcddb],
1919 [disable CDDB for Audio CD (default enabled)])])
1921 if test "${enable_vcd}" != "no"
1923 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1924 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1926 VLC_ADD_PLUGIN([vcd cdda])
1931 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1932 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1934 VLC_ADD_PLUGIN([vcd cdda])
1935 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1940 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1941 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1943 VLC_ADD_PLUGIN([vcd cdda])
1944 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1949 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2"
1951 VLC_ADD_PLUGIN([vcd cdda])
1954 if test "${SYS}" = "darwin"
1956 VLC_ADD_PLUGIN([vcd cdda])
1957 VLC_ADD_LIBS([vcd vcdx cdda],[-Wl,-framework,IOKit,-framework,CoreFoundation])
1958 VLC_ADD_LIBS([vcdx cdda],[-liconv])
1961 if test "$enable_libcddb" != "no"; then
1962 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
1964 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
1965 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
1966 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
1968 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
1976 AC_CACHE_CHECK([for Linux DVB version 5], [ac_cv_linux_s2api], [
1977 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1978 [#include <linux/dvb/version.h>
1979 #if (DVB_API_VERSION < 5)
1982 ac_cv_linux_s2api=yes
1984 ac_cv_linux_s2api=no
1986 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_s2api" = "yes"])
1989 dnl Screen capture module
1991 AC_ARG_ENABLE(screen,
1992 [AS_HELP_STRING([--enable-screen],
1993 [disable screen capture (default enabled)])])
1994 if test "${enable_screen}" != "no"; then
1995 if test "${SYS}" = "darwin"; then
1996 AC_CHECK_HEADERS(OpenGL/gl.h, [
1997 AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
1998 VLC_ADD_PLUGIN([screen])
1999 VLC_ADD_LIBS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2002 elif test "${SYS}" = "mingw32"; then
2003 VLC_ADD_PLUGIN([screen])
2004 VLC_ADD_LIBS([screen],[-lgdi32])
2009 dnl Real RTSP plugin
2011 AC_ARG_ENABLE(realrtsp,
2012 [ --enable-realrtsp Real RTSP module (default disabled)])
2013 if test "${enable_realrtsp}" = "yes"; then
2014 VLC_ADD_PLUGIN([access_realrtsp])
2019 AC_ARG_ENABLE(macosx-eyetv,
2020 [ --enable-macosx-eyetv Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
2021 if test "x${enable_macosx_eyetv}" != "xno" &&
2022 (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
2024 VLC_ADD_LIBS([access_eyetv], [-Wl,-framework,Foundation])
2025 VLC_ADD_PLUGIN([access_eyetv])
2030 AC_ARG_ENABLE(macosx-qtkit,
2031 [ --enable-macosx-qtkit Mac OS X qtcapture (video) and qtsound (audio) module (default enabled on Mac OS X)])
2032 if test "x${enable_macosx_qtkit}" != "xno" &&
2033 (test "${SYS}" = "darwin" || test "${enable_macosx_qtkit}" = "yes")
2035 VLC_ADD_PLUGIN([qtcapture])
2036 VLC_ADD_PLUGIN([qtsound])
2038 AM_CONDITIONAL(HAVE_QTKIT, [test "${SYS}" = "darwin" -a "x${enable_macosx_qtkit}" != "xno"])
2045 EXTEND_HELP_STRING([Mux/Demux plugins:])
2048 dnl libdvbpsi check for ts mux/demux
2051 PKG_WITH_MODULES([DVBPSI], [libdvbpsi], [have_dvbpsi="yes"])
2052 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
2056 dnl GME demux plugin
2059 [AS_HELP_STRING([--enable-gme],
2060 [use Game Music Emu (default auto)])])
2061 AS_IF([test "${enable_gme}" != "no"], [
2062 AC_CHECK_HEADER([gme/gme.h], [
2063 VLC_ADD_LIBS([gme], [-lgme])
2064 VLC_ADD_PLUGIN([gme])
2066 AS_IF([test "x${enable_gme}" != "x"], [
2067 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2077 [AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)])])
2078 AS_IF([test "${enable_sid}" != "no"], [
2079 PKG_CHECK_MODULES(SID, [libsidplay2], [
2081 oldCPPFLAGS="$CPPFLAGS"
2082 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2083 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2084 VLC_ADD_PLUGIN([sid])
2085 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2086 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2088 AS_IF([test -n "${enable_sid}"],
2089 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2090 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2093 CPPFLAGS="$oldCPPFLAGS"
2096 AS_IF([test "x${enable_sid}" = "xyes"],
2097 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2098 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2105 dnl ogg demux plugin
2107 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2108 if test "${enable_sout}" != "no"; then
2109 PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg mux support], [auto])
2110 dnl Check for libshout
2111 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2115 dnl matroska demux plugin
2118 [AS_HELP_STRING([--disable-mkv],
2119 [do not use libmatroska (default auto)])])
2120 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2122 AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2123 AC_MSG_CHECKING(for libebml version >= 1.0.0)
2125 [#include <ebml/EbmlVersion.h>
2126 #ifdef LIBEBML_VERSION
2127 #if LIBEBML_VERSION >= 0x010000
2131 [AC_MSG_RESULT([yes])
2132 AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2133 AC_MSG_CHECKING(for libmatroska version >= 1.0.0)
2135 [#include <matroska/KaxVersion.h>
2136 #ifdef LIBMATROSKA_VERSION
2137 #if LIBMATROSKA_VERSION >= 0x010000
2141 [AC_MSG_RESULT([yes])
2142 AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2143 VLC_ADD_CXXFLAGS([mkv],[])
2144 if test "${SYS}" = "darwin"; then
2145 VLC_ADD_CXXFLAGS([mkv],[-O1])
2147 AC_CHECK_LIB(ebml_pic, main, [
2148 VLC_ADD_PLUGIN([mkv])
2149 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2151 AC_CHECK_LIB(ebml, main, [
2152 VLC_ADD_PLUGIN([mkv])
2153 VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2158 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.])
2162 [AC_MSG_RESULT([no])
2163 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.])
2170 dnl modplug demux plugin
2173 [AS_HELP_STRING([--disable-mod],
2174 [do not use libmodplug (default auto)])])
2175 if test "${enable_mod}" != "no" ; then
2176 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2177 VLC_ADD_PLUGIN([mod])
2178 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2179 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2181 AS_IF([test -n "${enable_mod}"],
2182 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2183 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2188 dnl mpc demux plugin
2191 [AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)])])
2192 if test "${enable_mpc}" != "no"
2194 AC_CHECK_HEADERS([mpc/mpcdec.h], [
2195 VLC_ADD_PLUGIN([mpc])
2196 VLC_ADD_LIBS([mpc],[-lmpcdec])],
2197 [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2198 VLC_ADD_PLUGIN([mpc])
2199 VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2206 EXTEND_HELP_STRING([Codec plugins:])
2211 AC_ARG_ENABLE(wma-fixed,
2212 [ --enable-wma-fixed libwma-fixed module (default disabled)])
2213 if test "${enable_wma_fixed}" = "yes"
2215 VLC_ADD_PLUGIN([wma_fixed])
2219 dnl shine fixed point mp3 encoder
2221 AC_ARG_ENABLE(shine,
2222 [ --enable-shine shine mp3 encoding module (default disabled)])
2223 if test "${enable_shine}" = "yes"
2225 VLC_ADD_PLUGIN([shine])
2229 dnl openmax il codec plugin
2231 AC_ARG_ENABLE(omxil,
2232 [ --enable-omxil openmax il codec module (default disabled)])
2233 if test "${enable_omxil}" = "yes"
2235 VLC_ADD_PLUGIN([omxil])
2236 VLC_ADD_LIBS([omxil], [$LIBDL])
2240 dnl iomx codec plugin
2243 [ --enable-iomx iomx codec module (default disabled)])
2244 if test "${enable_iomx}" = "yes"
2247 CPPFLAGS="${CPPFLAGS} -I${srcdir}/modules/codec/omxil" # For the OMX headers
2249 AC_CHECK_HEADER(media/stagefright/OMXClient.h, [
2250 VLC_ADD_PLUGIN([iomx])
2251 VLC_ADD_CXXFLAGS([iomx], [-fno-exceptions -fno-rtti])
2252 VLC_ADD_LIBS([iomx], [-lstagefright -lmedia -lutils -lbinder])
2254 AC_MSG_ERROR("Could not find IOMX headers")
2261 dnl CrystalHD codec plugin
2263 AC_ARG_ENABLE(crystalhd,
2264 [ --enable-crystalhd crystalhd codec plugin (default auto)])
2265 if test "${enable_crystalhd}" != "no"; then
2266 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2267 VLC_ADD_PLUGIN([crystalhd])
2268 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2270 if test "${SYS}" = "mingw32" ; then
2271 AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2272 VLC_ADD_PLUGIN([crystalhd])
2273 AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2274 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2277 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2278 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2279 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2280 ],[#define __LINUX_USER__
2281 #include <libcrystalhd/bc_dts_types.h>
2285 #include <libcrystalhd/bc_dts_types.h>
2293 [ --enable-mad libmad module (default enabled)])
2294 if test "${enable_mad}" != "no"
2297 [ --with-mad=PATH path to libmad],[],[])
2298 if test "${with_mad}" != "no" -a -n "${with_mad}"
2300 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2301 VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2304 AC_ARG_WITH(mad-tree,
2305 [ --with-mad-tree=PATH mad tree for static linking],[],[])
2306 if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2308 real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2309 if test -z "${real_mad_tree}"
2311 dnl The given directory can't be found
2313 AC_MSG_ERROR([${with_mad_tree} directory does not exist])
2315 dnl Use a custom libmad
2316 AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2317 if test -f ${real_mad_tree}/mad.h
2320 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2321 VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2323 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2324 AC_CHECK_LIB(mad, mad_bit_init, [
2325 VLC_ADD_PLUGIN([mpgatofixed32])
2326 VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2327 ],[ AC_MSG_ERROR([the specified tree has not been compiled ])
2332 AC_MSG_ERROR([the specified tree does not have mad.h])
2336 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_mpgatofixed32}"
2337 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2338 AC_CHECK_HEADERS(mad.h, ,
2339 [ 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.]) ])
2340 AC_CHECK_LIB(mad, mad_bit_init, [
2341 VLC_ADD_PLUGIN([mpgatofixed32])
2342 VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2343 [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2349 AC_ARG_ENABLE(merge-ffmpeg,
2350 [ --enable-merge-ffmpeg merge FFmpeg-based plugins (default disabled)],, [
2351 enable_merge_ffmpeg="no"
2353 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2356 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
2357 AC_CACHE_CHECK([if linker supports -Bsymbolic],
2358 [ac_cv_ld_bsymbolic],
2359 [AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)])
2363 dnl avcodec decoder/encoder plugin
2365 AC_ARG_ENABLE(avcodec,
2366 [ --enable-avcodec libavcodec codec (default enabled)])
2367 AS_IF([test "${enable_avcodec}" != "no"], [
2368 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 52.25.0 libavutil],
2371 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2372 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2373 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2374 AC_CHECK_HEADERS(libavutil/avutil.h)
2375 VLC_ADD_PLUGIN([avcodec])
2376 VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2377 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2378 VLC_ADD_LIBS([avcodec],[-Wl,-Bsymbolic])
2380 VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2384 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2391 dnl libva needs avcodec
2393 AC_ARG_ENABLE(libva,
2394 [ --enable-libva VAAPI GPU decoding support (libVA) (default auto)])
2396 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2397 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2399 AS_IF([test "${enable_libva}" != "no"], [
2400 PKG_CHECK_MODULES(LIBVA, [libva libva-x11], [
2402 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2403 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2404 AC_CHECK_HEADERS(libavcodec/vaapi.h, [
2405 VLC_ADD_LIBS([avcodec],[$LIBVA_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11])
2406 VLC_ADD_CFLAGS([avcodec],[$LIBVA_CFLAGS ${X_CFLAGS}])
2407 AC_DEFINE(HAVE_AVCODEC_VAAPI, 1, [Define if avcodec has to be built with VAAPI support.])
2408 AC_MSG_NOTICE([VAAPI acceleration activated])
2410 AS_IF([test -n "${enable_libva}"], [
2411 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2413 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2418 AS_IF([test -n "${enable_libva}"], [
2419 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2421 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2427 dnl dxva2 needs avcodec
2429 AC_ARG_ENABLE(dxva2,
2430 [ --enable-dxva2 DxVA2 GPU decoding support (default auto)])
2432 AS_IF([test "${enable_dxva2}" != "no"], [
2433 if test "${SYS}" = "mingw32"; then
2434 AS_IF([test "x${have_avcodec}" = "xyes"], [
2435 AC_CHECK_HEADERS(dxva2api.h,
2437 AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2438 VLC_ADD_LIBS([avcodec],[-lole32 -lshlwapi -luuid])
2439 AC_DEFINE(HAVE_AVCODEC_DXVA2, 1, [Define if avcodec has to be built with DxVA2 support.])
2440 echo "DxVA2 acceleration activated"
2442 AS_IF([test "${enable_dxva2}" = "yes"],
2443 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2444 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2447 AS_IF([test "${enable_dxva2}" = "yes"],
2448 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2449 [AC_MSG_WARN([dxva2api.h not found])])
2452 AS_IF([test "x${enable_dxva2}" != "x"], [
2453 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2461 dnl stream_out switcher needs libavcodec
2463 AC_ARG_ENABLE(switcher,
2464 [ --enable-switcher Stream-out switcher plugin (default disabled)])
2465 AS_IF([test "${enable_switcher}" = "yes"], [
2466 AS_IF([test "x${have_avcodec}" = "xyes"], [
2467 VLC_ADD_PLUGIN([stream_out_switcher])
2468 VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS $AVUTIL_LIBS])
2469 VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS $AVUTIL_CFLAGS])
2470 ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2476 dnl avformat demuxer/muxer plugin
2479 AC_ARG_ENABLE(avformat,
2480 [ --enable-avformat libavformat containers (default enabled)],, [
2481 enable_avformat="${have_avcodec}"
2483 if test "${enable_avformat}" != "no"
2485 PKG_CHECK_MODULES(AVFORMAT,[libavformat > 52.30.0 libavcodec libavutil],
2488 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2489 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2490 AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2491 AC_CHECK_HEADERS(libavutil/avutil.h)
2492 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2493 VLC_ADD_PLUGIN([avformat access_avio])
2494 VLC_ADD_LIBS([avformat access_avio],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2495 VLC_ADD_CFLAGS([avformat access_avio],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2496 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2497 VLC_ADD_LIBS([avformat access_avio],[-Wl,-Bsymbolic])
2500 VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2501 VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2505 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2510 dnl swscale image scaling and conversion plugin
2513 AC_ARG_ENABLE(swscale,
2514 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2515 (default enabled)]))
2516 if test "${enable_swscale}" != "no"
2518 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2521 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2522 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2523 AC_CHECK_HEADERS(libswscale/swscale.h)
2524 VLC_ADD_PLUGIN([swscale])
2525 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2526 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2527 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2528 VLC_ADD_LIBS([swscale],[-Wl,-Bsymbolic])
2532 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2540 AC_ARG_ENABLE(postproc,
2541 [ --enable-postproc libpostproc image post-processing (default enabled)])
2542 if test "${enable_postproc}" != "no"
2544 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2547 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2548 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2549 AC_CHECK_HEADERS(postproc/postprocess.h)
2550 VLC_ADD_PLUGIN([postproc])
2551 VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2552 VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2555 AC_MSG_ERROR([${POSTPROC_PKG_ERRORS}. Pass --disable-postproc to ignore this error.])
2560 dnl faad decoder plugin
2563 [ --enable-faad faad codec (default disabled)])
2564 if test "${enable_faad}" = "yes"
2566 AC_ARG_WITH(faad-tree,
2567 [ --with-faad-tree=PATH faad tree for static linking])
2568 if test -n "${with_faad_tree}"
2570 AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2571 real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2572 if test -z "${real_faad_tree}"
2574 dnl The given directory can't be found
2576 AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2578 if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2580 dnl Use a custom faad
2581 AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2582 VLC_ADD_PLUGIN([faad])
2583 VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2584 VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2586 dnl The given libfaad wasn't built
2588 AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2592 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_faad}"
2593 LDFLAGS="${LDFLAGS} ${LIBS_faad}"
2594 AC_CHECK_HEADERS(faad.h, ,
2595 [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2596 AC_CHECK_LIB(faad, faacDecOpen, [
2597 VLC_ADD_PLUGIN([faad])
2598 VLC_ADD_LIBS([faad],[-lfaad]) ],
2599 AC_CHECK_LIB(faad, NeAACDecOpen, [
2600 VLC_ADD_PLUGIN([faad])
2601 VLC_ADD_LIBS([faad],[-lfaad]) ],
2602 [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2608 dnl twolame encoder plugin
2610 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2613 dnl QuickTime plugin
2615 AC_ARG_ENABLE(quicktime,
2616 [ --enable-quicktime QuickTime module (deprecated)])
2617 if test "${enable_quicktime}" = "yes"; then
2618 if test "${SYS}" = "mingw32"; then
2619 VLC_ADD_PLUGIN([quicktime])
2621 AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2622 [ VLC_ADD_PLUGIN([quicktime])
2623 VLC_ADD_LIBS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2624 ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2632 [ --enable-real Real video decoder module (default disabled)])
2633 if test "${enable_real}" = "yes"; then
2634 VLC_ADD_PLUGIN([realvideo])
2638 dnl A52/AC3 decoder plugin
2641 [ --enable-a52 A/52 support with liba52 (default enabled)])
2642 if test "${enable_a52}" != "no"
2645 [ --with-a52=PATH a52 headers and libraries])
2646 AC_ARG_WITH(a52-tree,
2647 [ --with-a52-tree=PATH a52dec tree for static linking ],[],[])
2648 if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2650 real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2651 if test -z "${real_a52_tree}"
2653 dnl The given directory can't be found
2655 AC_MSG_ERROR([${with_a52_tree} directory does not exist])
2657 dnl Use a custom a52dec
2658 AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2659 if test -f ${real_a52_tree}/include/a52.h
2662 VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2663 VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2665 LDFLAGS="${LDFLAGS} ${LIBS_a52tofloat32}"
2666 AC_CHECK_LIB(a52, a52_free, [
2667 VLC_ADD_PLUGIN([a52tofloat32])
2668 VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2669 VLC_ADD_LIBS([a52tofloat32],[-la52])
2671 if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2673 AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
2675 AC_MSG_ERROR([the specified tree has not been compiled])
2680 AC_MSG_ERROR([the specified tree does not have a52.h])
2683 if test -z "${with_a52}"
2688 LDFLAGS_test="-L${with_a52}/lib"
2689 CPPFLAGS_test="-I${with_a52}/include"
2692 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2693 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2694 AC_CHECK_HEADERS(a52dec/a52.h, [
2695 AC_CHECK_LIB(a52, a52_free, [
2696 VLC_ADD_PLUGIN([a52tofloat32])
2697 VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2698 VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2700 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.])
2703 AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
2709 AC_ARG_WITH(a52-fixed,
2710 [ --with-a52-fixed specify if liba52 has been compiled with fixed point support],
2712 VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2715 dnl DTS Coherent Acoustics decoder plugin
2717 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2722 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2727 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2732 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2737 AC_ARG_ENABLE(tremor,
2738 [ --enable-tremor Tremor decoder support (default disabled)])
2739 if test "${enable_tremor}" = "yes"
2741 AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2742 VLC_ADD_PLUGIN([tremor])
2743 VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
2750 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2752 AS_IF([test "${enable_speex}" != "no"], [
2753 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2756 AS_IF([test -n "${enable_speex}"], [
2757 AC_MSG_ERROR([${SPEEXDSP_PKG_ERRORS}.])
2759 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2763 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2766 dnl theora decoder plugin
2768 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theora >= 1.0], [experimental theora codec], [auto])
2771 dnl dirac encoder plugin
2773 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
2776 dnl schroedinger decoder plugin (for dirac format video)
2778 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2781 dnl PNG decoder module
2784 [ --enable-png PNG support (default enabled)])
2785 if test "${enable_png}" != "no"; then
2786 AC_CHECK_HEADERS(png.h, [
2788 LDFLAGS="${LDFLAGS} -lz"
2789 AC_CHECK_LIB(png, png_set_rows, [
2790 VLC_ADD_LIBS([png],[-lpng -lz -lm])
2791 VLC_ADD_PLUGIN([png osdmenu osd_parser])],
2796 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
2799 dnl H264 encoder plugin (using libx264)
2802 [ --enable-x264 H264 encoding support with libx264 (default enabled)])
2803 if test "${enable_x264}" != "no"; then
2804 AC_ARG_WITH(x264-tree,
2805 [ --with-x264-tree=PATH x264 tree for static linking ],[],[])
2806 if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2808 real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2809 if test -z "${real_x264_tree}"
2811 dnl The given directory can't be found
2813 AC_MSG_ERROR([${with_x264_tree} directory does not exist])
2815 dnl Use a custom libx264
2816 AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2817 if test -f ${real_x264_tree}/x264.h
2820 VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2821 VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
2822 PKG_CHECK_MODULES(X264,x264, [
2823 VLC_ADD_PLUGIN([x264])
2824 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2825 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2826 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2827 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2830 AC_MSG_ERROR([the specified tree has not been compiled])
2834 AC_MSG_ERROR([the specified tree does not have x264.h])
2837 PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2838 VLC_ADD_PLUGIN([x264])
2839 VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
2841 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2842 VLC_ADD_LIBS([x264],[-Wl,-Bsymbolic])
2845 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2846 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2847 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2850 if test "${enable_x264}" = "yes"; then
2851 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2858 dnl libfluidsynth (MIDI synthetizer) plugin
2860 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
2863 dnl Teletext Modules
2864 dnl vbi decoder plugin (using libzbvi)
2869 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2870 libzvbi (default enabled)]))
2872 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2873 zvbi) (default enabled if zvbi is absent)]))
2875 AS_IF( [test "${enable_zvbi}" != "no"],[
2876 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2878 VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
2879 if test "${SYS}" = "mingw32"; then
2880 VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
2882 VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
2883 VLC_ADD_PLUGIN([zvbi])
2884 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2885 AS_IF( [test "${enable_telx}" = "yes"],[
2886 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2889 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2892 AS_IF( [test "${enable_telx}" != "no" ],[
2893 VLC_ADD_PLUGIN([telx])
2897 dnl libass subtitle rendering module
2899 AC_ARG_ENABLE(libass,
2900 [ --enable-libass Subtitle support using libass (default enabled)])
2901 AS_IF( [test "${enable_libass}" != "no"], [
2902 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
2904 VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
2905 VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
2906 VLC_ADD_PLUGIN([libass])
2908 AC_CHECK_HEADERS(fontconfig/fontconfig.h,
2909 [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
2910 VLC_ADD_LIBS([libass],[-lfontconfig])
2913 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
2918 dnl kate decoder plugin
2920 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
2923 dnl tiger rendering for kate decoder plugin
2925 AC_ARG_ENABLE(tiger,
2926 [ --enable-tiger Tiger rendering library for Kate streams (default auto)])
2927 AS_IF([test "${enable_tiger}" != "no"], [
2928 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
2929 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
2930 VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
2931 VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
2932 AS_IF([test -n "${enable_tiger}"], [
2933 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
2943 EXTEND_HELP_STRING([Video plugins:])
2948 PKG_CHECK_MODULES([GL], [gl], [
2951 AC_CHECK_HEADER([GL/gl.h], [
2960 dnl OpenGL ES 2: depends on EGL 1.1 and is currently unfinished
2961 dnl PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [auto])
2962 dnl OpenGL ES 1: depends on EGL 1.0 and is currently broken
2963 dnl PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [auto])
2966 [ --enable-egl OpenGL support through EGL (default disabled)],, [
2969 AS_IF([test "$enable_egl" != "no"], [
2970 PKG_CHECK_MODULES([EGL], [egl], [
2971 VLC_ADD_PLUGIN([gl])
2972 VLC_ADD_PLUGIN([egl])
2981 AC_CHECK_HEADERS(X11/Xlib.h)
2984 dnl X C Bindings modules
2987 [ --enable-xcb X11 support with XCB (default enabled)],, [
2988 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
2994 AC_ARG_ENABLE(xvideo,
2995 [ --enable-xvideo XVideo support (default enabled)],, [
2996 enable_xvideo="$enable_xcb"
2999 [ --enable-glx OpenGL support through GLX (default enabled)],, [
3000 enable_glx="$enable_xcb"
3004 AS_IF([test "${enable_xcb}" != "no"], [
3006 PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
3008 PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3009 PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
3011 AS_IF([test "${enable_xvideo}" != "no"], [
3012 PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3013 VLC_ADD_PLUGIN([xcb_xv])
3017 PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3018 VLC_ADD_PLUGIN([panoramix])
3019 VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3020 VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3022 AC_MSG_WARN([${XCB_RANDR_PKG_ERRORS}. Panoramix filter will not be supported.])
3026 PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
3027 PKG_CHECK_MODULES(XPROTO, [xproto])
3028 VLC_ADD_PLUGIN([globalhotkeys])
3029 VLC_ADD_CFLAGS([globalhotkeys], [${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}])
3030 VLC_ADD_LIBS([globalhotkeys], [${XCB_KEYSYMS_LIBS} ${XCB_LIBS}])
3031 VLC_ADD_CFLAGS([xcb_window], [-DHAVE_XCB_KEYSYMS])
3033 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
3036 AS_IF([test "${enable_glx}" != "no"], [
3037 AS_IF([test "${have_gl}" != "yes"], [
3038 AC_MSG_ERROR([${GL_PKG_ERRORS}. Pass --disable-glx if you do not need OpenGL X11 support.])
3040 PKG_CHECK_MODULES(XLIB_XCB, [x11-xcb], [
3041 VLC_ADD_PLUGIN([xcb_glx])
3043 AC_MSG_ERROR([${XLIB_XCB_PKG_ERRORS}. Pass --disable-glx if you do not need OpenGL X11 support.])
3047 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3053 [ --enable-sdl SDL support (default enabled)])
3054 AC_ARG_ENABLE(sdl-image,
3055 [ --enable-sdl-image SDL image support (default enabled)])
3056 if test "${enable_sdl}" != "no"
3058 PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3059 # SDL on Darwin is heavily patched and can only run SDL_image
3060 if test "${SYS}" != "darwin"; then
3061 VLC_ADD_PLUGIN([vout_sdl])
3063 if test "${SYS}" != "mingw32" -a "${SYS}" != "os2"; then
3064 VLC_ADD_LIBS([vout_sdl],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3066 VLC_ADD_CFLAGS([vout_sdl],[${SDL_CFLAGS}])
3067 VLC_ADD_LIBS([vout_sdl],[${SDL_LIBS}])
3070 AS_IF([ test "${enable_sdl_image}" != "no"],[
3071 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3072 VLC_ADD_PLUGIN([sdl_image])
3073 VLC_ADD_LIBS([sdl_image],[${SDL_IMAGE_LIBS}])
3074 VLC_ADD_CFLAGS([sdl_image], [${SDL_IMAGE_CFLAGS}])],
3075 [ AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3079 AC_MSG_WARN([${SDL_PKG_ERRORS}.])
3086 AC_ARG_ENABLE(macosx-vout,
3087 [ --enable-macosx-vout Mac OS X video output module (default enabled on Mac OS X)])
3088 if test "x${enable_macosx_vout}" != "xno" &&
3089 (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
3091 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,Cocoa])
3092 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,OpenGL])
3093 VLC_ADD_PLUGIN([vout_macosx])
3100 AC_ARG_ENABLE(freetype,
3101 [ --enable-freetype freetype support (default auto)])
3102 AC_ARG_ENABLE(fribidi,
3103 [ --enable-fribidi fribidi support (default auto)])
3104 AC_ARG_ENABLE(fontconfig,
3105 [ --enable-fontconfig fontconfig support (default auto)])
3107 if test "${enable_freetype}" != "no"; then
3108 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3110 VLC_ADD_PLUGIN([freetype])
3111 VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3112 if test "${SYS}" = "mingw32"; then
3113 VLC_ADD_LIBS([freetype],[-liconv -lz])
3115 VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3117 AC_CHECK_HEADERS(Carbon/Carbon.h,
3118 [VLC_ADD_LIBS([freetype],[-Wl,-framework,Carbon])])
3120 dnl fontconfig support
3121 if test "${SYS}" != "mingw32"; then
3122 if test "${enable_fontconfig}" != "no"; then
3123 AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3124 VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3125 VLC_ADD_LIBS([freetype],[-lfontconfig])
3126 ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3129 VLC_ADD_LIBS([freetype],[-lgdi32])
3133 if test "${enable_fribidi}" != "no"; then
3134 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3135 VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3136 VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3137 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional support will be disabled in FreeType.])])
3142 AS_IF([test -n "${enable_freetype}"],[
3143 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3150 dnl QuartzText vout module (iOS/Mac OS)
3152 AC_ARG_ENABLE(macosx-quartztext,
3153 [ --enable-macosx-quartztext Mac OS X quartz text module (default enabled on Mac OS X)])
3154 if test "x${enable_macosx_quartztext}" != "xno" &&
3155 (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3157 VLC_ADD_PLUGIN([quartztext])
3158 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
3164 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3167 dnl android surface module
3169 AC_ARG_ENABLE(android-surface,
3170 [ --enable-android-surface Android Surface video output module (default disabled)])
3171 if test "${enable_android_surface}" = "yes"; then
3172 if test "${HAVE_ANDROID}" = "1"; then
3173 VLC_ADD_PLUGIN([android_surface])
3174 VLC_ADD_LDFLAGS([android_surface], [-ldl])
3182 AC_ARG_ENABLE(ios-vout,
3183 [ --enable-ios-vout iOS video output module (default disabled)])
3184 if test "${enable_ios_vout}" = "yes"
3186 VLC_ADD_PLUGIN([vout_ios])
3187 VLC_ADD_CFLAGS([vout_ios], [-DUSE_OPENGL_ES=1])
3188 VLC_ADD_LIBS([vout_ios], [-Wl,-framework,OpenGLES,-framework,QuartzCore,-framework,UIKit,-framework,Foundation])
3192 dnl Windows DirectX module
3195 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3197 VLC_ADD_PLUGIN([panoramix])
3200 AC_ARG_ENABLE(directx,
3201 [ --enable-directx Win32 DirectX support (default enabled on Win32)])
3202 if test "${enable_directx}" != "no"; then
3203 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
3205 AC_CHECK_HEADERS(ddraw.h,
3206 [ VLC_ADD_PLUGIN([directx aout_directx])
3207 VLC_ADD_LIBS([directx],[-luser32 -lgdi32])
3208 ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3212 AC_CHECK_HEADERS(GL/wglew.h,
3213 [ VLC_ADD_PLUGIN([glwin32])
3214 VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3216 #include <windows.h>
3221 AC_CHECK_HEADERS(d3d9.h,
3222 [ VLC_ADD_PLUGIN([direct3d])
3223 VLC_ADD_LIBS([direct3d],[-lgdi32])
3225 VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3230 dnl Windows Direct2D plugin
3232 AC_ARG_ENABLE(direct2d,
3233 [ --enable-direct2d Win7/VistaPU Direct2D support (default auto on Win32)],, [
3234 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3235 enable_direct2d="no"
3238 AS_IF([test "${enable_direct2d}" != "no"], [
3239 AC_CHECK_HEADERS(d2d1.h, [
3240 VLC_ADD_PLUGIN([direct2d])
3241 VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32])
3243 AC_MSG_WARN([Cannot find Direct2D headers!])
3248 dnl win32 GDI plugin
3250 AC_ARG_ENABLE(wingdi,
3251 [ --enable-wingdi Win32 GDI module (default enabled on Win32)])
3252 if test "${enable_wingdi}" != "no"; then
3253 if test "${SYS}" = "mingw32"; then
3254 VLC_ADD_PLUGIN([wingdi])
3255 VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3257 if test "${SYS}" = "mingwce"; then
3258 VLC_ADD_PLUGIN([wingdi wingapi])
3259 VLC_ADD_LIBS([wingdi],[-laygshell])
3260 VLC_ADD_LIBS([wingapi],[-laygshell])
3266 dnl Linux framebuffer module
3268 AC_CHECK_HEADER([linux/fb.h], [
3269 VLC_ADD_PLUGIN([fb])
3275 dnl try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3276 dnl TODO: support for static linking
3278 AC_ARG_ENABLE(directfb,
3279 [ --enable-directfb DirectFB support (default disabled)])
3280 AC_ARG_WITH(directfb,
3281 [ --with-directfb=PATH path to DirectFB headers and libraries])
3283 if test "${enable_directfb}" = "yes"; then
3284 have_directfb="false"
3285 CPPFLAGS_mydirectfb=
3287 if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3288 dnl Trying the given location
3291 CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3292 LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/ -L${with_directfb}/src/.libs/"
3294 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3295 LIBS="${LIBS} ${LIBS_new}"
3297 dnl FIXME: too obscure
3298 AC_CHECK_HEADER([directfb.h], [
3299 AC_CHECK_LIB([direct],[direct_initialize], [
3300 AC_CHECK_LIB([fusion], [fusion_enter], [
3301 AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3302 ], have_directfb="false")
3303 ], have_directfb="false")
3304 ], have_directfb="false")
3308 if test "${have_directfb}" = "true"; then
3309 LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3310 CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3313 dnl Look for directfb-config
3314 AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3315 if test "${DIRECTFB_CONFIG}" != "no"; then
3316 CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3317 LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3318 have_directfb="true"
3320 dnl Trying with pkg-config
3321 PKG_CHECK_MODULES(DIRECTFB, directfb, [
3322 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3323 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3324 have_directfb="true"
3325 ], [have_directfb="false"])
3328 if test "${have_directfb}" = "true"; then
3329 VLC_ADD_PLUGIN([directfb])
3330 VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3331 VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3333 AC_MSG_ERROR([${DIRECTFB_PKG_ERRORS}.])
3341 [ --enable-aa aalib output (default disabled)])
3342 if test "${enable_aa}" = "yes"
3344 AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3345 if test "${have_aa}" = "true"
3347 VLC_ADD_PLUGIN([aa])
3348 VLC_ADD_LIBS([aa],[-laa])
3349 if test "${SYS}" != "mingw32"; then
3350 VLC_ADD_LIBS([aa],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3358 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3364 [AS_HELP_STRING([--enable-kva],
3365 [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
3366 AS_IF([test "$SYS" = "os2"], [
3372 AS_IF([test "$enable_kva" != "no"], [
3373 AC_CHECK_HEADERS([kva.h], [
3375 AC_CHECK_LIB(kva, main, [
3381 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3387 EXTEND_HELP_STRING([Audio plugins:])
3390 dnl Pulseaudio module
3392 AC_ARG_ENABLE(pulse,
3393 [AS_HELP_STRING([--enable-pulse],
3394 [use the PulseAudio client library (default auto)])])
3396 AS_IF([test "${enable_pulse}" != "no"], [
3397 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.22], [
3400 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.16], [
3401 AS_IF([test "${no_x}" != "yes"], [
3403 PULSE_LIBS="$PULSE_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11"
3405 AS_IF([test "${enable_pulse}" = "yes"], [
3406 AC_MSG_ERROR([Xlib is required with PulseAudio pre-0.9.22 versions
3407 (see http://www.pulseaudio.org/ticket/799 for further reference).])
3411 AS_IF([test "x${enable_pulse}" != "x"], [
3412 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 0.9.22 or later required.])
3417 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3423 [AS_HELP_STRING([--enable-alsa],
3424 [support the Advanced Linux Sound Architecture (default auto)])],, [
3425 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3430 AS_IF([test "${enable_alsa}" != "no"], [
3431 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.16], [
3434 AS_IF([test "x${enable_alsa}" != "x"], [
3435 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.16 or later required.])
3439 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3442 dnl Open Sound System module
3445 [AS_HELP_STRING([--enable-oss],
3446 [support the Open Sound System OSS (default enabled on BSD)])],, [
3447 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "mingwce" -o "$SYS" = "linux"], [
3453 AS_IF([test "$enable_oss" != "no"], [
3454 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3456 AC_CHECK_LIB(ossaudio, main, [
3457 OSS_LIBS="-lossaudio"
3462 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3465 dnl Portaudio module
3467 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
3470 dnl win32 waveOut plugin
3472 AC_ARG_ENABLE(waveout,
3473 [ --enable-waveout Win32 waveOut module (default enabled on Win32)])
3474 if test "${enable_waveout}" != "no"; then
3475 if test "${SYS}" = "mingw32"; then
3476 VLC_ADD_PLUGIN([waveout])
3477 VLC_ADD_LIBS([waveout],[-lwinmm])
3479 if test "${SYS}" = "mingwce"; then
3480 VLC_ADD_PLUGIN([waveout])
3485 dnl CoreAudio plugin
3487 AC_ARG_ENABLE(macosx-audio,
3488 [ --enable-macosx-audio Mac OS X audio module (default enabled on MacOS X)])
3489 if test "x${enable_macosx_audio}" != "xno" &&
3490 (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
3492 AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
3493 [ VLC_ADD_PLUGIN([auhal])
3494 VLC_ADD_LIBS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
3495 ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3499 dnl AudioQueue plugin
3501 AC_ARG_ENABLE(audioqueue,
3502 [ --enable-audioqueue AudioQueue audio module (default disabled)])
3503 if test "${enable_audioqueue}" = "yes"
3505 VLC_ADD_PLUGIN([audioqueue])
3506 VLC_ADD_LIBS([audioqueue], [-Wl,-framework,AudioToolbox,-framework,CoreFoundation])
3512 PKG_ENABLE_MODULES_VLC([JACK], [jack access_jack], [jack], [JACK audio I/O modules],[auto])
3515 dnl OpenSLES Android
3517 AC_ARG_ENABLE(opensles,
3518 [ --enable-opensles Android OpenSL ES audio module (default disabled)])
3519 if test "${HAVE_ANDROID}" = "1"; then
3520 if test "${enable_opensles}" = "yes"; then
3521 AC_CHECK_HEADERS(SLES/OpenSLES.h,
3522 [ VLC_ADD_PLUGIN([opensles_android]) ],
3523 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3528 dnl libsamplerate plugin
3530 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3536 [AS_HELP_STRING([--enable-kai],
3537 [support the K Audio Interface KAI (default enabled on OS/2)])],, [
3538 AS_IF([test "$SYS" = "os2"], [
3544 AS_IF([test "$enable_kai" != "no"], [
3545 AC_CHECK_HEADERS([kai.h], [
3547 AC_CHECK_LIB(kai, main, [
3553 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3556 dnl Interface plugins
3559 EXTEND_HELP_STRING([Interface plugins:])
3564 AC_ARG_ENABLE(skins2,
3565 [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3566 AS_IF([test "${enable_skins2}" != "no"], [
3567 have_skins_deps="yes"
3570 AS_IF([test "${SYS}" = "mingw32"], [
3571 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
3572 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3573 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3575 ], [test "${SYS}" = "darwin"], [
3576 VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
3577 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3578 VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
3581 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3582 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3583 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3584 VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3585 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3586 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3589 dnl we need freetype
3590 AS_IF([test "${have_freetype}" != "yes"], [
3591 have_skins_deps="no"
3594 AS_IF([test "${have_skins_deps}" = "no"], [
3595 AS_IF([test "x${enable_skins2}" = "x"], [
3596 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3598 AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
3602 VLC_ADD_PLUGIN([skins2])
3603 ALIASES="${ALIASES} svlc"
3607 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3609 AC_ARG_ENABLE(libtar,
3610 [ --enable-libtar libtar support for skins2 (default auto)])
3611 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3612 AC_CHECK_HEADERS(libtar.h, [
3613 VLC_ADD_LIBS([skins2],[-ltar])
3620 AC_ARG_ENABLE(hildon,
3621 [ --enable-hildon Hildon touchscreen UI (default disabled)])
3622 AS_IF([test "${enable_hildon}" = "yes"], [
3623 PKG_CHECK_MODULES(HILDON, [hildon-1], [
3624 PKG_CHECK_MODULES(HILDON_FM, hildon-fm-2, [
3625 VLC_ADD_CFLAGS([hildon],[${HILDON_FM_CFLAGS} -DHAVE_HILDON_FM])
3626 VLC_ADD_LIBS([hildon],[${HILDON_FM_LIBS}])
3628 AC_MSG_WARN([${HILDON_FM_PKG_ERRORS}.])
3630 VLC_ADD_CFLAGS([hildon],[${HILDON_CFLAGS} ${X_CFLAGS}])
3631 VLC_ADD_LIBS([hildon],[${HILDON_LIBS} ${X_LIBS} ${X_PRE_LIBS} -lX11])
3632 VLC_ADD_PLUGIN([hildon])
3633 ALIASES="${ALIASES} mvlc"
3635 AS_IF([test "${enable_hildon}" = "yes"],[
3636 AC_MSG_ERROR([${HILDON_PKG_ERRORS}.])
3641 AM_CONDITIONAL(BUILD_HILDON, [test "${enable_hildon}" = "yes"])
3647 [ --enable-qt4 Qt 4 support (default enabled) ],, [
3648 AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
3650 AS_IF([test "${enable_qt4}" != "no"], [
3651 PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.6.0], [
3652 VLC_ADD_PLUGIN([qt4])
3653 VLC_ADD_LIBS([qt4],[${QT4_LIBS}])
3654 VLC_ADD_CXXFLAGS([qt4],[${QT4_CFLAGS}])
3655 ALIASES="${ALIASES} qvlc"
3660 AC_MSG_CHECKING([whether Qt uses X11])
3661 CPPFLAGS="${CPPFLAGS} ${QT4_CFLAGS}"
3662 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
3664 #if !defined (Q_WS_X11)
3668 AC_MSG_RESULT([yes])
3669 VLC_ADD_LIBS([qt4],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3670 VLC_ADD_CXXFLAGS([qt4],[${X_CFLAGS}])
3678 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
3679 VLC_ADD_LIBS([qt4],[-lole32])
3681 AS_IF([test "${SYS}" = "darwin" ],[
3682 VLC_ADD_LIBS([qt4], [-Wl,-framework,Cocoa])
3684 AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3685 AC_PATH_PROG(RCC, rcc, rcc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3686 AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3688 AS_IF([test -n "${enable_qt4}"],[
3689 AC_MSG_ERROR([${QT4_PKG_ERRORS}.])
3691 AC_MSG_WARN([${QT4_PKG_ERRORS}.])
3696 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
3699 dnl Simple test for skins2 dependency
3701 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
3702 AC_MSG_ERROR([The skins2 module depends on a the Qt4 development package. 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.])
3706 dnl MacOS X gui module
3708 AC_ARG_ENABLE(macosx,
3709 [ --enable-macosx Mac OS X gui support (default enabled on Mac OS X)])
3710 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3712 VLC_ADD_LIBS([macosx minimal_macosx], [-Wl,-framework,Cocoa -Wl,-framework,OpenGL -Wl,-framework,Carbon -Wl,-framework,CoreServices -Wl,-framework,AGL])
3713 VLC_ADD_OBJCFLAGS([macosx minimal_macosx], [-fobjc-exceptions] )
3714 VLC_ADD_PLUGIN([macosx minimal_macosx])
3716 VLC_ADD_LIBS([macosx], [-Wl,-framework,QTKit -Wl,-framework,IOKit -Wl,-framework,AddressBook -Wl,-framework,WebKit])
3719 CFLAGS="-I${CONTRIB_DIR}/Sparkle.framework/Headers ${CFLAGS}"
3720 AC_CHECK_HEADERS(Sparkle.h, [
3721 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle])
3722 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3723 ], VLC_RESTORE_FLAGS)
3725 if ! test -d ${CONTRIB_DIR}/BGHUDAppKit.framework
3727 AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}])
3729 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,BGHUDAppKit])
3730 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3735 dnl MacOS X dialor provider
3737 AC_ARG_ENABLE(macosx-dialog-provider,
3738 [ --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3739 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3740 (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3742 VLC_ADD_LIBS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3743 VLC_ADD_PLUGIN([macosx_dialog_provider])
3749 AC_ARG_ENABLE(ncurses,
3750 [ --disable-ncurses ncurses interface support (default disabled)],
3751 [if test "${enable_ncurses}" != "no"; then
3752 AC_CHECK_HEADER(ncurses.h,
3753 [AC_CHECK_LIB(ncursesw, mvprintw,
3754 [VLC_ADD_PLUGIN([ncurses])
3755 VLC_ADD_LIBS([ncurses],[-lncursesw])
3756 ALIASES="${ALIASES} nvlc"
3757 AC_CHECK_LIB(ncursesw, tgetent, [],
3758 AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
3759 [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
3760 [AS_IF([test "${enable_ncurses}" = "yes"],
3761 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
3767 [AS_IF([test "${enable_ncurses}" = "yes"], [
3768 AC_MSG_ERROR([libncursesw not found])])]
3770 [AS_IF([test "${enable_ncurses}" = "yes"], [
3771 AC_MSG_ERROR([ncurses.h not found])])]
3780 [ --enable-xosd xosd interface support (default disabled)])
3781 if test "${enable_xosd}" = "yes"
3783 AC_CHECK_HEADERS(xosd.h,
3784 AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
3785 VLC_ADD_PLUGIN([xosd])
3786 VLC_ADD_LIBS([xosd],[-lxosd])
3792 dnl Framebuffer (overlay) plugin
3794 AC_ARG_ENABLE(fbosd,
3795 [ --enable-fbosd fbosd interface support (default disabled)])
3796 if test "${enable_fbosd}" = "yes"
3798 AC_CHECK_HEADERS(linux/fb.h, [
3799 VLC_ADD_PLUGIN([fbosd])
3807 [ --enable-lirc lirc support (default disabled)])
3808 if test "${enable_lirc}" = "yes"
3810 AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3811 if test "${have_lirc}" = "true"
3813 VLC_ADD_PLUGIN([lirc])
3814 VLC_ADD_LIBS([lirc],[-llirc_client])
3818 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3820 dnl Visualisation plugin
3822 AC_ARG_ENABLE(visual,
3823 [ --enable-visual visualisation plugin (default enabled)])
3824 if test "${enable_visual}" != "no"
3826 VLC_ADD_PLUGIN([visual])
3830 dnl goom visualization plugin
3832 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3835 dnl libprojectM visualization plugin
3837 AC_ARG_ENABLE(projectm,
3838 [ --enable-projectm projectM visualization plugin (default enabled)])
3839 AS_IF([test "${enable_projectm}" != "no"],
3841 PKG_CHECK_MODULES(PROJECTM, libprojectM,
3843 VLC_ADD_PLUGIN([projectm])
3844 VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
3845 VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
3846 PKG_CHECK_MODULES(PROJECTM2, [libprojectM >= 2.0.0],
3847 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3848 [ AC_MSG_WARN( [Using libprojectM version 1] )
3851 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
3856 dnl AtmoLight (homemade Philips Ambilight clone)
3859 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
3860 (default enabled)]),, [enable_atmo="yes"])
3861 AS_IF([test "${enable_atmo}" != no], [
3862 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
3864 VLC_ADD_PLUGIN([atmo])
3869 EXTEND_HELP_STRING([Service Discovery plugins:])
3871 dnl Bonjour services discovery
3872 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
3875 dnl libudev services discovery
3876 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
3879 dnl MTP devices services discovery
3880 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
3883 dnl UPnP Plugin (Intel SDK)
3885 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
3886 VLC_ADD_CXXFLAGS([upnp],[${UPNP_CFLAGS}])
3888 EXTEND_HELP_STRING([Misc options:])
3893 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3899 AC_ARG_ENABLE(libgcrypt,
3900 [ --disable-libgcrypt gcrypt support (default enabled)])
3901 AS_IF([test "${enable_libgcrypt}" != "no"], [
3902 AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
3903 libgcrypt-config --version >/dev/null || \
3904 AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
3905 AC_CHECK_LIB(gcrypt, gcry_control, [
3906 have_libgcrypt="yes"
3907 GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
3908 GCRYPT_LIBS="`libgcrypt-config --libs`"
3910 AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3911 ], [`libgcrypt-config --libs`])
3913 AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3914 ], [#include <gcrypt.h>]
3918 AC_SUBST(GCRYPT_CFLAGS)
3919 AC_SUBST(GCRYPT_LIBS)
3920 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
3925 AC_ARG_ENABLE(gnutls,
3926 [ --enable-gnutls GNU TLS TLS/SSL support (default enabled)])
3928 AS_IF([test "${have_libgcrypt}" != "yes"], [
3929 AS_IF([test "${enable_gnutls}" = "yes"], [
3930 AC_MSG_ERROR([--enable-gnutls and --disable-libgcrypt are mutually exclusive.])
3934 AS_IF([test "${enable_gnutls}" != "no"], [
3935 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 2.0.0], [
3936 VLC_ADD_PLUGIN([gnutls])
3938 AS_IF([test -n "${enable_gnutls}"], [
3939 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
3946 dnl Nokia MCE plugin (Maemo screen unblanking)
3948 PKG_CHECK_MODULES([MCE], [dbus-1 mce], [VLC_ADD_PLUGIN([mce])], [true])
3951 AS_IF([test -f "/etc/maemo_version"], [
3952 AC_DEFINE([HAVE_MAEMO], 1, [Define to 1 if building for the Maemo platform.])
3959 AC_ARG_ENABLE(taglib,
3960 [AS_HELP_STRING([--disable-taglib],
3961 [do not use TagLib (default enabled)])])
3962 AS_IF([test "${enable_taglib}" != "no"], [
3963 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5, [
3964 VLC_ADD_PLUGIN([taglib])
3965 VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
3966 VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS])
3968 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
3973 dnl update checking system
3975 AC_ARG_ENABLE(update-check,
3976 [ --enable-update-check update checking system (default disabled)])
3977 if test "${enable_update_check}" = "yes"
3979 if test "${have_libgcrypt}" != "yes"
3981 AC_MSG_ERROR([libgcrypt is required for update checking system])
3983 VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
3984 VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
3985 AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
3989 dnl Growl notification plugin
3991 AC_ARG_ENABLE(growl,
3992 [ --enable-growl growl notification plugin (default disabled)],,
3994 AS_IF([test "${enable_growl}" != "no"], [
3995 AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl.framework/Versions/A/Headers/GrowlDefines.h, [
3996 VLC_ADD_PLUGIN([growl])
3997 VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR} -Wl,-framework,Growl,-framework,CoreFoundation])
3998 VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}])
3999 VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
4005 dnl Libnotify notification plugin
4007 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
4012 AC_ARG_ENABLE(media-library,
4013 [ --enable-media-library media library (default disabled)])
4014 AS_IF([test "${enable_media_library}" = "yes"], [
4015 AC_DEFINE([MEDIA_LIBRARY], 1, [Define if you want to use the VLC media library])
4016 VLC_ADD_CPPFLAGS([qt4],"-DMEDIA_LIBRARY")
4017 VLC_ADD_PLUGIN([media_library])
4022 AS_IF([test "${SYS}" != "darwin"], [
4023 PKG_ENABLE_MODULES_VLC([SQLITE], [], [sqlite3 >= 3.6.0], [sqlite3], [auto])
4025 AS_IF([test "${enable_sqlite}" != "no"], [
4026 AC_CHECK_HEADERS(sqlite3.h, [
4027 VLC_ADD_PLUGIN([sqlite])
4028 VLC_ADD_LIBS([sqlite], [-lsqlite3])
4030 AC_MSG_ERROR([sqlite3 is required for the media library])
4038 dnl Endianness check
4041 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4042 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4046 AC_SUBST(DEFS_BIGENDIAN)
4049 dnl Where to install KDE solid .desktop
4051 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4052 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4053 KDE4_CONFIG="kde4-config"
4056 AC_ARG_WITH(kde-solid,
4057 AS_HELP_STRING([--with-kde-solid=PATH],
4058 [KDE Solid actions directory (auto)]),, [
4060 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ; then
4061 with_kde_solid="yes"
4065 AS_IF([test "${with_kde_solid}" != "no"], [
4066 AS_IF([test "${with_kde_solid}" = "yes"], [
4067 kde4datadir="`${KDE4_CONFIG} --install data`"
4068 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4069 soliddatadir="${kde4datadir}/solid/actions"
4071 soliddatadir="${with_kde_solid}"
4074 AC_SUBST(soliddatadir)
4075 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4078 dnl DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4081 AC_ARG_ENABLE(loader,
4082 AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4083 (default disabled)]))
4084 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4085 AS_IF([test "${enable_loader}" = "yes"],
4086 [ VLC_ADD_PLUGIN([dmo])
4087 VLC_ADD_CPPFLAGS([dmo quicktime realvideo],[-I\\\${top_srcdir}/modules/codec/loader])
4088 VLC_ADD_LIBS([dmo quicktime realvideo],[\\\${top_builddir}/modules/codec/loader/libloader.la])
4089 VLC_ADD_CPPFLAGS([realvideo], [-DLOADER])
4090 VLC_ADD_LIBS([dmo quicktime], [-lpthread])
4093 EXTEND_HELP_STRING([Components:])
4099 [ --enable-vlc build the VLC media player (default enabled)])
4100 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4102 AC_ARG_ENABLE(macosx-vlc-app,
4103 [ --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4104 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4105 (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4108 dnl Stuff used by the program
4110 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4111 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4112 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4113 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4114 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4115 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4116 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4117 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4118 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4119 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4120 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4121 AC_SUBST(COPYRIGHT_MESSAGE)
4122 AC_SUBST(VERSION_MESSAGE)
4123 AC_SUBST(VERSION_MAJOR)
4124 AC_SUBST(VERSION_MINOR)
4125 AC_SUBST(VERSION_REVISION)
4126 AC_SUBST(VERSION_EXTRA)
4127 AC_SUBST(COPYRIGHT_YEARS)
4128 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
4129 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4130 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
4132 dnl Handle substvars that use $(top_srcdir)
4134 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4137 dnl Sort the modules list
4139 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
4142 dnl Configuration is finished
4152 AC_SUBST(WINE_SDK_PATH)
4154 AC_SUBST(AM_CPPFLAGS)
4155 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4156 AC_SUBST(FILE_LIBVLCCORE_DLL)
4157 AC_SUBST(FILE_LIBVLC_DLL)
4172 modules/access/Makefile
4173 modules/access/bd/Makefile
4174 modules/access/dshow/Makefile
4175 modules/access/mms/Makefile
4176 modules/access/rtp/Makefile
4177 modules/access/rtsp/Makefile
4178 modules/access/vcd/Makefile
4179 modules/access/vcdx/Makefile
4180 modules/access/screen/Makefile
4181 modules/access/zip/Makefile
4182 modules/access/zip/unzip/Makefile
4183 modules/access_output/Makefile
4184 modules/audio_filter/Makefile
4185 modules/audio_mixer/Makefile
4186 modules/audio_output/Makefile
4187 modules/codec/Makefile
4188 modules/codec/avcodec/Makefile
4189 modules/codec/dmo/Makefile
4190 modules/codec/loader/Makefile
4191 modules/codec/omxil/Makefile
4192 modules/codec/shine/Makefile
4193 modules/codec/spudec/Makefile
4194 modules/codec/wmafixed/Makefile
4195 modules/control/Makefile
4196 modules/control/dbus/Makefile
4197 modules/control/globalhotkeys/Makefile
4198 modules/demux/Makefile
4199 modules/demux/asf/Makefile
4200 modules/demux/avformat/Makefile
4201 modules/demux/avi/Makefile
4202 modules/demux/mkv/Makefile
4203 modules/demux/mp4/Makefile
4204 modules/demux/mpeg/Makefile
4205 modules/demux/playlist/Makefile
4206 modules/gui/Makefile
4207 modules/gui/macosx/Makefile
4208 modules/gui/hildon/Makefile
4209 modules/gui/minimal_macosx/Makefile
4210 modules/gui/macosx_dialog_provider/Makefile
4211 modules/gui/qt4/Makefile
4212 modules/gui/skins2/Makefile
4213 modules/lua/Makefile
4214 modules/meta_engine/Makefile
4215 modules/misc/Makefile
4216 modules/misc/playlist/Makefile
4217 modules/misc/osd/Makefile
4218 modules/misc/stats/Makefile
4219 modules/media_library/Makefile
4220 modules/mux/Makefile
4221 modules/mux/mpeg/Makefile
4222 modules/notify/Makefile
4223 modules/packetizer/Makefile
4224 modules/services_discovery/Makefile
4225 modules/stream_filter/Makefile
4226 modules/stream_filter/dash/Makefile
4227 modules/stream_out/Makefile
4228 modules/stream_out/transcode/Makefile
4229 modules/text_renderer/Makefile
4230 modules/video_chroma/Makefile
4231 modules/video_filter/Makefile
4232 modules/video_filter/dynamicoverlay/Makefile
4233 modules/video_output/Makefile
4234 modules/video_output/msw/Makefile
4235 modules/visualization/Makefile
4236 modules/visualization/visual/Makefile
4237 modules/mmx/Makefile
4238 modules/mmxext/Makefile
4239 modules/3dnow/Makefile
4240 modules/sse2/Makefile
4241 modules/altivec/Makefile
4242 modules/arm_neon/Makefile
4245 AM_COND_IF([HAVE_WIN32], [
4247 extras/package/win32/spad.nsi
4248 extras/package/win32/vlc.win32.nsi
4252 AM_COND_IF([HAVE_DARWIN], [
4254 extras/package/macosx/Info.plist
4255 extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4259 dnl Generate makefiles
4262 dnl Do we have to use make or gmake ?
4263 USE_MAKE_OR_GMAKE=`case "${SYS}" in openbsd*) echo "gmake";; *) echo "make";; esac`
4264 dnl Shortcut to nice compile message
4266 if test -n $SHELL; then
4267 SHELL=${CONFIG_SHELL-/bin/sh}
4269 echo '#! '$SHELL >compile
4270 echo rm -f .error\$\$ >>compile
4271 echo ERROR=0 >>compile
4272 echo export PATH=$PATH LANG=C >>compile
4273 echo "($USE_MAKE_OR_GMAKE V=1 \$@ 2>&1 || touch .error\$\$)| \\" >>compile
4274 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
4275 echo test -f .error\$\$ \&\& ERROR=1 >>compile
4276 echo rm -f .error\$\$ >>compile
4277 echo exit \$ERROR >>compile
4281 libvlc configuration
4282 --------------------
4283 version : ${VERSION}
4285 architecture : ${ARCH}
4286 optimizations : ${enable_optimizations}"
4287 if test "${enable_vlc}" != "no"; then
4288 echo "vlc aliases :${ALIASES}"
4290 echo "build vlc executable : no"
4293 To build vlc and its plugins, type \`./compile' or \`$USE_MAKE_OR_GMAKE'."