1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 2002-2012 VLC authors and VideoLAN])
5 AC_INIT(vlc, 2.1.0-git)
15 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
17 COPYRIGHT_YEARS="1996-2012"
19 AC_CONFIG_SRCDIR(src/libvlc.c)
20 AC_CONFIG_AUX_DIR(autotools)
21 AC_CONFIG_MACRO_DIR(m4)
22 AC_CONFIG_LIBOBJ_DIR(compat)
25 AC_PRESERVE_HELP_ORDER
27 AM_INIT_AUTOMAKE(tar-ustar color-tests)
28 AM_CONFIG_HEADER(config.h)
30 # Disable with "./configure --disable-silent-rules" or "make V=1"
31 AM_SILENT_RULES([yes])
33 dnl Too many people are not aware of maintainer mode:
34 dnl If you want to use it, you definitely know what you are doing, so
35 dnl you can specify "--disable-maintainer-mode". But if you want the default
36 dnl automake behavior, you've likely never heard of maintainer mode, so we
37 dnl can't expect you to enable it manually.
38 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
39 [enable_maintainer_mode="yes"])
45 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
46 dnl AC_SUBST(vlcincludedir)
47 vlcdatadir="\${datadir}/\${PKGDIR}"
49 vlclibdir="\${libdir}/\${PKGDIR}"
56 AC_USE_SYSTEM_EXTENSIONS
57 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to 2 to get glibc warnings.])
58 AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
59 AC_DEFINE([_REENTRANT],, [Define to expose reentrant functions.])
60 AC_DEFINE([_THREAD_SAFE],, [Same as _REENTANT for some other OSes.])
61 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
67 _AM_DEPENDENCIES([OBJC])
73 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
74 AC_CHECK_PROGS(DESKTOP_FILE_VALIDATE, [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
76 dnl Check for compiler properties
81 dnl Extend the --help string at the current spot.
82 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
84 dnl Allow binary package maintainer to pass a custom string to avoid
86 AC_ARG_WITH(binary-version,
87 AS_HELP_STRING([--with-binary-version=STRING],
88 [To avoid plugins cache problem between binary version]),[],[])
89 AS_IF([test -n "${with_binary_version}"],[
90 AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
91 [Binary specific version])
95 dnl Check the operating system
107 CFLAGS="${CFLAGS} -pthread"
108 VLC_ADD_LIBS([vcd cdda vcdx],[-ldvd])
112 CFLAGS="${CFLAGS} -pthread"
115 CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
116 LDFLAGS="${LDFLAGS} -L/usr/local/lib"
119 CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
120 LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
126 dnl Force gcc "-arch" flag
130 ARCH_flag="-arch i386"
133 ARCH_flag="-arch ppc64"
136 ARCH_flag="-arch ppc"
139 ARCH_flag="-arch x86_64"
144 CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
145 CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
146 CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
147 OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"
148 LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
149 VLC_ADD_LIBS([mkv mp4 motion], [-Wl,-framework,IOKit,-framework,CoreFoundation])
150 VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup])
151 VLC_ADD_LIBS([avcodec avformat access_avio swscale postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
152 VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
153 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation])
155 dnl Allow binaries created on Lion to run on earlier releases
156 AC_LIBOBJ([getdelim])
159 dnl Check for Mac OS X SDK settings
161 AC_ARG_WITH(macosx-sdk,
162 [AS_HELP_STRING([--with-macosx-sdk=DIR],
163 [compile using the SDK in DIR])])
164 test "${with_macosx_sdk}" = "" && with_macosx_sdk=/Developer/SDKs/MacOSX10.6.sdk
165 ! test -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
166 AC_ARG_WITH(macosx-version-min,
167 [AS_HELP_STRING([--with-macosx-version-min=VERSION],
168 [compile for MacOS X VERSION and above])])
169 if test "${with_macosx_version_min}" = "" ; then
170 with_macosx_version_min=10.5
172 MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
173 CPP="${CPP} -isysroot ${with_macosx_sdk} -mmacosx-version-min=${with_macosx_version_min}"
174 CC="${CC} -isysroot ${with_macosx_sdk} -mmacosx-version-min=${with_macosx_version_min}"
175 CXX="${CXX} -isysroot ${with_macosx_sdk} -mmacosx-version-min=${with_macosx_version_min}"
176 OBJC="${OBJC} -isysroot ${with_macosx_sdk} -mmacosx-version-min=${with_macosx_version_min}"
177 LD="${LD} -syslibroot ${with_macosx_sdk} -mmacosx_version_min=${with_macosx_version_min}"
178 CFLAGS="${CFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
179 CXXFLAGS="${CXXFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
180 OBJCFLAGS="${OBJCFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
181 export MACOSX_DEPLOYMENT_TARGET
183 *mingw32* | *cygwin* | *wince* | *mingwce*)
184 AC_CHECK_TOOL(WINDRES, windres, :)
185 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
186 AC_DEFINE([_WIN32_WINNT], 0x0502, [Define to '0x0502' for Windows XP SP2 APIs.])
187 AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
190 *wince* | *mingwce* | *mingw32ce*)
192 dnl Sadly CeGCC still needs non-wince macros
198 dnl Check if we are using the mno-cygwin mode in which case we are
199 dnl actually dealing with a mingw32 compiler.
204 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
208 if test "${SYS}" = "mingw32"; then
209 VLC_ADD_LIBS([libvlccore],[-lnetapi32 -lwinmm])
210 VLC_ADD_LDFLAGS([vlc],[-mwindows])
211 VLC_ADD_LIBS([win32text],[-lgdi32])
212 VLC_ADD_LIBS([cdda vcdx sdl_image vout_sdl],[-lwinmm])
213 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
214 ac_default_prefix="`pwd`/_win32"
215 DESTDIR="`pwd`/_win32/"
218 dnl NSIS Installer prefix and WIN64
223 PROGRAMFILES="PROGRAMFILES64"
226 PROGRAMFILES="PROGRAMFILES"
229 AC_SUBST(PROGRAMFILES)
232 if test "${SYS}" = "mingwce"; then
233 VLC_ADD_LIBS([libvlccore],[-lmmtimer])
234 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
235 ac_default_prefix="`pwd`/_wince"
236 DESTDIR="`pwd`/_wince/"
253 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild"
259 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
260 AM_CONDITIONAL(HAVE_LINUX, test "${SYS}" = "linux")
261 AM_CONDITIONAL(HAVE_OS2, test "${SYS}" = "os2")
262 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
263 AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1")
264 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
265 AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
268 dnl Check for the contrib directory
271 [AS_HELP_STRING([--with-contrib[=DIR]],
272 [search for 3rd party libraries in DIR/include and DIR/lib])
274 AC_MSG_CHECKING([for 3rd party libraries path])
275 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
276 CONTRIB_DIR="${srcdir}/contrib/${host}"
277 AS_IF([test ! -d "${CONTRIB_DIR}"], [
278 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
279 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
280 AS_IF([test ! -d "${CONTRIB_DIR}"], [
281 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
282 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/${host}"
283 AS_IF([test ! -d "${CONTRIB_DIR}"], [
284 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
285 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/`$CC -dumpmachine`"
286 AS_IF([test ! -d "${CONTRIB_DIR}"], [
287 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
289 AC_MSG_RESULT([not found])
295 AS_IF([test "${with_contrib}" != "no"], [
296 CONTRIB_DIR="${with_contrib}"
299 AC_MSG_RESULT([disabled])
302 AS_IF([test -n "${CONTRIB_DIR}"], [
303 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
304 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
306 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
308 AC_MSG_RESULT([not usable])
312 AS_IF([test -n "${CONTRIB_DIR}"], [
313 AC_MSG_RESULT([${CONTRIB_DIR}])
314 export PATH=${CONTRIB_DIR}/bin:$PATH
315 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
316 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
317 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
318 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
319 AS_IF([test "$build" = "$host" -o "$PKG_CONFIG_LIBDIR"], [
320 export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
322 export PKG_CONFIG_LIBDIR="${CONTRIB_DIR}/lib/pkgconfig"
324 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
326 AS_IF([test "${SYS}" = "darwin"], [
327 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
328 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
331 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
332 AC_MSG_ERROR([Third party libraries not found!])
335 AC_SUBST(CONTRIB_DIR)
338 dnl Sadly autoconf does not think about testing foo.exe when ask to test
339 dnl for program foo on win32
341 case "${build_os}" in
343 ac_executable_extensions=".exe"
349 dnl Android is linux, but a bit different
350 AS_IF([test "$SYS" = linux],[
351 AC_MSG_CHECKING([for an Android system])
352 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
353 [[#ifndef __ANDROID__
364 AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")
368 dnl It's very bad, but our former custom system was worst
372 dnl override platform specific check for dependent libraries
373 dnl otherwise libtool linking of shared libraries will
374 dnl fail on anything other than pass_all.
375 AC_CACHE_VAL(lt_cv_deplibs_check_method,
376 [lt_cv_deplibs_check_method=pass_all])
378 LT_INIT([dlopen win32-dll shared disable-static])
380 LT_LANG([Windows Resource])
382 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
383 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
385 lt_cv_deplibs_check_method=pass_all
387 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
388 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
394 AM_GNU_GETTEXT_VERSION([0.18.1])
395 AM_GNU_GETTEXT([external])
402 dnl Check for broken versions of mingw-runtime compatability library
403 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
404 AC_MSG_CHECKING(for broken mingw-runtime)
405 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
407 #if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 15)
408 #ifndef __MINGW64_VERSION_MAJOR
409 # error Attempting to use mingw-runtime with broken vsnprintf support
415 AC_MSG_RESULT([present])
416 AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher!])
418 dnl force use of mingw provided c99 *printf over msvcrt
419 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
422 dnl Check for the need to include the mingwex lib for mingw32
423 if test "${SYS}" = "mingw32" ; then
424 AC_CHECK_LIB(mingwex,opendir,
425 AC_CHECK_LIB(mingw32,opendir,,
426 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
430 dnl Check for fnative-struct or mms-bitfields support for mingw32
431 if test "${SYS}" = "mingw32" ; then
433 CFLAGS="${CFLAGS} -mms-bitfields"
434 CXXFLAGS="${CXXFLAGS} -mms-bitfields"
435 AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
436 [ac_cv_c_mms_bitfields],
437 [AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
438 if test "${ac_cv_c_mms_bitfields}" = "no"; then
440 CFLAGS="${CFLAGS} -fnative-struct"
441 CXXFLAGS="${CXXFLAGS} -fnative-struct"
442 AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
443 [ac_cv_c_fnative_struct],
444 [AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
445 "${ac_cv_c_fnative_struct}" = "no" && VLC_RESTORE_FLAGS
450 dnl Buggy glibc prevention. Purposedly not cached.
451 dnl See sourceware.org bugs 5058 and 5443.
452 dnl Ubuntu alone has 20 bug numbers for this...
454 AC_MSG_CHECKING(for buggy GNU/libc versions)
455 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
457 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
458 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
459 # error GNU/libc with dcgettext killer bug!
462 AC_MSG_RESULT([not present])
464 AC_MSG_RESULT([found])
465 AS_IF([test "x${enable_nls}" != "xno"], [
466 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
467 work-around for this. Check with your distribution vendor on how to update the
468 glibc run-time. Alternatively, build with --disable-nls.])
472 dnl Plugin compilation stuff
476 dnl Check for system libs needed
479 dnl Check for usual libc functions
480 AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
481 AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r if_nameindex if_nametoindex isatty lstat memalign mmap openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale])
482 AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r inet_pton lldiv localtime_r nrand48 poll rewind setenv strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab tdestroy])
483 AC_CHECK_FUNCS(fdatasync,,
484 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
487 dnl mingw64 implements those as static inline, not functions with C linkage
489 AC_LANG_PROGRAM([#include <stdio.h>], [
491 if (asprintf(&c, "%s %d", "string", 1) == -1)
493 ])],[AC_DEFINE([HAVE_ASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([asprintf])])
495 AC_LANG_PROGRAM([#include <stdio.h>], [
498 if (vasprintf(&c, "%s %d", ap) == -1)
500 ])],[AC_DEFINE([HAVE_VASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([vasprintf])])
502 # Windows CE does not have strcoll()
505 dnl Check for non-standard system calls
506 AC_CHECK_FUNCS([accept4 pipe2 eventfd vmsplice sched_getaffinity])
508 AH_BOTTOM([#include <vlc_fixups.h>])
510 dnl Check for struct pollfd
511 AC_CHECK_TYPES([struct pollfd],,,
512 [#include <sys/types.h>
515 #elif defined (WIN32)
516 # include <winsock2.h>
520 dnl Check for connect
523 AC_SEARCH_LIBS(connect, [socket], [
524 AS_IF([test "$ac_cv_search_connect" != "none required"], [
525 SOCKET_LIBS="$ac_cv_search_connect"
528 AS_IF([test "${SYS}" = "mingw32"], [
529 SOCKET_LIBS="-lws2_32"
531 AS_IF([test "${SYS}" = "mingwce"], [
536 AS_IF([test -n "$SOCKET_LIBS"], [
537 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}])
539 AC_SUBST(SOCKET_LIBS)
541 dnl Check for socklen_t
542 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
543 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
544 ac_cv_type_socklen_t,
545 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
546 [#include <sys/types.h>
548 # include <winsock2.h>
549 # include <ws2tcpip.h>
551 # include <sys/socket.h>
552 #endif]], [[socklen_t len; len = 0;]])],
553 ac_cv_type_socklen_t=yes,
554 ac_cv_type_socklen_t=no)])
555 AS_IF([test "$ac_cv_type_socklen_t" = no],
556 [AC_DEFINE(socklen_t, int)])
558 dnl Check for struct sockaddr_storage
559 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
560 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
561 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
563 [#include <sys/types.h>
564 #if defined( UNDER_CE )
565 # include <winsock2.h>
566 #elif defined( WIN32 )
567 # include <winsock2.h>
569 # include <sys/socket.h>
570 #endif], [struct sockaddr_storage addr;],
571 ac_cv_struct_sockaddr_storage=yes,
572 ac_cv_struct_sockaddr_storage=no)])
573 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
574 AC_DEFINE(sockaddr_storage, sockaddr)
575 AC_DEFINE(ss_family, sa_family)
578 dnl getaddrinfo, getnameinfo and gai_strerror check
579 dnl -lnsl and -lsocket are needed on Solaris;
580 dnl we purposedly make the test fail on Windows
582 AC_SEARCH_LIBS([getaddrinfo], [nsl],,, [${SOCKET_LIBS}])
585 dnl FreeBSD has a gnugetopt library for this:
587 AC_CHECK_FUNC(getopt_long,, [
588 AC_CHECK_LIB([gnugetopt],[getopt_long], [
589 GNUGETOPT_LIBS="-lgnugetopt"
592 AC_SUBST(GNUGETOPT_LIBS)
595 VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene kate flac lua chorus_flanger freetype avcodec avformat access_avio swscale postproc i420_rgb faad twolame equalizer spatializer param_eq samplerate freetype mod mpc dmo mp4 quicktime realvideo qt4 compressor headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract ball access_imem hotkeys mosaic gaussianblur dbus x264 hqdn3d],[-lm])
602 AC_CHECK_LIB(m,lrintf, [
603 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
604 VLC_ADD_LIBS([skins2],[-lm])
607 dnl Check for dynamic plugins
609 have_dynamic_objects="no"
611 AC_SEARCH_LIBS(dlopen, [dl svld], [
612 AS_IF([test "$ac_cv_search_dlopen" != "none required"], [
613 LIBDL="$ac_cv_search_dlopen"
615 have_dynamic_objects="yes"
620 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
622 have_dynamic_objects="yes" #assume we can use shared objects
625 test "${enable_shared}" = "no" && have_dynamic_objects=no
627 AS_IF([test "${have_dynamic_objects}" != "no"], [
628 AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1,
629 [Define to 1 if dynamic plugins are supported.])
631 dnl Clear $LIBDL so as not to break linking
634 AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])
637 VLC_ADD_LIBS([realvideo lua],[$LIBDL])
639 dnl Check for thread library
640 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
644 AC_SEARCH_LIBS(pthread_rwlock_init, pthread pthreads c_r, [
645 VLC_ADD_LIBS([libvlccore libvlc vlc plugin],[${LIBS}])
649 AC_CHECK_LIB(rt, clock_nanosleep, [
650 VLC_ADD_LIBS([libvlccore],[-lrt])
652 AC_CHECK_FUNC(nanosleep,,[
653 AC_CHECK_LIB(rt,nanosleep, [
654 VLC_ADD_LIBS([libvlccore],[-lrt])
656 AC_CHECK_LIB(posix4,nanosleep, [
657 VLC_ADD_LIBS([libvlccore],[-lposix4])
662 AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
664 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
666 dnl Check for misc headers
667 AC_MSG_CHECKING(for strncasecmp in strings.h)
668 AC_EGREP_HEADER(strncasecmp,strings.h,[
670 AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
671 Define if <strings.h> defines strncasecmp.)],[
674 dnl Check for headers
675 AC_CHECK_HEADERS([search.h])
676 AC_CHECK_HEADERS(getopt.h strings.h locale.h xlocale.h)
677 AC_CHECK_HEADERS(fcntl.h sys/time.h sys/ioctl.h sys/stat.h)
678 AC_CHECK_HEADERS([arpa/inet.h netinet/udplite.h sys/eventfd.h])
679 AC_CHECK_HEADERS([net/if.h], [], [],
681 #include <sys/types.h>
682 #include <sys/socket.h>
684 AC_CHECK_HEADERS([sys/mount.h], [], [],
686 #include <sys/param.h>
689 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
690 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
691 AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
692 AC_CHECK_HEADERS(syslog.h)
693 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
695 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
696 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
697 AC_CHECK_TYPE(ssize_t,, [
698 AC_DEFINE(ssize_t, int)
701 dnl Check for threads library
702 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
703 AC_CHECK_HEADERS(pthread.h)
704 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
706 dnl It seems that autoconf detects pkg-config only during the first
707 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
708 dnl it is nested within a conditional block, so it was not working right.
709 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
710 AC_ARG_VAR(PKG_CONFIG_PATH,
711 [Paths where to find .pc not at the default location])
712 PKG_PROG_PKG_CONFIG()
714 dnl On some OS we need static linking
715 AS_IF([test -n "${PKG_CONFIG}" ],[
716 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
717 PKG_CONFIG="${PKG_CONFIG} --static"
723 dnl Check for zlib.h and -lz along with system -lminizip if available
725 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
726 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
727 if test "${have_zlib}" = "yes"
729 VLC_ADD_LIBS([access_http mp4 skins2 sap mkv unzip zip],[-lz])
730 PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
731 AC_CHECK_HEADERS([unzip.h], [
733 MINIZIP_LIBS="-lminizip -lz"
736 MINIZIP_CFLAGS="-I\\\${top_srcdir}/modules/access/zip/unzip"
737 MINIZIP_LIBS="\\\${top_builddir}/modules/access/zip/unzip/libunzip.la"
740 VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
741 VLC_ADD_LIBS([skins2],[$MINIZIP_LIBS])
743 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
746 dnl Manual switch for UTF-8
747 AC_ARG_ENABLE(non-utf8,
748 [AS_HELP_STRING([--enable-non-utf8],
749 [support legacy non-UTF-8 systems (default disabled)])],, [
750 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "os2"], [
754 AS_IF([test "${enable_non_utf8}" != "no"], [
755 AC_DEFINE([ASSUME_UTF8], [1],
756 [Define to 1 if the operating system uses UTF-8 internally])
762 [AS_HELP_STRING([--enable-dbus],
763 [compile D-Bus message bus support (default enabled)])])
766 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
769 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.0.0],
770 [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
771 VLC_ADD_LIBS([libvlccore],[$DBUS_LIBS])
772 VLC_ADD_CFLAGS([libvlccore],[$DBUS_CFLAGS])
773 dnl Check for dbus control interface
774 AC_ARG_ENABLE(dbus-control,
775 [AS_HELP_STRING([--disable-dbus-control],
776 [D-Bus control interface (default enabled)])])
777 if test "${enable_dbus_control}" != "no"
779 VLC_ADD_PLUGIN([dbus])
780 VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
781 VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
783 dnl Check for Telepathy
784 AC_ARG_ENABLE(telepathy,
785 AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
786 if test "${enable_telepathy}" != "no"; then
787 VLC_ADD_PLUGIN([telepathy])
788 VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
789 VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
791 dnl Power Management Inhibiter
792 VLC_ADD_PLUGIN([inhibit])
793 VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
794 VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
796 [AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])]
802 dnl Check for ntohl, etc.
804 CFLAGS="${CFLAGS} -Wall -Werror"
805 AC_CACHE_CHECK([for ntohl in sys/param.h],
806 [ac_cv_c_ntohl_sys_param_h],
807 [ AC_TRY_COMPILE([#include <sys/param.h>],
808 [int meuh; ntohl(meuh);],
809 ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
810 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
811 AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
815 EXTEND_HELP_STRING([Optimization options:])
817 dnl Compiler warnings
820 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])
821 RDC_PROG_CC_FLAGS([-pipe])
823 RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
830 [AS_HELP_STRING([--enable-debug],
831 [build with run-time assertions (default disabled)])],,
834 [Define to 1 if debug code should NOT be compiled])
835 AS_IF([test "${enable_debug}" != "no"], [
836 AC_CHECK_HEADERS([valgrind/valgrind.h])
845 [AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)])],,
847 AS_IF([test "${enable_gprof}" != "no"], [
848 CFLAGS="${CFLAGS} -pg"
849 CXXFLAGS="${CXXFLAGS} -pg"
850 OBJCFLAGS="${OBJCFLAGS} -pg"
851 LDFLAGS="${LDFLAGS} -pg"
855 [AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)])],,
857 AS_IF([test "${enable_gprof}" != "no"], [
858 CFLAGS="${CFLAGS} -finstrument-functions"
859 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
860 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
861 LDFLAGS="${LDFLAGS} -finstrument-functions"
867 AC_ARG_ENABLE(coverage,
868 [AS_HELP_STRING([--enable-coverage],
869 [build for test coverage (default disabled)])],,
870 [enable_coverage="no"])
871 AS_IF([test "${enable_coverage}" != "no"], [
872 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
873 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
874 LDFLAGS="-lgcov ${LDFLAGS}"
877 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
879 CFLAGS="${CFLAGS} -fvisibility=hidden"
880 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
881 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
882 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
883 [ac_cv_c_visibility_hidden], [
884 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
885 ac_cv_c_visibility_hidden=yes
887 ac_cv_c_visibility_hidden=no
890 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
895 dnl Enable/disable optimizations
897 AC_ARG_ENABLE(optimizations,
898 [AS_HELP_STRING([--disable-optimizations],
899 [disable compiler optimizations (default enabled)])],,
900 [enable_optimizations="yes"])
902 dnl Check for various optimization flags
903 AS_IF([test "${enable_optimizations}" != "no"], [
905 dnl -O4 and -O3 only in production builds
906 AS_IF([test "{enable_debug}" = "no"], [
908 CFLAGS="${CFLAGS} -O4"
909 CXXFLAGS="${CXXFLAGS} -O4"
910 OBJCFLAGS="${OBJCFLAGS} -O4"
911 AC_CACHE_CHECK([if $CC accepts -O4], [ac_cv_c_o4], [
912 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
918 AS_IF([test "${ac_cv_c_o4}" = "no"], [
920 CFLAGS="${CFLAGS} -O3"
921 CXXFLAGS="${CXXFLAGS} -O3"
922 OBJCFLAGS="${OBJCFLAGS} -O3"
923 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
924 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
930 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
934 dnl Check for -ffast-math
936 CFLAGS="${CFLAGS} -ffast-math"
937 CXXFLAGS="${CXXFLAGS} -ffast-math"
938 OBJCFLAGS="${OBJCFLAGS} -ffast-math"
939 AC_CACHE_CHECK([if $CC accepts -ffast-math], [ac_cv_c_fast_math], [
940 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
941 ac_cv_c_fast_math=yes
946 AS_IF([test "${ac_cv_c_fast_math}" = "no"], [VLC_RESTORE_FLAGS])
948 dnl Check for -funroll-loops
950 CFLAGS="${CFLAGS} -funroll-loops"
951 CXXFLAGS="${CXXFLAGS} -funroll-loops"
952 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
953 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
954 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
955 ac_cv_c_unroll_loops=yes
957 ac_cv_c_unroll_loops=no
960 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
962 AS_IF([test "$enable_debug" = "no"], [
963 dnl Check for -fomit-frame-pointer
965 CFLAGS="${CFLAGS} -fomit-frame-pointer"
966 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
967 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
968 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
969 [ac_cv_c_omit_frame_pointer], [
970 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
971 ac_cv_c_omit_frame_pointer=yes
973 ac_cv_c_omit_frame_pointer=no
976 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
980 dnl Check for Darwin plugin linking flags
981 AS_IF([test "${SYS}" = "darwin"], [
983 CFLAGS="${CFLAGS} -bundle -undefined error"
984 AC_CACHE_CHECK([if $CC accepts -bundle -undefined error],
986 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
992 AS_IF([test "${ac_cv_ld_darwin}" != "no"], [
993 VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
998 dnl Checks for __attribute__(aligned()) directive
1000 CFLAGS="${CFLAGS} -Werror"
1001 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1002 [ac_cv_c_attribute_aligned],
1003 [ac_cv_c_attribute_aligned=0
1004 for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1006 [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1007 [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1010 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1011 AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1012 [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1015 dnl Check for __attribute__((packed))
1016 AC_CACHE_CHECK([for __attribute__((packed))],
1017 [ac_cv_c_attribute_packed],
1018 [ac_cv_c_attribute_packed=no
1019 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1020 [ac_cv_c_attribute_packed=yes])])
1021 if test "${ac_cv_c_attribute_packed}" != "no"; then
1022 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1028 case "${host_cpu}" in
1037 dnl Check for backtrace() support
1038 AC_CHECK_HEADERS(execinfo.h)
1039 AC_CHECK_FUNCS(backtrace)
1044 ALIASES="${ALIASES} cvlc rvlc"
1047 dnl Some plugins aren't useful on some platforms
1049 if test "${SYS}" = "os2"; then
1050 VLC_ADD_PLUGIN([dynamicoverlay])
1051 elif test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1052 VLC_ADD_PLUGIN([dynamicoverlay access_shm])
1053 elif test "${SYS}" != "mingwce"; then
1054 VLC_ADD_PLUGIN([access_smb dmo globalhotkeys])
1055 VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1057 if test "${SYS}" = "darwin"; then
1058 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
1062 dnl Accelerated modules
1065 dnl Check for fully working MMX intrinsics
1066 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1067 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1069 [AS_HELP_STRING([--disable-mmx],
1070 [disable MMX optimizations (default auto)])],,[
1071 case "${host_cpu}" in
1082 AS_IF([test "${enable_mmx}" != "no"], [
1085 CFLAGS="${CFLAGS} -O -mmmx"
1086 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1087 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1088 [#include <mmintrin.h>
1090 uint64_t frobzor;]], [
1092 a = b = c = (__m64)frobzor;
1093 a = _mm_slli_pi16(a, 3);
1094 a = _mm_adds_pi16(a, b);
1095 c = _mm_srli_pi16(c, 8);
1096 c = _mm_slli_pi16(c, 3);
1097 b = _mm_adds_pi16(b, c);
1098 a = _mm_unpacklo_pi8(a, b);
1099 frobzor = (uint64_t)a;]])], [
1100 ac_cv_c_mmx_intrinsics=yes
1102 ac_cv_c_mmx_intrinsics=no
1106 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1107 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1111 CFLAGS="${CFLAGS} -mmmx"
1112 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1113 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1115 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1118 ac_cv_mmx_inline=yes
1123 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1124 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1128 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1129 [ac_cv_mmxext_inline], [
1130 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1132 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1135 ac_cv_mmxext_inline=yes
1137 ac_cv_mmxext_inline=no
1141 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1142 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1146 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1147 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1149 dnl Check for fully workin SSE2 intrinsics
1150 dnl We need support for -mmmx, we need <emmintrin.h>, and we also need a
1151 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1153 [AS_HELP_STRING([--disable-sse],
1154 [disable SSE (1-4) optimizations (default auto)])],, [
1155 case "${host_cpu}" in
1165 AS_IF([test "${enable_sse}" != "no"], [
1166 ARCH="${ARCH} sse sse2"
1169 CFLAGS="${CFLAGS} -O -msse2"
1170 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1171 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1172 [#include <emmintrin.h>
1174 uint64_t frobzor;]], [
1176 a = b = c = _mm_set1_epi64((__m64)frobzor);
1177 a = _mm_slli_epi16(a, 3);
1178 a = _mm_adds_epi16(a, b);
1179 c = _mm_srli_epi16(c, 8);
1180 c = _mm_slli_epi16(c, 3);
1181 b = _mm_adds_epi16(b, c);
1182 a = _mm_unpacklo_epi8(a, b);
1183 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1184 ac_cv_c_sse2_intrinsics=yes
1186 ac_cv_c_sse2_intrinsics=no
1190 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1191 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1195 CFLAGS="${CFLAGS} -msse"
1196 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1197 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1199 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1202 ac_cv_sse_inline=yes
1208 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1209 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1212 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1213 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1215 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1218 ac_cv_sse2_inline=yes
1220 ac_cv_sse2_inline=no
1223 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1224 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1229 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1230 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1232 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1235 ac_cv_sse3_inline=yes
1237 ac_cv_sse3_inline=no
1241 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1242 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1244 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1245 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1247 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1250 ac_cv_ssse3_inline=yes
1252 ac_cv_ssse3_inline=no
1256 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1257 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1260 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1261 [ac_cv_sse4_1_inline], [
1262 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1264 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1267 ac_cv_sse4_1_inline=yes
1269 ac_cv_sse4_1_inline=no
1273 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1274 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1277 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1278 [ac_cv_sse4_2_inline], [
1279 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1281 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1284 ac_cv_sse4_2_inline=yes
1286 ac_cv_sse4_2_inline=no
1290 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1291 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1294 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1295 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1297 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1300 ac_cv_sse4a_inline=yes
1302 ac_cv_sse4a_inline=no
1306 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1307 AC_DEFINE(CAN_COMPILE_SSE4A, 1, [Define to 1 if SSE4A inline assembly is available.]) ])
1309 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1312 CFLAGS="${CFLAGS} -mmmx"
1314 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1315 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1317 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1320 ac_cv_3dnow_inline=yes
1322 ac_cv_3dnow_inline=no
1326 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1327 AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1328 [Define to 1 if 3D Now! inline assembly is available.])
1331 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1335 [AS_HELP_STRING([--disable-neon],
1336 [disable NEON optimizations (default auto)])],, [
1337 AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1339 AS_IF([test "${enable_neon}" != "no"], [
1341 CFLAGS="${CFLAGS} -mfpu=neon"
1342 AC_CACHE_CHECK([if $CC groks NEON inline assembly], [ac_cv_neon_inline], [
1345 asm volatile("vqmovun.s64 d0, q1":::"d0");
1346 asm volatile("ssat r0, #1, r0":::"r0"); /* assume ARMv6 */
1349 ac_cv_neon_inline="-mfpu=neon"
1351 ac_cv_neon_inline="no"
1355 AS_IF([test "$ac_cv_neon_inline" != "no"], [
1356 NEON_CFLAGS="$ac_cv_neon_inline"
1357 AC_DEFINE([CAN_COMPILE_NEON], 1, [Define to 1 if NEON (and ARMv6) assembly is available with NEON_CFLAGS.])
1360 ac_cv_neon_inline="no"
1362 AC_SUBST(NEON_CFLAGS)
1363 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_neon_inline}" != "no"])
1366 AC_ARG_ENABLE(altivec,
1367 [AS_HELP_STRING([--disable-altivec],
1368 [disable AltiVec optimizations (default auto)])],, [
1369 AS_IF([test "${host_cpu}" = "powerpc"],
1370 [enable_altivec=yes], [enable_altivec=no])
1373 AS_IF([test "${enable_altivec}" = "yes"], [
1374 ARCH="${ARCH} altivec";
1376 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1377 [ac_cv_altivec_inline],
1378 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1379 ac_cv_altivec_inline="yes",
1380 [CFLAGS="${CFLAGS} -Wa,-m7400"
1381 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1382 [ac_cv_altivec_inline="-Wa,-m7400"],
1383 ac_cv_altivec_inline=no)
1386 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1387 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1388 [Define to 1 if AltiVec inline assembly is available.])
1389 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1390 VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1391 VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1392 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1397 dnl The AltiVec C extensions
1399 dnl There are several possible cases:
1400 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1401 dnl need <altivec.h>
1402 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1403 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1404 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1405 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1406 dnl - Others: test should fail
1408 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1410 [# OS X/PPC test (gcc 4.x)
1411 CFLAGS="${CFLAGS} -mpim-altivec -force_cpusubtype_ALL"
1412 AC_TRY_COMPILE([vector unsigned char foo;],
1413 [vec_ld(0, (unsigned char *)0);],
1414 [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1415 [# OS X/PPC test (gcc 3.x)
1416 CFLAGS="${CFLAGS} -faltivec"
1417 AC_TRY_COMPILE([vector unsigned char foo;],
1418 [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1419 [ac_cv_c_altivec="-faltivec"],
1420 dnl Below this are the Linux tests
1421 [# Linux/PPC test (gcc 4.x)
1422 CFLAGS="${CFLAGS} -maltivec"
1423 AC_TRY_COMPILE([#include <altivec.h>],
1424 [vec_ld(0, (unsigned char *)0);],
1425 [ac_cv_c_altivec="-maltivec"],
1426 [# Linux/PPC test (gcc 3.3)
1427 CFLAGS="${CFLAGS} -maltivec -mabi=altivec"
1428 AC_TRY_COMPILE([#include <altivec.h>],
1429 [vec_ld(0, (unsigned char *)0);],
1431 ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1432 [# Linux/PPC test (gcc 3.3)
1433 CFLAGS="${CFLAGS} -fvec"
1434 AC_TRY_COMPILE([#include <altivec.h>],
1435 [vec_ld(0, (unsigned char *)0);],
1436 [ac_cv_c_altivec="-fvec"],
1437 [ac_cv_c_altivec=no])
1445 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1446 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1447 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1448 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1449 VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1452 AC_CHECK_HEADERS(altivec.h)
1455 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1456 AC_CACHE_CHECK([if linker needs -framework vecLib],
1458 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1460 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1461 VLC_ADD_LIBS([libvlccore memcpyaltivec],[-Wl,-framework,vecLib])
1464 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1467 dnl Special arch tuning
1470 [AS_HELP_STRING([--with-tuning=ARCH],
1471 [tune compilation for an architecture (default varies)])])
1472 if test -n "${with_tuning}"; then
1473 if test "${with_tuning}" != "no"; then
1474 CFLAGS_TUNING="-mtune=${with_tuning}"
1477 if test "${SYS}" = "darwin" -a "${host_cpu}" = "i686"; then
1478 CFLAGS_TUNING="-march=prescott -mtune=generic"
1479 elif test "${SYS}" = "darwin" -a "${host_cpu}" = "x86_64"; then
1480 CFLAGS_TUNING="-march=core2 -mtune=core2"
1481 elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1482 CFLAGS_TUNING="-mtune=pentium2"
1483 elif test "${host_cpu}" = "x86_64"; then
1484 CFLAGS_TUNING="-mtune=athlon64"
1485 elif test "${host_cpu}" = "powerpc"; then
1486 CFLAGS_TUNING="-mtune=G4";
1490 dnl NOTE: this can't be cached cleanly
1491 AS_IF([test -n "${CFLAGS_TUNING}"], [
1493 CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1494 AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1495 AC_COMPILE_IFELSE([AC_LANG_SOURCE([])], [
1496 AC_MSG_RESULT([yes])
1500 AS_IF([test "${with_tuning}"], [AC_MSG_ERROR([requested tuning not supported])])
1507 AC_ARG_ENABLE(optimize-memory,
1508 [AS_HELP_STRING([--enable-optimize-memory],
1509 [optimize memory usage over performance])])
1510 if test "${enable_optimize_memory}" = "yes"; then
1511 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1515 dnl Allow running as root (useful for people running on embedded platforms)
1517 AC_ARG_ENABLE(run-as-root,
1518 [AS_HELP_STRING([--enable-run-as-root],
1519 [allow running VLC as root (default disabled)])])
1520 AS_IF([test "${enable_run_as_root}" = "yes"],[
1521 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1522 [Define to 1 to allow running VLC as root (uid 0).])
1529 [AS_HELP_STRING([--disable-sout],
1530 [disable streaming output (default enabled)])])
1531 AS_IF([test "${enable_sout}" != "no"], [
1532 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1534 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1538 [AS_HELP_STRING([--disable-lua],
1539 [disable LUA scripting support (default enabled)])])
1540 if test "${enable_lua}" != "no"
1542 PKG_CHECK_MODULES(LUA, lua5.1,
1545 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1546 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1549 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1551 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1554 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1555 [LUA_LIBS="-llua5.1"],
1556 AC_CHECK_LIB( lua51 , luaL_newstate,
1557 [LUA_LIBS="-llua51"],
1558 AC_CHECK_LIB( lua , luaL_newstate,
1566 if test "x${have_lua}" = "xyes" ; then
1567 VLC_ADD_LIBS([lua],[$LUA_LIBS])
1568 VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1570 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.])
1572 AC_ARG_VAR([LUAC], [LUA byte compiler])
1573 AC_PATH_PROGS(LUAC,[${LUAC} luac], [false])
1574 AS_IF([test "${LUAC}" = "false"], [
1575 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1578 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1584 AC_ARG_ENABLE(httpd,
1585 [AS_HELP_STRING([--disable-httpd],
1586 [disable the built-in HTTP server (default enabled)])])
1587 if test "${enable_httpd}" != "no"
1589 AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP daemon support)
1591 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1595 dnl VideoLAN manager
1598 [AS_HELP_STRING([--disable-vlm],
1599 [disable the stream manager (default enabled)])],,
1600 [enable_vlm="${enable_sout}"])
1601 AS_IF([test "${enable_vlm}" != "no"], [
1602 AS_IF([test "${enable_sout}" = "no"], [
1603 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1605 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1607 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1614 EXTEND_HELP_STRING([Input plugins:])
1617 dnl libproxy support
1619 AC_ARG_ENABLE(libproxy,
1620 [AS_HELP_STRING([--enable-libproxy],[support libproxy (default auto)])])
1621 AS_IF([test "${enable_libproxy}" != "no"], [
1622 PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1623 AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1624 VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1625 VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1627 AS_IF([test -n "${enable_libproxy}"], [
1628 AC_MSG_ERROR([${LIBPROXY_PKG_ERRORS}.])
1636 AC_ARG_ENABLE(live555,
1637 [AS_HELP_STRING([--enable-live555],
1638 [enable RTSP input through live555 (default enabled)])])
1639 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1642 AS_IF([test -z "${CONTRIB_DIR}"], [
1643 CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1645 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1647 AS_IF([test "${SYS}" = "solaris"], [
1648 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1650 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1652 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1653 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1654 [#include <liveMedia_version.hh>
1655 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1664 AS_IF([test "$ac_cv_live555" = "no"], [
1665 AC_MSG_WARN([liveMedia is missing or its installed version is too old:
1666 Version 2010.05.29 or later is required to proceed.
1667 You can get an updated one from http://www.live555.com/liveMedia .])
1668 AS_IF([test -n "${enable_live555}"], [
1669 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1672 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1673 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1674 AS_IF([test "${SYS}" = "mingw32"], [
1675 # add ws2_32 for closesocket, select, recv
1676 other_libs="$other_libs -lws2_32"
1677 ], [test "${SYS}" = "mingwce"], [
1678 # add ws2 for closesocket, select, recv
1679 other_libs="$other_libs -lws2"
1682 dnl We need to check for pic because live555 don't provide shared libs
1683 dnl and we want to build a plugins so we need -fPIC on some arch.
1684 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1685 AC_CHECK_LIB(liveMedia_pic, main, [
1686 VLC_ADD_PLUGIN([live555])
1687 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1689 AC_CHECK_LIB(liveMedia, main, [
1690 VLC_ADD_PLUGIN([live555])
1691 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1692 ],[],[${other_libs}])],[${other_libs_pic}])
1699 dnl - special access module for dc1394 input
1700 dnl - dv module: digital video module check for libraw1394
1701 dnl - linsys modules: access module check for libzvbi
1703 PKG_ENABLE_MODULES_VLC([DC1394], [], [libraw1394 >= 2.0.1 libdc1394-2 >= 2.1.0], [dc1394 access module], [auto])
1704 PKG_ENABLE_MODULES_VLC([DV], [access_dv], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV input module], [auto])
1706 AC_ARG_ENABLE(linsys,
1707 [AS_HELP_STRING([--enable-linsys],
1708 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
1709 if test "$SYS" = "linux" -a "${enable_linsys}" != "no"; then
1710 VLC_ADD_PLUGIN([linsys_hdsdi])
1711 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28],
1712 [ VLC_ADD_LIBS([linsys_sdi],[$LINSYS_SDI_LIBS])
1713 VLC_ADD_CFLAGS([linsys_sdi],[$LINSYS_SDI_CFLAGS])
1714 VLC_ADD_PLUGIN([linsys_sdi]) ],
1715 [AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])]
1720 dnl dvdread module: check for libdvdread
1722 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread], [dvdread input module], [auto])
1725 dnl libdvdnav plugin
1727 AC_ARG_ENABLE(dvdnav,
1728 [AS_HELP_STRING([--disable-dvdnav],
1729 [disable DVD navigation with libdvdnav (default auto)])])
1730 if test "${enable_dvdnav}" != "no"
1732 PKG_CHECK_MODULES(DVDNAV, dvdnav, [
1733 VLC_ADD_PLUGIN([dvdnav])
1734 VLC_ADD_CFLAGS([dvdnav],[${DVDNAV_CFLAGS}])
1735 VLC_ADD_LIBS([dvdnav],[${DVDNAV_LIBS}])
1736 AC_CHECK_LIB(dvdnav, dvdnav_get_video_resolution,
1737 AC_DEFINE(HAVE_DVDNAV_GET_VIDEO_RESOLUTION, 1, [Define if you have dvdnav_get_video_resolution.]),
1738 [], [${LIBS_dvdnav}])
1739 AC_CHECK_LIB(dvdnav, dvdnav_describe_title_chapters,
1740 AC_DEFINE(HAVE_DVDNAV_DESCRIBE_TITLE_CHAPTERS, 1, [Define if you have dvdnav_describe_title_chapters.]),
1741 [], [${LIBS_dvdnav}])],
1742 [AC_MSG_WARN([${DVDNAV_PKG_ERRORS}.])])
1746 dnl Windows DirectShow access module
1748 AC_ARG_ENABLE(dshow,
1749 [AS_HELP_STRING([--disable-dshow],
1750 [support DirectShow (default auto)])])
1751 if test "${enable_dshow}" != "no"
1753 if test "${SYS}" = "mingw32"
1756 AC_CHECK_HEADERS(dshow.h,
1757 [ VLC_ADD_PLUGIN([dshow])
1758 VLC_ADD_CXXFLAGS([dshow],[])
1759 VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
1765 dnl Blu-ray Disc Support with libbluray
1767 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.2.1], (libbluray for Blu-ray disc support ) )
1770 dnl OpenCV wrapper and example filters
1772 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv], (OpenCV (computer vision) filter), [off])
1776 dnl libsmbclient plugin
1779 [AS_HELP_STRING([--disable-smb], [disable SMB/CIFS support (default auto)])])
1780 if test "${enable_smb}" != "no"; then
1781 AC_CHECK_HEADERS(libsmbclient.h,
1782 [ VLC_ADD_PLUGIN([access_smb])
1783 VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
1784 [ if test -n "${enable_smb}"; then
1785 AC_MSG_ERROR([cannot find libsmbclient headers])
1791 dnl sftp access support
1794 [AS_HELP_STRING([--enable-sftp],
1795 [support SFTP file transfer via libssh2 (default disabled)])])
1796 if test "${enable_sftp}" = "yes"; then
1797 AC_CHECK_HEADERS(libssh2.h, [
1798 VLC_ADD_PLUGIN([access_sftp])
1799 VLC_ADD_LIBS([access_sftp], [-lssh2])
1806 AC_ARG_ENABLE(libv4l2, [AS_HELP_STRING([--disable-libv4l2],
1807 [disable userspace V4L2 library (default auto)])])
1808 AC_ARG_ENABLE(pvr, [AS_HELP_STRING([--enable-pvr],
1809 [support PVR V4L2 cards (default disabled)])])
1811 AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h], [
1814 AS_IF([test "$have_v4l2" = "yes"], [
1815 AS_IF([test "${enable_libv4l2}" != "no"], [
1816 PKG_CHECK_MODULES(LIBV4L2, libv4l2, [
1817 AC_DEFINE(HAVE_LIBV4L2, 1, [Define to 1 if libv4l2 is available])
1819 AC_MSG_WARN([${LIBV4L2_PKG_ERRORS}.])
1822 AS_IF([test "${enable_pvr}" = "yes"], [
1823 VLC_ADD_PLUGIN([pvr])
1826 AM_CONDITIONAL(HAVE_V4L2, [test "${have_v4l2}" != "no"])
1829 dnl special access module for Blackmagic SDI cards
1831 AC_ARG_ENABLE(decklink,
1832 [AS_HELP_STRING([--disable-decklink],
1833 [disable Blackmagic DeckLink SDI input (default auto)])])
1834 AC_ARG_WITH(decklink_sdk,
1835 [AS_HELP_STRING[--with-decklink-sdk=DIR],
1836 [ location of Blackmagic DeckLink SDI SDK])])
1837 if test "${enable_decklink}" != "no"
1839 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1841 VLC_ADD_CPPFLAGS([decklink],[-I${with_decklink_sdk}/include])
1844 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1846 AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
1847 VLC_ADD_PLUGIN([decklink])
1848 ],[AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)])
1855 dnl gnomeVFS access module
1857 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
1863 [AS_HELP_STRING([--enable-vcdx],
1864 [navigate VCD with libvcdinfo (default disabled)])])
1865 if test "${enable_vcdx}" = "yes"
1867 PKG_CHECK_MODULES(LIBCDIO, [libcdio >= 0.78.2 libiso9660 >= 0.72],
1868 [VLC_ADD_LIBS([vcdx],[$LIBCDIO_LIBS])
1869 VLC_ADD_CFLAGS([vcdx],[$LIBCDIO_CFLAGS])],
1870 [AC_MSG_ERROR([${LIBCDIO_PKG_ERRORS} (required for vcdx plugin).])])
1871 PKG_CHECK_MODULES(LIBVCDINFO, libvcdinfo >= 0.7.22,
1872 [VLC_ADD_LIBS([vcdx],[$LIBVCDINFO_LIBS])
1873 VLC_ADD_CFLAGS([vcdx],[$LIBVCDINFO_CFLAGS])],
1874 [AC_MSG_ERROR([${LIBVCDINFO_PKG_ERRORS} (required for vcdx plugin).])])
1875 VLC_ADD_PLUGIN([vcdx])
1879 dnl Built-in CD-DA and VCD module
1882 [AS_HELP_STRING([--disable-vcd],
1883 [disable built-in VCD and CD-DA support (default enabled)])])
1885 AC_ARG_ENABLE(libcddb,
1886 [AS_HELP_STRING([--disable-libcddb],
1887 [disable CDDB for Audio CD (default enabled)])])
1889 if test "${enable_vcd}" != "no"
1891 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1892 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1894 VLC_ADD_PLUGIN([vcd cdda])
1899 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1900 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1902 VLC_ADD_PLUGIN([vcd cdda])
1903 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1908 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1909 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1911 VLC_ADD_PLUGIN([vcd cdda])
1912 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1917 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2"
1919 VLC_ADD_PLUGIN([vcd cdda])
1922 if test "${SYS}" = "darwin"
1924 VLC_ADD_PLUGIN([vcd cdda])
1925 VLC_ADD_LIBS([vcd vcdx cdda],[-Wl,-framework,IOKit,-framework,CoreFoundation])
1926 VLC_ADD_LIBS([vcdx cdda],[-liconv])
1929 if test "$enable_libcddb" != "no"; then
1930 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
1932 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
1933 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
1934 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
1936 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
1944 AC_CACHE_CHECK([for Linux DVB version 5], [ac_cv_linux_s2api], [
1945 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1946 [#include <linux/dvb/version.h>
1947 #if (DVB_API_VERSION < 5)
1950 ac_cv_linux_s2api=yes
1952 ac_cv_linux_s2api=no
1954 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_s2api" = "yes"])
1957 dnl Screen capture module
1959 AC_ARG_ENABLE(screen,
1960 [AS_HELP_STRING([--enable-screen],
1961 [disable screen capture (default enabled)])])
1962 if test "${enable_screen}" != "no"; then
1963 if test "${SYS}" = "darwin"; then
1964 AC_CHECK_HEADERS(OpenGL/gl.h, [
1965 AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
1966 VLC_ADD_PLUGIN([screen])
1967 VLC_ADD_LIBS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
1970 elif test "${SYS}" = "mingw32"; then
1971 VLC_ADD_PLUGIN([screen])
1972 VLC_ADD_LIBS([screen],[-lgdi32])
1977 dnl Real RTSP plugin
1979 AC_ARG_ENABLE(realrtsp,
1980 [ --enable-realrtsp Real RTSP module (default disabled)])
1981 if test "${enable_realrtsp}" = "yes"; then
1982 VLC_ADD_PLUGIN([access_realrtsp])
1987 AC_ARG_ENABLE(macosx-eyetv,
1988 [ --enable-macosx-eyetv Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
1989 if test "x${enable_macosx_eyetv}" != "xno" &&
1990 (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
1992 VLC_ADD_LIBS([access_eyetv], [-Wl,-framework,Foundation])
1993 VLC_ADD_PLUGIN([access_eyetv])
1998 AC_ARG_ENABLE(macosx-qtkit,
1999 [ --enable-macosx-qtkit Mac OS X qtcapture (video) and qtsound (audio) module (default enabled on Mac OS X)])
2000 if test "x${enable_macosx_qtkit}" != "xno" &&
2001 (test "${SYS}" = "darwin" || test "${enable_macosx_qtkit}" = "yes")
2003 VLC_ADD_PLUGIN([qtcapture])
2004 VLC_ADD_PLUGIN([qtsound])
2006 AM_CONDITIONAL(HAVE_QTKIT, [test "${SYS}" = "darwin" -a "x${enable_macosx_qtkit}" != "xno"])
2013 EXTEND_HELP_STRING([Mux/Demux plugins:])
2016 dnl libdvbpsi check for ts mux/demux
2019 PKG_WITH_MODULES([DVBPSI], [libdvbpsi], [have_dvbpsi="yes"])
2020 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
2024 dnl GME demux plugin
2027 [AS_HELP_STRING([--enable-gme],
2028 [use Game Music Emu (default auto)])])
2029 AS_IF([test "${enable_gme}" != "no"], [
2030 AC_CHECK_HEADER([gme/gme.h], [
2031 VLC_ADD_LIBS([gme], [-lgme])
2032 VLC_ADD_PLUGIN([gme])
2034 AS_IF([test "x${enable_gme}" != "x"], [
2035 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2045 [AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)])])
2046 AS_IF([test "${enable_sid}" != "no"], [
2047 PKG_CHECK_MODULES(SID, [libsidplay2], [
2049 oldCPPFLAGS="$CPPFLAGS"
2050 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2051 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2052 VLC_ADD_PLUGIN([sid])
2053 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2054 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2056 AS_IF([test -n "${enable_sid}"],
2057 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2058 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2061 CPPFLAGS="$oldCPPFLAGS"
2064 AS_IF([test "x${enable_sid}" = "xyes"],
2065 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2066 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2073 dnl ogg demux plugin
2075 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2076 if test "${enable_sout}" != "no"; then
2077 PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg mux support], [auto])
2078 dnl Check for libshout
2079 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2083 dnl matroska demux plugin
2086 [AS_HELP_STRING([--disable-mkv],
2087 [do not use libmatroska (default auto)])])
2088 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2090 AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2091 AC_MSG_CHECKING(for libebml version >= 1.0.0)
2093 [#include <ebml/EbmlVersion.h>
2094 #ifdef LIBEBML_VERSION
2095 #if LIBEBML_VERSION >= 0x010000
2099 [AC_MSG_RESULT([yes])
2100 AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2101 AC_MSG_CHECKING(for libmatroska version >= 1.0.0)
2103 [#include <matroska/KaxVersion.h>
2104 #ifdef LIBMATROSKA_VERSION
2105 #if LIBMATROSKA_VERSION >= 0x010000
2109 [AC_MSG_RESULT([yes])
2110 AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2111 VLC_ADD_CXXFLAGS([mkv],[])
2112 if test "${SYS}" = "darwin"; then
2113 VLC_ADD_CXXFLAGS([mkv],[-O1])
2115 AC_CHECK_LIB(ebml_pic, main, [
2116 VLC_ADD_PLUGIN([mkv])
2117 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2119 AC_CHECK_LIB(ebml, main, [
2120 VLC_ADD_PLUGIN([mkv])
2121 VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2126 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.])
2130 [AC_MSG_RESULT([no])
2131 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.])
2138 dnl modplug demux plugin
2141 [AS_HELP_STRING([--disable-mod],
2142 [do not use libmodplug (default auto)])])
2143 if test "${enable_mod}" != "no" ; then
2144 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2145 VLC_ADD_PLUGIN([mod])
2146 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2147 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2149 AS_IF([test -n "${enable_mod}"],
2150 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2151 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2156 dnl mpc demux plugin
2159 [AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)])])
2160 if test "${enable_mpc}" != "no"
2162 AC_CHECK_HEADERS([mpc/mpcdec.h], [
2163 VLC_ADD_PLUGIN([mpc])
2164 VLC_ADD_LIBS([mpc],[-lmpcdec])],
2165 [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2166 VLC_ADD_PLUGIN([mpc])
2167 VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2174 EXTEND_HELP_STRING([Codec plugins:])
2179 AC_ARG_ENABLE(wma-fixed,
2180 [ --enable-wma-fixed libwma-fixed module (default disabled)])
2181 if test "${enable_wma_fixed}" = "yes"
2183 VLC_ADD_PLUGIN([wma_fixed])
2187 dnl shine fixed point mp3 encoder
2189 AC_ARG_ENABLE(shine,
2190 [ --enable-shine shine mp3 encoding module (default disabled)])
2191 if test "${enable_shine}" = "yes"
2193 VLC_ADD_PLUGIN([shine])
2197 dnl openmax il codec plugin
2199 AC_ARG_ENABLE(omxil,
2200 [ --enable-omxil openmax il codec module (default disabled)])
2201 if test "${enable_omxil}" = "yes"
2203 VLC_ADD_PLUGIN([omxil])
2204 VLC_ADD_LIBS([omxil], [$LIBDL])
2208 dnl iomx codec plugin
2211 [ --enable-iomx iomx codec module (default disabled)])
2212 if test "${enable_iomx}" = "yes"
2214 VLC_ADD_PLUGIN([iomx])
2218 dnl CrystalHD codec plugin
2220 AC_ARG_ENABLE(crystalhd,
2221 [ --enable-crystalhd crystalhd codec plugin (default auto)])
2222 if test "${enable_crystalhd}" != "no"; then
2223 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2224 VLC_ADD_PLUGIN([crystalhd])
2225 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2227 if test "${SYS}" = "mingw32" ; then
2228 AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2229 VLC_ADD_PLUGIN([crystalhd])
2230 AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2231 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2234 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2235 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2236 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2237 ],[#define __LINUX_USER__
2238 #include <libcrystalhd/bc_dts_types.h>
2242 #include <libcrystalhd/bc_dts_types.h>
2250 [ --enable-mad libmad module (default enabled)])
2251 if test "${enable_mad}" != "no"
2254 [ --with-mad=PATH path to libmad],[],[])
2255 if test "${with_mad}" != "no" -a -n "${with_mad}"
2257 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2258 VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2261 AC_ARG_WITH(mad-tree,
2262 [ --with-mad-tree=PATH mad tree for static linking],[],[])
2263 if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2265 real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2266 if test -z "${real_mad_tree}"
2268 dnl The given directory can't be found
2270 AC_MSG_ERROR([${with_mad_tree} directory does not exist])
2272 dnl Use a custom libmad
2273 AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2274 if test -f ${real_mad_tree}/mad.h
2277 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2278 VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2280 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2281 AC_CHECK_LIB(mad, mad_bit_init, [
2282 VLC_ADD_PLUGIN([mpgatofixed32])
2283 VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2284 ],[ AC_MSG_ERROR([the specified tree has not been compiled ])
2289 AC_MSG_ERROR([the specified tree does not have mad.h])
2293 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_mpgatofixed32}"
2294 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2295 AC_CHECK_HEADERS(mad.h, ,
2296 [ 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.]) ])
2297 AC_CHECK_LIB(mad, mad_bit_init, [
2298 VLC_ADD_PLUGIN([mpgatofixed32])
2299 VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2300 [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2306 AC_ARG_ENABLE(merge-ffmpeg,
2307 [ --enable-merge-ffmpeg merge FFmpeg-based plugins (default disabled)],, [
2308 enable_merge_ffmpeg="no"
2310 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2313 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
2314 AC_CACHE_CHECK([if linker supports -Bsymbolic],
2315 [ac_cv_ld_bsymbolic],
2316 [AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)])
2320 dnl avcodec decoder/encoder plugin
2322 AC_ARG_ENABLE(avcodec,
2323 [ --enable-avcodec libavcodec codec (default enabled)])
2324 AS_IF([test "${enable_avcodec}" != "no"], [
2325 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 52.25.0 libavutil],
2328 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2329 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2330 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2331 AC_CHECK_HEADERS(libavutil/avutil.h)
2332 VLC_ADD_PLUGIN([avcodec])
2333 VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2334 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2335 VLC_ADD_LIBS([avcodec],[-Wl,-Bsymbolic])
2337 VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2341 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2348 dnl libva needs avcodec
2350 AC_ARG_ENABLE(libva,
2351 [ --enable-libva VAAPI GPU decoding support (libVA) (default auto)])
2353 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2354 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2356 AS_IF([test "${enable_libva}" != "no"], [
2357 PKG_CHECK_MODULES(LIBVA, [libva libva-x11], [
2359 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2360 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2361 AC_CHECK_HEADERS(libavcodec/vaapi.h, [
2362 VLC_ADD_LIBS([avcodec],[$LIBVA_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11])
2363 VLC_ADD_CFLAGS([avcodec],[$LIBVA_CFLAGS ${X_CFLAGS}])
2364 AC_DEFINE(HAVE_AVCODEC_VAAPI, 1, [Define if avcodec has to be built with VAAPI support.])
2365 AC_MSG_NOTICE([VAAPI acceleration activated])
2367 AS_IF([test -n "${enable_libva}"], [
2368 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2370 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2375 AS_IF([test -n "${enable_libva}"], [
2376 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2378 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2384 dnl dxva2 needs avcodec
2386 AC_ARG_ENABLE(dxva2,
2387 [ --enable-dxva2 DxVA2 GPU decoding support (default auto)])
2389 AS_IF([test "${enable_dxva2}" != "no"], [
2390 if test "${SYS}" = "mingw32"; then
2391 AS_IF([test "x${have_avcodec}" = "xyes"], [
2392 AC_CHECK_HEADERS(dxva2api.h,
2394 AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2395 VLC_ADD_LIBS([avcodec],[-lole32 -lshlwapi -luuid])
2396 AC_DEFINE(HAVE_AVCODEC_DXVA2, 1, [Define if avcodec has to be built with DxVA2 support.])
2397 echo "DxVA2 acceleration activated"
2399 AS_IF([test "${enable_dxva2}" = "yes"],
2400 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2401 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2402 ], [#undef _WIN32_WINNT
2403 /* DXVA2 is only available in Vista and above */
2404 #define _WIN32_WINNT 0x600])
2406 AS_IF([test "${enable_dxva2}" = "yes"],
2407 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2408 [AC_MSG_WARN([dxva2api.h not found])])
2411 AS_IF([test "x${enable_dxva2}" != "x"], [
2412 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2420 dnl stream_out switcher needs libavcodec
2422 AC_ARG_ENABLE(switcher,
2423 [ --enable-switcher Stream-out switcher plugin (default disabled)])
2424 AS_IF([test "${enable_switcher}" = "yes"], [
2425 AS_IF([test "x${have_avcodec}" = "xyes"], [
2426 VLC_ADD_PLUGIN([stream_out_switcher])
2427 VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS $AVUTIL_LIBS])
2428 VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS $AVUTIL_CFLAGS])
2429 ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2435 dnl avformat demuxer/muxer plugin
2438 AC_ARG_ENABLE(avformat,
2439 [ --enable-avformat libavformat containers (default enabled)],, [
2440 enable_avformat="${have_avcodec}"
2442 if test "${enable_avformat}" != "no"
2444 PKG_CHECK_MODULES(AVFORMAT,[libavformat > 52.30.0 libavcodec libavutil],
2447 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2448 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2449 AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2450 AC_CHECK_HEADERS(libavutil/avutil.h)
2451 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2452 VLC_ADD_PLUGIN([avformat access_avio])
2453 VLC_ADD_LIBS([avformat access_avio],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2454 VLC_ADD_CFLAGS([avformat access_avio],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2455 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2456 VLC_ADD_LIBS([avformat access_avio],[-Wl,-Bsymbolic])
2459 VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2460 VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2464 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2469 dnl swscale image scaling and conversion plugin
2472 AC_ARG_ENABLE(swscale,
2473 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2474 (default enabled)]))
2475 if test "${enable_swscale}" != "no"
2477 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2480 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2481 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2482 AC_CHECK_HEADERS(libswscale/swscale.h)
2483 VLC_ADD_PLUGIN([swscale])
2484 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2485 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2486 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2487 VLC_ADD_LIBS([swscale],[-Wl,-Bsymbolic])
2491 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2499 AC_ARG_ENABLE(postproc,
2500 [ --enable-postproc libpostproc image post-processing (default enabled)])
2501 if test "${enable_postproc}" != "no"
2503 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2506 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2507 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2508 AC_CHECK_HEADERS(postproc/postprocess.h)
2509 VLC_ADD_PLUGIN([postproc])
2510 VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2511 VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2514 AC_MSG_ERROR([${POSTPROC_PKG_ERRORS}. Pass --disable-postproc to ignore this error.])
2519 dnl faad decoder plugin
2522 [ --enable-faad faad codec (default disabled)])
2523 if test "${enable_faad}" = "yes"
2525 AC_ARG_WITH(faad-tree,
2526 [ --with-faad-tree=PATH faad tree for static linking])
2527 if test -n "${with_faad_tree}"
2529 AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2530 real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2531 if test -z "${real_faad_tree}"
2533 dnl The given directory can't be found
2535 AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2537 if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2539 dnl Use a custom faad
2540 AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2541 VLC_ADD_PLUGIN([faad])
2542 VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2543 VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2545 dnl The given libfaad wasn't built
2547 AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2551 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_faad}"
2552 LDFLAGS="${LDFLAGS} ${LIBS_faad}"
2553 AC_CHECK_HEADERS(faad.h, ,
2554 [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2555 AC_CHECK_LIB(faad, faacDecOpen, [
2556 VLC_ADD_PLUGIN([faad])
2557 VLC_ADD_LIBS([faad],[-lfaad]) ],
2558 AC_CHECK_LIB(faad, NeAACDecOpen, [
2559 VLC_ADD_PLUGIN([faad])
2560 VLC_ADD_LIBS([faad],[-lfaad]) ],
2561 [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2567 dnl twolame encoder plugin
2569 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2572 dnl QuickTime plugin
2574 AC_ARG_ENABLE(quicktime,
2575 [ --enable-quicktime QuickTime module (deprecated)])
2576 if test "${enable_quicktime}" = "yes"; then
2577 if test "${SYS}" = "mingw32"; then
2578 VLC_ADD_PLUGIN([quicktime])
2580 AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2581 [ VLC_ADD_PLUGIN([quicktime])
2582 VLC_ADD_LIBS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2583 ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2591 [ --enable-real Real video decoder module (default disabled)])
2592 if test "${enable_real}" = "yes"; then
2593 VLC_ADD_PLUGIN([realvideo])
2597 dnl A52/AC3 decoder plugin
2600 [ --enable-a52 A/52 support with liba52 (default enabled)])
2601 if test "${enable_a52}" != "no"
2604 [ --with-a52=PATH a52 headers and libraries])
2605 AC_ARG_WITH(a52-tree,
2606 [ --with-a52-tree=PATH a52dec tree for static linking ],[],[])
2607 if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2609 real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2610 if test -z "${real_a52_tree}"
2612 dnl The given directory can't be found
2614 AC_MSG_ERROR([${with_a52_tree} directory does not exist])
2616 dnl Use a custom a52dec
2617 AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2618 if test -f ${real_a52_tree}/include/a52.h
2621 VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2622 VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2624 LDFLAGS="${LDFLAGS} ${LIBS_a52tofloat32}"
2625 AC_CHECK_LIB(a52, a52_free, [
2626 VLC_ADD_PLUGIN([a52tofloat32])
2627 VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2628 VLC_ADD_LIBS([a52tofloat32],[-la52])
2630 if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2632 AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
2634 AC_MSG_ERROR([the specified tree has not been compiled])
2639 AC_MSG_ERROR([the specified tree does not have a52.h])
2642 if test -z "${with_a52}"
2647 LDFLAGS_test="-L${with_a52}/lib"
2648 CPPFLAGS_test="-I${with_a52}/include"
2651 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2652 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2653 AC_CHECK_HEADERS(a52dec/a52.h, [
2654 AC_CHECK_LIB(a52, a52_free, [
2655 VLC_ADD_PLUGIN([a52tofloat32])
2656 VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2657 VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2659 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.])
2662 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.])
2668 AC_ARG_WITH(a52-fixed,
2669 [ --with-a52-fixed specify if liba52 has been compiled with fixed point support],
2671 VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2674 dnl DTS Coherent Acoustics decoder plugin
2676 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2681 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2686 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2691 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2696 AC_ARG_ENABLE(tremor,
2697 [ --enable-tremor Tremor decoder support (default disabled)])
2698 if test "${enable_tremor}" = "yes"
2700 AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2701 VLC_ADD_PLUGIN([tremor])
2702 VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
2709 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2711 AS_IF([test "${enable_speex}" != "no"], [
2712 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2715 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2718 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2721 dnl theora decoder plugin
2723 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theora >= 1.0], [experimental theora codec], [auto])
2726 dnl dirac encoder plugin
2728 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
2731 dnl schroedinger decoder plugin (for dirac format video)
2733 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2736 dnl PNG decoder module
2739 [ --enable-png PNG support (default enabled)])
2740 if test "${enable_png}" != "no"; then
2741 AC_CHECK_HEADERS(png.h, [
2743 LDFLAGS="${LDFLAGS} -lz"
2744 AC_CHECK_LIB(png, png_set_rows, [
2745 VLC_ADD_LIBS([png],[-lpng -lz -lm])
2746 VLC_ADD_PLUGIN([png osdmenu osd_parser])],
2751 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
2754 dnl H264 encoder plugin (using libx264)
2757 [ --enable-x264 H264 encoding support with libx264 (default enabled)])
2758 if test "${enable_x264}" != "no"; then
2759 AC_ARG_WITH(x264-tree,
2760 [ --with-x264-tree=PATH x264 tree for static linking ],[],[])
2761 if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2763 real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2764 if test -z "${real_x264_tree}"
2766 dnl The given directory can't be found
2768 AC_MSG_ERROR([${with_x264_tree} directory does not exist])
2770 dnl Use a custom libx264
2771 AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2772 if test -f ${real_x264_tree}/x264.h
2775 VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2776 VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
2777 PKG_CHECK_MODULES(X264,x264, [
2778 VLC_ADD_PLUGIN([x264])
2779 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2780 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2781 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2782 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2785 AC_MSG_ERROR([the specified tree has not been compiled])
2789 AC_MSG_ERROR([the specified tree does not have x264.h])
2792 PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2793 VLC_ADD_PLUGIN([x264])
2794 VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
2796 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2797 VLC_ADD_LIBS([x264],[-Wl,-Bsymbolic])
2800 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2801 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2802 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2805 if test "${enable_x264}" = "yes"; then
2806 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2813 dnl libfluidsynth (MIDI synthetizer) plugin
2815 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
2818 dnl Teletext Modules
2819 dnl vbi decoder plugin (using libzbvi)
2824 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2825 libzvbi (default enabled)]))
2827 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2828 zvbi) (default enabled if zvbi is absent)]))
2830 AS_IF( [test "${enable_zvbi}" != "no"],[
2831 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2833 VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
2834 if test "${SYS}" = "mingw32"; then
2835 VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
2837 VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
2838 VLC_ADD_PLUGIN([zvbi])
2839 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2840 AS_IF( [test "${enable_telx}" = "yes"],[
2841 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2844 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2847 AS_IF( [test "${enable_telx}" != "no" ],[
2848 VLC_ADD_PLUGIN([telx])
2852 dnl libass subtitle rendering module
2854 AC_ARG_ENABLE(libass,
2855 [ --enable-libass Subtitle support using libass (default enabled)])
2856 AS_IF( [test "${enable_libass}" != "no"], [
2857 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
2859 VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
2860 VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
2861 VLC_ADD_PLUGIN([libass])
2863 AC_CHECK_HEADERS(fontconfig/fontconfig.h,
2864 [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
2865 VLC_ADD_LIBS([libass],[-lfontconfig])
2868 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
2873 dnl kate decoder plugin
2875 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
2878 dnl tiger rendering for kate decoder plugin
2880 AC_ARG_ENABLE(tiger,
2881 [ --enable-tiger Tiger rendering library for Kate streams (default auto)])
2882 AS_IF([test "${enable_tiger}" != "no"], [
2883 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
2884 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
2885 VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
2886 VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
2887 AS_IF([test -n "${enable_tiger}"], [
2888 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
2898 EXTEND_HELP_STRING([Video plugins:])
2903 PKG_CHECK_MODULES([GL], [gl], [
2906 AC_CHECK_HEADER([GL/gl.h], [
2915 dnl OpenGL ES 2: depends on EGL 1.1 and is currently unfinished
2916 dnl PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [auto])
2917 dnl OpenGL ES 1: depends on EGL 1.0 and is currently broken
2918 dnl PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [auto])
2921 [ --enable-egl OpenGL support through EGL (default disabled)],, [
2924 AS_IF([test "$enable_egl" != "no"], [
2925 PKG_CHECK_MODULES([EGL], [egl], [
2926 VLC_ADD_PLUGIN([gl])
2927 VLC_ADD_PLUGIN([egl])
2936 AC_CHECK_HEADERS(X11/Xlib.h)
2939 dnl X C Bindings modules
2942 [ --enable-xcb X11 support with XCB (default enabled)],, [
2943 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
2949 AC_ARG_ENABLE(xvideo,
2950 [ --enable-xvideo XVideo support (default enabled)],, [
2951 enable_xvideo="$enable_xcb"
2954 [ --enable-glx OpenGL support through GLX (default enabled)],, [
2955 enable_glx="$enable_xcb"
2959 AS_IF([test "${enable_xcb}" != "no"], [
2961 PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
2963 PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
2964 PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
2966 AS_IF([test "${enable_xvideo}" != "no"], [
2967 PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
2968 VLC_ADD_PLUGIN([xcb_xv])
2972 PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
2973 VLC_ADD_PLUGIN([panoramix])
2974 VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
2975 VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
2977 AC_MSG_WARN([${XCB_RANDR_PKG_ERRORS}. Panoramix filter will not be supported.])
2981 PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
2982 PKG_CHECK_MODULES(XPROTO, [xproto])
2983 VLC_ADD_PLUGIN([globalhotkeys])
2984 VLC_ADD_CFLAGS([globalhotkeys], [${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}])
2985 VLC_ADD_LIBS([globalhotkeys], [${XCB_KEYSYMS_LIBS} ${XCB_LIBS}])
2986 VLC_ADD_CFLAGS([xcb_window], [-DHAVE_XCB_KEYSYMS])
2988 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
2991 AS_IF([test "${enable_glx}" != "no"], [
2992 AS_IF([test "${have_gl}" != "yes"], [
2993 AC_MSG_ERROR([${GL_PKG_ERRORS}. Pass --disable-glx if you do not need OpenGL X11 support.])
2995 PKG_CHECK_MODULES(XLIB_XCB, [x11-xcb], [
2996 VLC_ADD_PLUGIN([xcb_glx])
2998 AC_MSG_ERROR([${XLIB_XCB_PKG_ERRORS}. Pass --disable-glx if you do not need OpenGL X11 support.])
3002 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3008 [ --enable-sdl SDL support (default enabled)])
3009 AC_ARG_ENABLE(sdl-image,
3010 [ --enable-sdl-image SDL image support (default enabled)])
3011 if test "${enable_sdl}" != "no"
3013 PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3014 # SDL on Darwin is heavily patched and can only run SDL_image
3015 if test "${SYS}" != "darwin"; then
3016 VLC_ADD_PLUGIN([vout_sdl])
3018 if test "${SYS}" != "mingw32" -a "${SYS}" != "os2"; then
3019 VLC_ADD_LIBS([vout_sdl],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3021 VLC_ADD_CFLAGS([vout_sdl],[${SDL_CFLAGS}])
3022 VLC_ADD_LIBS([vout_sdl],[${SDL_LIBS}])
3025 AS_IF([ test "${enable_sdl_image}" != "no"],[
3026 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3027 VLC_ADD_PLUGIN([sdl_image])
3028 VLC_ADD_LIBS([sdl_image],[${SDL_IMAGE_LIBS}])
3029 VLC_ADD_CFLAGS([sdl_image], [${SDL_IMAGE_CFLAGS}])],
3030 [ AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3034 AC_MSG_WARN([${SDL_PKG_ERRORS}.])
3041 AC_ARG_ENABLE(macosx-vout,
3042 [ --enable-macosx-vout Mac OS X video output module (default enabled on Mac OS X)])
3043 if test "x${enable_macosx_vout}" != "xno" &&
3044 (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
3046 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,Cocoa])
3047 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,OpenGL])
3048 VLC_ADD_PLUGIN([vout_macosx])
3055 AC_ARG_ENABLE(freetype,
3056 [ --enable-freetype freetype support (default auto)])
3057 AC_ARG_ENABLE(fribidi,
3058 [ --enable-fribidi fribidi support (default auto)])
3059 AC_ARG_ENABLE(fontconfig,
3060 [ --enable-fontconfig fontconfig support (default auto)])
3062 if test "${enable_freetype}" != "no"; then
3063 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3065 VLC_ADD_PLUGIN([freetype])
3066 VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3067 if test "${SYS}" = "mingw32"; then
3068 VLC_ADD_LIBS([freetype],[-liconv -lz])
3070 VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3072 AC_CHECK_HEADERS(Carbon/Carbon.h,
3073 [VLC_ADD_LIBS([freetype],[-Wl,-framework,Carbon])])
3075 dnl fontconfig support
3076 if test "${SYS}" != "mingw32"; then
3077 if test "${enable_fontconfig}" != "no"; then
3078 AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3079 VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3080 VLC_ADD_LIBS([freetype],[-lfontconfig])
3081 ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3084 VLC_ADD_LIBS([freetype],[-lgdi32])
3088 if test "${enable_fribidi}" != "no"; then
3089 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3090 VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3091 VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3092 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional support will be disabled in FreeType.])])
3097 AS_IF([test -n "${enable_freetype}"],[
3098 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3105 dnl QuartzText vout module (iOS/Mac OS)
3107 AC_ARG_ENABLE(macosx-quartztext,
3108 [ --enable-macosx-quartztext Mac OS X quartz text module (default enabled on Mac OS X)])
3109 if test "x${enable_macosx_quartztext}" != "xno" &&
3110 (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3112 VLC_ADD_PLUGIN([quartztext])
3113 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
3119 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3122 dnl android surface module
3124 AC_ARG_ENABLE(android-surface,
3125 [ --enable-android-surface Android Surface video output module (default disabled)])
3126 if test "${enable_android_surface}" = "yes"; then
3127 if test "${HAVE_ANDROID}" = "1"; then
3128 VLC_ADD_PLUGIN([android_surface])
3129 VLC_ADD_LDFLAGS([android_surface], [-ldl])
3137 AC_ARG_ENABLE(ios-vout,
3138 [ --enable-ios-vout iOS video output module (default disabled)])
3139 if test "${enable_ios_vout}" = "yes"
3141 VLC_ADD_PLUGIN([vout_ios])
3142 VLC_ADD_CFLAGS([vout_ios], [-DUSE_OPENGL_ES=1])
3143 VLC_ADD_LIBS([vout_ios], [-Wl,-framework,OpenGLES,-framework,QuartzCore,-framework,UIKit,-framework,Foundation])
3147 dnl Windows DirectX module
3150 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3152 VLC_ADD_PLUGIN([panoramix])
3155 AC_ARG_ENABLE(directx,
3156 [ --enable-directx Win32 DirectX support (default enabled on Win32)])
3157 if test "${enable_directx}" != "no"; then
3158 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
3160 AC_CHECK_HEADERS(ddraw.h,
3161 [ VLC_ADD_PLUGIN([directx aout_directx])
3162 VLC_ADD_LIBS([directx],[-luser32 -lgdi32])
3163 ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3167 AC_CHECK_HEADERS(GL/wglew.h,
3168 [ VLC_ADD_PLUGIN([glwin32])
3169 VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3171 #include <windows.h>
3176 AC_CHECK_HEADERS(d3d9.h,
3177 [ VLC_ADD_PLUGIN([direct3d])
3178 VLC_ADD_LIBS([direct3d],[-lgdi32])
3180 VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3185 dnl Windows Direct2D plugin
3187 AC_ARG_ENABLE(direct2d,
3188 [ --enable-direct2d Win7/VistaPU Direct2D support (default auto on Win32)],, [
3189 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3190 enable_direct2d="no"
3193 AS_IF([test "${enable_direct2d}" != "no"], [
3194 AC_CHECK_HEADERS(d2d1.h, [
3195 VLC_ADD_PLUGIN([direct2d])
3196 VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32])
3198 AC_MSG_WARN([Cannot find Direct2D headers!])
3203 dnl win32 GDI plugin
3205 AC_ARG_ENABLE(wingdi,
3206 [ --enable-wingdi Win32 GDI module (default enabled on Win32)])
3207 if test "${enable_wingdi}" != "no"; then
3208 if test "${SYS}" = "mingw32"; then
3209 VLC_ADD_PLUGIN([wingdi])
3210 VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3212 if test "${SYS}" = "mingwce"; then
3213 VLC_ADD_PLUGIN([wingdi wingapi])
3214 VLC_ADD_LIBS([wingdi],[-laygshell])
3215 VLC_ADD_LIBS([wingapi],[-laygshell])
3221 dnl Linux framebuffer module
3223 AC_CHECK_HEADER([linux/fb.h], [
3224 VLC_ADD_PLUGIN([fb])
3230 dnl try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3231 dnl TODO: support for static linking
3233 AC_ARG_ENABLE(directfb,
3234 [ --enable-directfb DirectFB support (default disabled)])
3235 AC_ARG_WITH(directfb,
3236 [ --with-directfb=PATH path to DirectFB headers and libraries])
3238 if test "${enable_directfb}" = "yes"; then
3239 have_directfb="false"
3240 CPPFLAGS_mydirectfb=
3242 if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3243 dnl Trying the given location
3246 CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3247 LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/ -L${with_directfb}/src/.libs/"
3249 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3250 LIBS="${LIBS} ${LIBS_new}"
3252 dnl FIXME: too obscure
3253 AC_CHECK_HEADER([directfb.h], [
3254 AC_CHECK_LIB([direct],[direct_initialize], [
3255 AC_CHECK_LIB([fusion], [fusion_enter], [
3256 AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3257 ], have_directfb="false")
3258 ], have_directfb="false")
3259 ], have_directfb="false")
3263 if test "${have_directfb}" = "true"; then
3264 LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3265 CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3268 dnl Look for directfb-config
3269 AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3270 if test "${DIRECTFB_CONFIG}" != "no"; then
3271 CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3272 LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3273 have_directfb="true"
3275 dnl Trying with pkg-config
3276 PKG_CHECK_MODULES(DIRECTFB, directfb, [
3277 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3278 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3279 have_directfb="true"
3280 ], [have_directfb="false"])
3283 if test "${have_directfb}" = "true"; then
3284 VLC_ADD_PLUGIN([directfb])
3285 VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3286 VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3288 AC_MSG_ERROR([${DIRECTFB_PKG_ERRORS}.])
3296 [ --enable-aa aalib output (default disabled)])
3297 if test "${enable_aa}" = "yes"
3299 AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3300 if test "${have_aa}" = "true"
3302 VLC_ADD_PLUGIN([aa])
3303 VLC_ADD_LIBS([aa],[-laa])
3304 if test "${SYS}" != "mingw32"; then
3305 VLC_ADD_LIBS([aa],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3313 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3319 [AS_HELP_STRING([--enable-kva],
3320 [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
3321 AS_IF([test "$SYS" = "os2"], [
3327 AS_IF([test "$enable_kva" != "no"], [
3328 AC_CHECK_HEADERS([kva.h], [
3330 AC_CHECK_LIB(kva, main, [
3336 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3342 EXTEND_HELP_STRING([Audio plugins:])
3345 dnl Pulseaudio module
3347 AC_ARG_ENABLE(pulse,
3348 [AS_HELP_STRING([--enable-pulse],
3349 [use the PulseAudio client library (default auto)])])
3351 AS_IF([test "${enable_pulse}" != "no"], [
3352 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.22], [
3355 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.16], [
3356 AS_IF([test "${no_x}" != "yes"], [
3358 PULSE_LIBS="$PULSE_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11"
3360 AS_IF([test "${enable_pulse}" = "yes"], [
3361 AC_MSG_ERROR([Xlib is required with PulseAudio pre-0.9.22 versions
3362 (see http://www.pulseaudio.org/ticket/799 for further reference).])
3366 AS_IF([test "x${enable_pulse}" != "x"], [
3367 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 0.9.22 or later required.])
3372 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3378 [AS_HELP_STRING([--enable-alsa],
3379 [support the Advanced Linux Sound Architecture (default auto)])],, [
3380 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3385 AS_IF([test "${enable_alsa}" != "no"], [
3386 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.16], [
3389 AS_IF([test "x${enable_alsa}" != "x"], [
3390 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.16 or later required.])
3394 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3397 dnl Open Sound System module
3400 [AS_HELP_STRING([--enable-oss],
3401 [support the Open Sound System OSS (default enabled on BSD)])],, [
3402 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "mingwce" -o "$SYS" = "linux"], [
3408 AS_IF([test "$enable_oss" != "no"], [
3409 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3411 AC_CHECK_LIB(ossaudio, main, [
3412 OSS_LIBS="-lossaudio"
3417 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3420 dnl Portaudio module
3422 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
3425 dnl win32 waveOut plugin
3427 AC_ARG_ENABLE(waveout,
3428 [ --enable-waveout Win32 waveOut module (default enabled on Win32)])
3429 if test "${enable_waveout}" != "no"; then
3430 if test "${SYS}" = "mingw32"; then
3431 VLC_ADD_PLUGIN([waveout])
3432 VLC_ADD_LIBS([waveout],[-lwinmm])
3434 if test "${SYS}" = "mingwce"; then
3435 VLC_ADD_PLUGIN([waveout])
3440 dnl CoreAudio plugin
3442 AC_ARG_ENABLE(macosx-audio,
3443 [ --enable-macosx-audio Mac OS X audio module (default enabled on MacOS X)])
3444 if test "x${enable_macosx_audio}" != "xno" &&
3445 (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
3447 AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
3448 [ VLC_ADD_PLUGIN([auhal])
3449 VLC_ADD_LIBS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
3450 ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3454 dnl AudioQueue plugin
3456 AC_ARG_ENABLE(audioqueue,
3457 [ --enable-audioqueue AudioQueue audio module (default disabled)])
3458 if test "${enable_audioqueue}" = "yes"
3460 VLC_ADD_PLUGIN([audioqueue])
3461 VLC_ADD_LIBS([audioqueue], [-Wl,-framework,AudioToolbox,-framework,CoreFoundation])
3467 PKG_ENABLE_MODULES_VLC([JACK], [jack access_jack], [jack], [JACK audio I/O modules],[auto])
3470 dnl OpenSLES Android
3472 AC_ARG_ENABLE(opensles,
3473 [ --enable-opensles Android OpenSL ES audio module (default disabled)])
3474 if test "${HAVE_ANDROID}" = "1"; then
3475 if test "${enable_opensles}" = "yes"; then
3476 AC_CHECK_HEADERS(SLES/OpenSLES.h,
3477 [ VLC_ADD_PLUGIN([opensles_android]) ],
3478 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3483 dnl libsamplerate plugin
3485 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3491 [AS_HELP_STRING([--enable-kai],
3492 [support the K Audio Interface KAI (default enabled on OS/2)])],, [
3493 AS_IF([test "$SYS" = "os2"], [
3499 AS_IF([test "$enable_kai" != "no"], [
3500 AC_CHECK_HEADERS([kai.h], [
3502 AC_CHECK_LIB(kai, main, [
3508 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3511 dnl Interface plugins
3514 EXTEND_HELP_STRING([Interface plugins:])
3519 AC_ARG_ENABLE(hildon,
3520 [ --enable-hildon Hildon touchscreen UI (default disabled)])
3521 AS_IF([test "${enable_hildon}" = "yes"], [
3522 PKG_CHECK_MODULES(HILDON, [hildon-1], [
3523 PKG_CHECK_MODULES(HILDON_FM, hildon-fm-2, [
3524 VLC_ADD_CFLAGS([hildon],[${HILDON_FM_CFLAGS} -DHAVE_HILDON_FM])
3525 VLC_ADD_LIBS([hildon],[${HILDON_FM_LIBS}])
3527 AC_MSG_WARN([${HILDON_FM_PKG_ERRORS}.])
3529 VLC_ADD_CFLAGS([hildon],[${HILDON_CFLAGS} ${X_CFLAGS}])
3530 VLC_ADD_LIBS([hildon],[${HILDON_LIBS} ${X_LIBS} ${X_PRE_LIBS} -lX11])
3531 VLC_ADD_PLUGIN([hildon])
3532 ALIASES="${ALIASES} mvlc"
3534 AS_IF([test "${enable_hildon}" = "yes"],[
3535 AC_MSG_ERROR([${HILDON_PKG_ERRORS}.])
3540 AM_CONDITIONAL(BUILD_HILDON, [test "${enable_hildon}" = "yes"])
3546 [ --enable-qt4 Qt 4 support (default enabled) ],, [
3547 AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
3549 AS_IF([test "${enable_qt4}" != "no"], [
3550 PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.6.0], [
3551 VLC_ADD_PLUGIN([qt4])
3552 VLC_ADD_LIBS([qt4],[${QT4_LIBS}])
3553 VLC_ADD_CXXFLAGS([qt4],[${QT4_CFLAGS}])
3554 ALIASES="${ALIASES} qvlc"
3559 AC_MSG_CHECKING([whether Qt uses X11])
3560 CPPFLAGS="${CPPFLAGS} ${QT4_CFLAGS}"
3561 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
3563 #if !defined (Q_WS_X11)
3567 AC_MSG_RESULT([yes])
3568 VLC_ADD_LIBS([qt4],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3569 VLC_ADD_CXXFLAGS([qt4],[${X_CFLAGS}])
3577 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
3578 VLC_ADD_LIBS([qt4],[-lole32])
3580 AS_IF([test "${SYS}" = "darwin" ],[
3581 VLC_ADD_LIBS([qt4], [-Wl,-framework,Cocoa])
3583 AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3584 AC_PATH_PROG(RCC, rcc, rcc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3585 AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3587 AS_IF([test -n "${enable_qt4}"],[
3588 AC_MSG_ERROR([${QT4_PKG_ERRORS}.])
3590 AC_MSG_WARN([${QT4_PKG_ERRORS}.])
3595 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
3598 dnl Simple test for skins2 dependency
3600 AS_IF([test "x$enable_qt4" = "xno"], [
3601 AS_IF([test "${enable_skins2}" = "yes"], [
3602 AC_MSG_ERROR([The skins2 module depends on the Qt4 interface. Without it you will not be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the Qt4 development package or alternatively you can also configure with: --disable-qt4 --disable-skins2.])
3605 AC_MSG_WARN([The skins2 module depends on the Qt4 interface, Qt4 is not built so skins2 is disabled.])
3612 AC_ARG_ENABLE(skins2,
3613 [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3614 AS_IF([test "${enable_skins2}" != "no"], [
3615 have_skins_deps="yes"
3618 AS_IF([test "${SYS}" = "mingw32"], [
3619 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
3620 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3621 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3623 ], [test "${SYS}" = "darwin"], [
3624 VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
3625 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3626 VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
3629 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3630 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3631 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3632 VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3633 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3634 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3637 dnl we need freetype
3638 AS_IF([test "${have_freetype}" != "yes"], [
3639 have_skins_deps="no"
3642 AS_IF([test "${have_skins_deps}" = "no"], [
3643 AS_IF([test "x${enable_skins2}" = "x"], [
3644 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3646 AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
3650 VLC_ADD_PLUGIN([skins2])
3651 ALIASES="${ALIASES} svlc"
3655 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3657 AC_ARG_ENABLE(libtar,
3658 [ --enable-libtar libtar support for skins2 (default auto)])
3659 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3660 AC_CHECK_HEADERS(libtar.h, [
3661 VLC_ADD_LIBS([skins2],[-ltar])
3666 dnl MacOS X gui module
3668 AC_ARG_ENABLE(macosx,
3669 [ --enable-macosx Mac OS X gui support (default enabled on Mac OS X)])
3670 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3672 VLC_ADD_LIBS([macosx minimal_macosx], [-Wl,-framework,Cocoa -Wl,-framework,OpenGL -Wl,-framework,Carbon -Wl,-framework,CoreServices -Wl,-framework,AGL])
3673 VLC_ADD_OBJCFLAGS([macosx minimal_macosx], [-fobjc-exceptions] )
3674 VLC_ADD_PLUGIN([macosx minimal_macosx])
3676 VLC_ADD_LIBS([macosx], [-Wl,-framework,QTKit -Wl,-framework,IOKit -Wl,-framework,AddressBook -Wl,-framework,WebKit])
3678 if ! test -d ${CONTRIB_DIR}/Sparkle.framework
3680 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3682 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle])
3683 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3685 if ! test -d ${CONTRIB_DIR}/BGHUDAppKit.framework
3687 AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}])
3689 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,BGHUDAppKit])
3690 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3695 dnl MacOS X dialor provider
3697 AC_ARG_ENABLE(macosx-dialog-provider,
3698 [ --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3699 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3700 (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3702 VLC_ADD_LIBS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3703 VLC_ADD_PLUGIN([macosx_dialog_provider])
3709 AC_ARG_ENABLE(ncurses,
3710 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
3711 if test "${enable_ncurses}" != "no"; then
3714 AC_CHECK_HEADER(ncurses.h, [
3715 AC_CHECK_LIB(ncursesw, mvprintw, [
3716 AC_SEARCH_LIBS([tgetent], [ncursesw tinfow tinfo], [
3717 VLC_ADD_PLUGIN([ncurses])
3718 ALIASES="${ALIASES} nvlc"
3719 VLC_ADD_LIBS([ncurses],[-lncursesw ${LIBS}])
3721 AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([tgetent not found])])
3724 AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([libncursesw not found])])
3727 AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([ncurses.h not found])])
3736 [ --enable-xosd xosd interface support (default disabled)])
3737 if test "${enable_xosd}" = "yes"
3739 AC_CHECK_HEADERS(xosd.h,
3740 AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
3741 AS_IF([test "${no_x}" != "yes"], [
3742 VLC_ADD_PLUGIN([xosd])
3743 VLC_ADD_LIBS([xosd],[-lxosd ${X_LIBS} ${X_PRE_LIBS} -lX11])
3744 VLC_ADD_CFLAGS([xosd],[${X_CFLAGS}])
3746 AC_MSG_ERROR([Xlib is required with xosd.])
3753 dnl Framebuffer (overlay) plugin
3755 AC_ARG_ENABLE(fbosd,
3756 [ --enable-fbosd fbosd interface support (default disabled)])
3757 if test "${enable_fbosd}" = "yes"
3759 AC_CHECK_HEADERS(linux/fb.h, [
3760 VLC_ADD_PLUGIN([fbosd])
3768 [ --enable-lirc lirc support (default disabled)])
3769 if test "${enable_lirc}" = "yes"
3771 AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3772 if test "${have_lirc}" = "true"
3774 VLC_ADD_PLUGIN([lirc])
3775 VLC_ADD_LIBS([lirc],[-llirc_client])
3779 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3781 dnl Visualisation plugin
3783 AC_ARG_ENABLE(visual,
3784 [ --enable-visual visualisation plugin (default enabled)])
3785 if test "${enable_visual}" != "no"
3787 VLC_ADD_PLUGIN([visual])
3791 dnl goom visualization plugin
3793 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3796 dnl libprojectM visualization plugin
3798 AC_ARG_ENABLE(projectm,
3799 [ --enable-projectm projectM visualization plugin (default enabled)])
3800 AS_IF([test "${enable_projectm}" != "no"],
3802 PKG_CHECK_MODULES(PROJECTM, libprojectM,
3804 VLC_ADD_PLUGIN([projectm])
3805 VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
3806 VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
3807 PKG_CHECK_MODULES(PROJECTM2, [libprojectM >= 2.0.0],
3808 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3809 [ AC_MSG_WARN( [Using libprojectM version 1] )
3812 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
3817 dnl AtmoLight (homemade Philips Ambilight clone)
3820 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
3821 (default enabled)]),, [enable_atmo="yes"])
3822 AS_IF([test "${enable_atmo}" != no], [
3823 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
3825 VLC_ADD_PLUGIN([atmo])
3830 EXTEND_HELP_STRING([Service Discovery plugins:])
3832 dnl Bonjour services discovery
3833 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
3836 dnl libudev services discovery
3837 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
3840 dnl MTP devices services discovery
3841 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
3844 dnl UPnP Plugin (Intel SDK)
3846 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
3847 VLC_ADD_CXXFLAGS([upnp],[${UPNP_CFLAGS}])
3849 EXTEND_HELP_STRING([Misc options:])
3854 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3860 AC_ARG_ENABLE(libgcrypt,
3861 [ --disable-libgcrypt gcrypt support (default enabled)])
3862 AS_IF([test "${enable_libgcrypt}" != "no"], [
3863 AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
3864 libgcrypt-config --version >/dev/null || \
3865 AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
3866 AC_CHECK_LIB(gcrypt, gcry_control, [
3867 have_libgcrypt="yes"
3868 GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
3869 GCRYPT_LIBS="`libgcrypt-config --libs`"
3871 AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3872 ], [`libgcrypt-config --libs`])
3874 AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3875 ], [#include <gcrypt.h>]
3879 AC_SUBST(GCRYPT_CFLAGS)
3880 AC_SUBST(GCRYPT_LIBS)
3881 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
3886 AC_ARG_ENABLE(gnutls,
3887 [ --enable-gnutls GNU TLS TLS/SSL support (default enabled)])
3889 AS_IF([test "${have_libgcrypt}" != "yes"], [
3890 AS_IF([test "${enable_gnutls}" = "yes"], [
3891 AC_MSG_ERROR([--enable-gnutls and --disable-libgcrypt are mutually exclusive.])
3895 AS_IF([test "${enable_gnutls}" != "no"], [
3896 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 2.0.0], [
3897 VLC_ADD_PLUGIN([gnutls])
3899 AS_IF([test -n "${enable_gnutls}"], [
3900 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
3907 dnl Nokia MCE plugin (Maemo screen unblanking)
3909 PKG_CHECK_MODULES([MCE], [dbus-1 mce], [VLC_ADD_PLUGIN([mce])], [true])
3912 AS_IF([test -f "/etc/maemo_version"], [
3913 AC_DEFINE([HAVE_MAEMO], 1, [Define to 1 if building for the Maemo platform.])
3920 AC_ARG_ENABLE(taglib,
3921 [AS_HELP_STRING([--disable-taglib],
3922 [do not use TagLib (default enabled)])])
3923 AS_IF([test "${enable_taglib}" != "no"], [
3924 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5, [
3925 VLC_ADD_PLUGIN([taglib])
3926 VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
3927 VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS])
3929 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
3934 dnl update checking system
3936 AC_ARG_ENABLE(update-check,
3937 [ --enable-update-check update checking system (default disabled)])
3938 if test "${enable_update_check}" = "yes"
3940 if test "${have_libgcrypt}" != "yes"
3942 AC_MSG_ERROR([libgcrypt is required for update checking system])
3944 VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
3945 VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
3946 AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
3950 dnl Growl notification plugin
3952 AC_ARG_ENABLE(growl,
3953 [ --enable-growl growl notification plugin (default disabled)],,
3955 AS_IF([test "${enable_growl}" != "no"], [
3956 AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl.framework/Versions/A/Headers/GrowlDefines.h, [
3957 VLC_ADD_PLUGIN([growl])
3958 VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR} -Wl,-framework,Growl,-framework,CoreFoundation])
3959 VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}])
3960 VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
3966 dnl Libnotify notification plugin
3968 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
3973 AC_ARG_ENABLE(media-library,
3974 [ --enable-media-library media library (default disabled)])
3975 AS_IF([test "${enable_media_library}" = "yes"], [
3976 AC_DEFINE([MEDIA_LIBRARY], 1, [Define if you want to use the VLC media library])
3977 VLC_ADD_CPPFLAGS([qt4],"-DMEDIA_LIBRARY")
3978 VLC_ADD_PLUGIN([media_library])
3983 AS_IF([test "${SYS}" != "darwin"], [
3984 PKG_ENABLE_MODULES_VLC([SQLITE], [], [sqlite3 >= 3.6.0], [sqlite3], [auto])
3986 AS_IF([test "${enable_sqlite}" != "no"], [
3987 AC_CHECK_HEADERS(sqlite3.h, [
3988 VLC_ADD_PLUGIN([sqlite])
3989 VLC_ADD_LIBS([sqlite], [-lsqlite3])
3991 AC_MSG_ERROR([sqlite3 is required for the media library])
3999 dnl Endianness check
4002 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4003 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4007 AC_SUBST(DEFS_BIGENDIAN)
4010 dnl Where to install KDE solid .desktop
4012 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4013 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4014 KDE4_CONFIG="kde4-config"
4017 AC_ARG_WITH(kde-solid,
4018 AS_HELP_STRING([--with-kde-solid=PATH],
4019 [KDE Solid actions directory (auto)]),, [
4021 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin" ; then
4022 with_kde_solid="yes"
4026 AS_IF([test "${with_kde_solid}" != "no"], [
4027 AS_IF([test "${with_kde_solid}" = "yes"], [
4028 kde4datadir="`${KDE4_CONFIG} --install data`"
4029 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4030 soliddatadir="${kde4datadir}/solid/actions"
4032 soliddatadir="${with_kde_solid}"
4035 AC_SUBST(soliddatadir)
4036 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4039 dnl DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4042 AC_ARG_ENABLE(loader,
4043 AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4044 (default disabled)]))
4045 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4046 AS_IF([test "${enable_loader}" = "yes"],
4047 [ VLC_ADD_PLUGIN([dmo])
4048 VLC_ADD_CPPFLAGS([dmo quicktime realvideo],[-I\\\${top_srcdir}/modules/codec/loader])
4049 VLC_ADD_LIBS([dmo quicktime realvideo],[\\\${top_builddir}/modules/codec/loader/libloader.la])
4050 VLC_ADD_CPPFLAGS([realvideo], [-DLOADER])
4051 VLC_ADD_LIBS([dmo quicktime], [-lpthread])
4054 EXTEND_HELP_STRING([Components:])
4060 [ --enable-vlc build the VLC media player (default enabled)])
4061 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4063 AC_ARG_ENABLE(macosx-vlc-app,
4064 [ --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4065 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4066 (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4069 dnl Stuff used by the program
4071 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4072 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4073 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4074 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4075 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4076 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4077 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4078 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4079 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4080 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4081 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4082 AC_SUBST(COPYRIGHT_MESSAGE)
4083 AC_SUBST(VERSION_MESSAGE)
4084 AC_SUBST(VERSION_MAJOR)
4085 AC_SUBST(VERSION_MINOR)
4086 AC_SUBST(VERSION_REVISION)
4087 AC_SUBST(VERSION_EXTRA)
4088 AC_SUBST(COPYRIGHT_YEARS)
4089 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
4090 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4091 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
4093 dnl Handle substvars that use $(top_srcdir)
4095 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4098 dnl Sort the modules list
4100 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
4103 dnl Configuration is finished
4113 AC_SUBST(WINE_SDK_PATH)
4115 AC_SUBST(AM_CPPFLAGS)
4116 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4117 AC_SUBST(FILE_LIBVLCCORE_DLL)
4118 AC_SUBST(FILE_LIBVLC_DLL)
4133 modules/access/Makefile
4134 modules/access/bd/Makefile
4135 modules/access/dshow/Makefile
4136 modules/access/dvb/Makefile
4137 modules/access/mms/Makefile
4138 modules/access/rtp/Makefile
4139 modules/access/rtsp/Makefile
4140 modules/access/vcd/Makefile
4141 modules/access/vcdx/Makefile
4142 modules/access/screen/Makefile
4143 modules/access/zip/Makefile
4144 modules/access/zip/unzip/Makefile
4145 modules/access_output/Makefile
4146 modules/audio_filter/Makefile
4147 modules/audio_mixer/Makefile
4148 modules/audio_output/Makefile
4149 modules/codec/Makefile
4150 modules/codec/avcodec/Makefile
4151 modules/codec/dmo/Makefile
4152 modules/codec/loader/Makefile
4153 modules/codec/omxil/Makefile
4154 modules/codec/shine/Makefile
4155 modules/codec/spudec/Makefile
4156 modules/codec/wmafixed/Makefile
4157 modules/control/Makefile
4158 modules/control/dbus/Makefile
4159 modules/control/globalhotkeys/Makefile
4160 modules/demux/Makefile
4161 modules/demux/asf/Makefile
4162 modules/demux/avformat/Makefile
4163 modules/demux/avi/Makefile
4164 modules/demux/mkv/Makefile
4165 modules/demux/mp4/Makefile
4166 modules/demux/mpeg/Makefile
4167 modules/demux/playlist/Makefile
4168 modules/gui/Makefile
4169 modules/gui/macosx/Makefile
4170 modules/gui/hildon/Makefile
4171 modules/gui/minimal_macosx/Makefile
4172 modules/gui/macosx_dialog_provider/Makefile
4173 modules/gui/qt4/Makefile
4174 modules/gui/skins2/Makefile
4175 modules/lua/Makefile
4176 modules/meta_engine/Makefile
4177 modules/misc/Makefile
4178 modules/misc/playlist/Makefile
4179 modules/misc/osd/Makefile
4180 modules/misc/stats/Makefile
4181 modules/media_library/Makefile
4182 modules/mux/Makefile
4183 modules/mux/mpeg/Makefile
4184 modules/notify/Makefile
4185 modules/packetizer/Makefile
4186 modules/services_discovery/Makefile
4187 modules/stream_filter/Makefile
4188 modules/stream_filter/dash/Makefile
4189 modules/stream_out/Makefile
4190 modules/stream_out/transcode/Makefile
4191 modules/text_renderer/Makefile
4192 modules/video_chroma/Makefile
4193 modules/video_filter/Makefile
4194 modules/video_filter/dynamicoverlay/Makefile
4195 modules/video_output/Makefile
4196 modules/video_output/msw/Makefile
4197 modules/visualization/Makefile
4198 modules/visualization/visual/Makefile
4199 modules/mmx/Makefile
4200 modules/mmxext/Makefile
4201 modules/3dnow/Makefile
4202 modules/sse2/Makefile
4203 modules/altivec/Makefile
4204 modules/arm_neon/Makefile
4207 AM_COND_IF([HAVE_WIN32], [
4209 extras/package/win32/spad.nsi
4210 extras/package/win32/vlc.win32.nsi
4214 AM_COND_IF([HAVE_DARWIN], [
4216 extras/package/macosx/Info.plist
4217 extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4221 dnl Generate makefiles
4224 dnl Do we have to use make or gmake ?
4225 USE_MAKE_OR_GMAKE=`case "${SYS}" in openbsd*) echo "gmake";; *) echo "make";; esac`
4226 dnl Shortcut to nice compile message
4228 if test -n $SHELL; then
4229 SHELL=${CONFIG_SHELL-/bin/sh}
4231 echo '#! '$SHELL >compile
4232 echo rm -f .error\$\$ >>compile
4233 echo ERROR=0 >>compile
4234 echo export PATH=$PATH LANG=C >>compile
4235 echo "($USE_MAKE_OR_GMAKE V=1 \$@ 2>&1 || touch .error\$\$)| \\" >>compile
4236 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
4237 echo test -f .error\$\$ \&\& ERROR=1 >>compile
4238 echo rm -f .error\$\$ >>compile
4239 echo exit \$ERROR >>compile
4243 libvlc configuration
4244 --------------------
4245 version : ${VERSION}
4247 architecture : ${ARCH}
4248 optimizations : ${enable_optimizations}"
4249 if test "${enable_vlc}" != "no"; then
4250 echo "vlc aliases :${ALIASES}"
4252 echo "build vlc executable : no"
4255 To build vlc and its plugins, type \`./compile' or \`$USE_MAKE_OR_GMAKE'."