direct3d11: support direct rendering of GPU textures coming from d3d11va
[vlc.git] / configure.ac
blob4a175c40c9bd7b57c4f73d376070440aed9ae862
1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 1999-2015 VLC authors and VideoLAN])
5 AC_INIT(vlc, 3.0.0-git)
6 VERSION_MAJOR=3
7 VERSION_MINOR=0
8 VERSION_REVISION=0
9 VERSION_EXTRA=0
10 VERSION_DEV=git
12 PKGDIR="vlc"
13 AC_SUBST(PKGDIR)
15 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
16 CODENAME="Vetinari"
17 COPYRIGHT_YEARS="1996-2015"
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)
23 AC_CANONICAL_BUILD
24 AC_CANONICAL_HOST
25 AC_PRESERVE_HELP_ORDER
27 AM_INIT_AUTOMAKE(tar-ustar color-tests foreign)
28 AC_CONFIG_HEADERS([config.h])
30 AM_SILENT_RULES([yes])
31 AM_MAINTAINER_MODE([enable])
33 dnl
34 dnl Directories
35 dnl
36 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
37 dnl AC_SUBST(vlcincludedir)
38 vlcdatadir="\${datadir}/\${PKGDIR}"
39 AC_SUBST(vlcdatadir)
40 vlclibdir="\${libdir}/\${PKGDIR}"
41 AC_SUBST(vlclibdir)
43 dnl
44 dnl Check for tools
45 dnl
46 AC_PROG_CC_C99
47 AC_USE_SYSTEM_EXTENSIONS
48 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to 2 to get glibc warnings.])
49 AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
50 AH_TOP([
51 #ifndef _REENTRANT
52 # define _REENTRANT
53 #endif
55 AC_DEFINE([_THREAD_SAFE],, [Same as _REENTANT for some other OSes.])
56 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
57 AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of <windows.h>.])
59 AM_PROG_CC_C_O
60 AC_PROG_CXX
61 AC_PROG_CPP
62 AC_PROG_OBJC
63 _AM_DEPENDENCIES([OBJC])
64 AC_PROG_EGREP
65 AC_PROG_MAKE_SET
66 AC_PROG_INSTALL
67 AM_PROG_AS
69 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
70 AC_CHECK_PROGS(DESKTOP_FILE_VALIDATE, [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
71 AC_PATH_PROG(YASM, yasm)
73 dnl Check for compiler properties
74 AC_C_CONST
75 AC_C_INLINE
76 AC_C_RESTRICT
77 AX_CXX_COMPILE_STDCXX_11(noext, optional)
79 dnl Extend the --help string at the current spot.
80 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
82 dnl Allow binary package maintainer to pass a custom string to avoid
83 dnl cache problem
84 AC_ARG_WITH(binary-version,
85     AS_HELP_STRING([--with-binary-version=STRING],
86          [To avoid plugins cache problem between binary version]),[],[])
87 AS_IF([test -n "${with_binary_version}"],[
88     AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
89          [Binary specific version])
92 dnl
93 dnl  Check the operating system
94 dnl
95 HAVE_WIN64="0"
96 HAVE_IOS="0"
97 HAVE_OSX="0"
99 YASMFLAGS=""
100 case "${host}" in
101     i?86*)
102     YASMFLAGS="-f elf32"
103         ;;
104     x86_64*)
105     YASMFLAGS="-f elf64"
106         ;;
107 esac
110 case "${host_os}" in
111   "")
112     SYS=unknown
113     ;;
114   linux*)
115     SYS=linux
116     ;;
117   bsdi*)
118     SYS=bsdi
119     CFLAGS="${CFLAGS} -pthread"
120     ;;
121   freebsd*)
122     SYS=freebsd
123     CFLAGS="${CFLAGS} -pthread"
124     CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
125     LDFLAGS="${LDFLAGS} -L/usr/local/lib"
126     ;;
127   openbsd*)
128     SYS=openbsd
129     CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
130     LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
131     ;;
132   netbsd*)
133     SYS=netbsd
134     ;;
135   dragonfly*)
136     SYS=dragonfly
137     ;;
138   darwin*)
140     dnl Force gcc "-arch" flag
141     ARCH_flag=""
142     case "${host}" in
143       i?86*)
144         ARCH_flag="-arch i386"
145         YASMFLAGS="-f macho32"
146       ;;
147       ppc64*)
148         ARCH_flag="-arch ppc64"
149       ;;
150       ppc*)
151         ARCH_flag="-arch ppc"
152       ;;
153       x86_64*)
154         ARCH_flag="-arch x86_64"
155         YASMFLAGS="-f macho64"
156       ;;
157       arm*)
158         ac_cv_c_bigendian="no"
159         ac_cv_c_attribute_packed="no"
160       ;;
161     esac
163     SYS=darwin
164     CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
165     CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
166     CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
167     OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"
168     LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
169     VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
170     VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation,-framework,CoreServices])
172     AC_EGREP_CPP(yes,
173             [#import <TargetConditionals.h>
174              #if TARGET_OS_IPHONE
175              yes
176              #endif],
177              [HAVE_IOS="1"],
178              [HAVE_OSX="1"])
180     dnl Allow binaries created on Lion to run on earlier releases
181     AC_EGREP_CPP(yes,
182            [#import <Cocoa/Cocoa.h>
183             #ifdef MAC_OS_X_VERSION_10_7
184             yes
185             #endif],
186             [AC_MSG_RESULT([yes])
187             AC_LIBOBJ([getdelim])
188             AC_LIBOBJ([strndup])
189             AC_LIBOBJ([strnlen])],)
191     dnl
192     dnl  Handle Mac OS X SDK flags
193     dnl
194     AC_ARG_WITH(macosx-sdk,
195       [AS_HELP_STRING([--with-macosx-sdk=DIR],
196         [compile using the SDK in DIR])])
197     if test "${with_macosx_sdk}" != "" ; then
198         test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
199         CPP="${CPP} -isysroot ${with_macosx_sdk}"
200         CC="${CC} -isysroot ${with_macosx_sdk}"
201         CXX="${CXX} -isysroot ${with_macosx_sdk}"
202         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
203         LD="${LD} -syslibroot ${with_macosx_sdk}"
204     fi
205     AC_ARG_WITH(macosx-version-min,
206       [AS_HELP_STRING([--with-macosx-version-min=VERSION],
207         [compile for Mac OS X VERSION and above])])
208     if test "${with_macosx_version_min}" != "" ; then
209         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
210         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
211         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
212         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
213         LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
214     fi
215     ;;
216   *mingw32* | *cygwin* | *wince* | *mingwce*)
217     AC_CHECK_TOOL(WINDRES, windres, :)
218     AC_CHECK_TOOL(OBJCOPY, objcopy, :)
219     AH_TOP([#if defined(_WIN32) && !defined(_WIN32_WINNT)])
220     AH_TOP([# define _WIN32_WINNT 0x0502 /* Windows XP SP2 */])
221     AH_TOP([#endif])
222     AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
223     AC_DEFINE([_UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
224     AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
225     AC_DEFINE([_ISOC99_SOURCE], [1], [Extensions to ISO C89 from ISO C99.])
226     AC_DEFINE([_ISOC11_SOURCE], [1], [Extensions to ISO C99 from ISO C11.])
227     AC_DEFINE([_POSIX_SOURCE], [1], [IEEE Std 1003.1.])
228     AC_DEFINE([_POSIX_C_SOURCE], [200809L], [IEEE Std 1003.1.])
229     AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
230     AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1], [XPG things and X/Open Unix extensions.])
231     AC_DEFINE([_BSD_SOURCE], [1], [ISO C, POSIX, and 4.3BSD things.])
232     AC_DEFINE([_SVID_SOURCE], [1], [ISO C, POSIX, and SVID things.])
234     case "${host_os}" in
235       *mingw32*)
236         SYS=mingw32
237         ;;
238       *cygwin*)
239         dnl Check if we are using the mno-cygwin mode in which case we are
240         dnl actually dealing with a mingw32 compiler.
241         AC_EGREP_CPP(yes,
242             [#ifdef _WIN32
243              yes
244              #endif],
245             SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
246         ;;
247     esac
249     if test "${SYS}" = "mingw32"; then
250         # DEP, ASLR, NO SEH
251         LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase"
253         AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
254         ac_default_prefix="`pwd`/_win32"
255         DESTDIR="`pwd`/_win32/"
257         dnl
258         dnl NSIS/MSI Installer prefix and WIN64
259         dnl
260         case "${host}" in
261             amd64*|x86_64*)
262                 HAVE_WIN64="1"
263                 WINDOWS_ARCH="x64"
264                 PROGRAMFILES="PROGRAMFILES64"
265                 YASMFLAGS="-f win64"
266             ;;
267             *)
268                 WINDOWS_ARCH="x86"
269                 PROGRAMFILES="PROGRAMFILES"
270                 YASMFLAGS="-f win32"
271             ;;
272         esac
273         AC_SUBST(WINDOWS_ARCH)
274         AC_SUBST(PROGRAMFILES)
276     fi
277     ;;
278   *nto*)
279     SYS=nto
280     ;;
281   solaris*)
282     SYS=solaris
283     ;;
284   hpux*)
285     SYS=hpux
286     ;;
287   symbian*)
288     SYS=symbian
289     ;;
290   *os2*)
291     SYS=os2
292     LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
293     AC_LIBOBJ([freeaddrinfo])
294     ;;
295   *)
296     SYS="${host_os}"
297     ;;
298 esac
299 AM_CONDITIONAL(HAVE_DARWIN,  test "${SYS}" = "darwin")
300 AM_CONDITIONAL(HAVE_LINUX,   test "${SYS}" = "linux")
301 AM_CONDITIONAL(HAVE_OS2,     test "${SYS}" = "os2")
302 AM_CONDITIONAL(HAVE_WIN32,   test "${SYS}" = "mingw32")
303 AM_CONDITIONAL(HAVE_WIN64,   test "${HAVE_WIN64}" = "1")
304 AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
305 AM_CONDITIONAL(HAVE_IOS,   test "${HAVE_IOS}" = "1")
306 AM_CONDITIONAL(HAVE_OSX,   test "${HAVE_OSX}" = "1")
308 AC_SUBST(YASMFLAGS)
311 dnl Sadly autoconf does not think about testing foo.exe when ask to test
312 dnl for program foo on win32
313 case "${build_os}" in
314     cygwin|msys)
315         ac_executable_extensions=".exe"
316     ;;
317     *)
318     ;;
319 esac
321 dnl Android is linux, but a bit different
322 AS_IF([test "$SYS" = linux],[
323     AC_MSG_CHECKING([for an Android system])
324     AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
325         [[#ifndef __ANDROID__
326          # error Not Android
327          #endif
328         ]],[[;]])
329     ],[
330       HAVE_ANDROID="1"
331       AC_MSG_RESULT([yes])
332     ],[
333       AC_MSG_RESULT([no])
334     ])
336 AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")
340 dnl  Check for the contrib directory
342 AC_ARG_WITH(contrib,
343   [AS_HELP_STRING([--with-contrib[=DIR]],
344     [search for 3rd party libraries in DIR/include and DIR/lib])
346 AC_MSG_CHECKING([for 3rd party libraries path])
347 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
348   CONTRIB_DIR="${srcdir}/contrib/${host}"
349   AS_IF([test ! -d "${CONTRIB_DIR}"], [
350     echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
351     CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
352     AS_IF([test ! -d "${CONTRIB_DIR}"], [
353       echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
354       CONTRIB_DIR="${srcdir}/extras/contrib/hosts/${host}"
355       AS_IF([test ! -d "${CONTRIB_DIR}"], [
356         echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
357         CONTRIB_DIR="${srcdir}/extras/contrib/hosts/`$CC -dumpmachine`"
358         AS_IF([test ! -d "${CONTRIB_DIR}"], [
359           echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
360           CONTRIB_DIR=""
361           AC_MSG_RESULT([not found])
362         ])
363       ])
364     ])
365   ])
366 ], [
367   AS_IF([test "${with_contrib}" != "no"], [
368     CONTRIB_DIR="${with_contrib}"
369   ], [
370     CONTRIB_DIR=""
371     AC_MSG_RESULT([disabled])
372   ])
374 AS_IF([test -n "${CONTRIB_DIR}"], [
375   AS_IF([test -d "${CONTRIB_DIR}/lib"],[
376     CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
377   ], [
378     echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
379     CONTRIB_DIR=""
380     AC_MSG_RESULT([not usable])
381   ])
384 AS_IF([test -n "${CONTRIB_DIR}"], [
385   AC_MSG_RESULT([${CONTRIB_DIR}])
386   export PATH=${CONTRIB_DIR}/bin:$PATH
387   CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
388   CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
389   CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
390   OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
391   export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
392   LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
394   AS_IF([test "${SYS}" = "darwin"], [
395     export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
396     export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
397   ])
398 ], [
399   AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
400     AC_MSG_ERROR([Third party libraries not found!])
401   ])
403 AC_SUBST(CONTRIB_DIR)
405 dnl Add extras/tools to the PATH
406 TOOLS_DIR="${srcdir}/extras/tools/build/bin"
407 AS_IF([test -d "${TOOLS_DIR}"], [
408     TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
409     export PATH="${TOOLS_DIR}":$PATH
413 dnl  Libtool
414 dnl  It's very bad, but our former custom system was worst
415 dnl  -- Courmisch
418 dnl override platform specific check for dependent libraries
419 dnl otherwise libtool linking of shared libraries will
420 dnl fail on anything other than pass_all.
421 AC_CACHE_VAL(lt_cv_deplibs_check_method,
422     [lt_cv_deplibs_check_method=pass_all])
424 LT_INIT([dlopen win32-dll shared disable-static])
425 LT_LANG([C++])
426 LT_LANG([Windows Resource])
428 DOLT
430 lt_cv_deplibs_check_method=pass_all
432 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
433   AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
437 dnl Gettext stuff
439 AM_GNU_GETTEXT_VERSION([0.19.2])
440 AM_GNU_GETTEXT([external], [need-ngettext])
443 dnl Iconv stuff
445 AM_ICONV
448 dnl checks for mingw
449 AS_IF([test "${SYS}" = "mingw32"], [
451 dnl Check for broken versions of mingw-runtime compatability library
452     AC_MSG_CHECKING(for broken mingw-runtime)
453     AC_PREPROC_IFELSE([AC_LANG_SOURCE([
454 #include <_mingw.h>
455 #if defined(__MINGW64_VERSION_MAJOR)
456 # if __MINGW64_VERSION_MAJOR < 3
457 #  error Attempting to use mingw-runtime with broken vsnprintf and direct2d support
458 # endif
459 #elif __MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION < 15
460 # error Attempting to use mingw-runtime with broken vsnprintf support
461 #endif
462     ])], [
463         AC_MSG_RESULT([ok])
464     ], [
465         AC_MSG_RESULT([present])
466         AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher, or mingw-w64 version 3.0 or higher!])
467     ])
469     dnl force use of mingw provided c99 *printf over msvcrt
470     CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
472     dnl Add WinMainCRTStartup entry point to show it's a WinMain application
473     VLC_ADD_LDFLAGS([vlc],[-mwindows])
475     dnl Check for the need to include the mingwex lib for mingw32
476     VLC_SAVE_FLAGS
477     AC_CHECK_LIB(mingwex,opendir,
478         AC_CHECK_LIB(mingw32,opendir,,
479             [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
480     )
481     VLC_RESTORE_FLAGS
483     dnl Check for fnative-struct or mms-bitfields support for mingw32
484     VLC_SAVE_FLAGS
485     CFLAGS="${CFLAGS} -mms-bitfields"
486     CXXFLAGS="${CXXFLAGS} -mms-bitfields"
487     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
488         [ac_cv_c_mms_bitfields],
489         [AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
490     if test "${ac_cv_c_mms_bitfields}" = "no"; then
491         VLC_RESTORE_FLAGS
492         CFLAGS="${CFLAGS} -fnative-struct"
493         CXXFLAGS="${CXXFLAGS} -fnative-struct"
494         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
495             [ac_cv_c_fnative_struct],
496             [AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
497         "${ac_cv_c_fnative_struct}" = "no" && VLC_RESTORE_FLAGS
498     fi
501 AC_ARG_ENABLE(winstore_app,
502      AS_HELP_STRING([--enable-winstore-app],
503                     [Build targetted for Windows Store apps (default disabled)]))
505 vlc_winstore_app=0
506 AS_IF([test "${SYS}" = "mingw32"],[
507   AS_IF([test "${enable_winstore_app}" = "yes"], [
508     vlc_winstore_app=1
509      VLC_ADD_LIBS([libvlccore], [-lole32 -lruntimeobject])
510     ],[
511      VLC_ADD_LIBS([libvlccore],[-lwinmm])
512     ])
513   ])
514 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
515 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
519 dnl Buggy glibc prevention. Purposedly not cached.
520 dnl See sourceware.org bugs 5058 and 5443.
521 dnl Ubuntu alone has 20 bug numbers for this...
523 AC_MSG_CHECKING(for buggy GNU/libc versions)
524 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
525 #include <limits.h>
526 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
527   && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
528 # error GNU/libc with dcgettext killer bug!
529 #endif
530 ])], [
531   AC_MSG_RESULT([not present])
532 ], [
533   AC_MSG_RESULT([found])
534   AS_IF([test "x${enable_nls}" != "xno"], [
535     AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
536 work-around for this. Check with your distribution vendor on how to update the
537 glibc run-time. Alternatively, build with --disable-nls.])
538   ])
541 dnl Plugin compilation stuff
543 VLC_LIBRARY_SUFFIX
545 dnl Check for system libs needed
546 need_libc=false
548 dnl Check for usual libc functions
549 AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
550 AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r isatty lstat memalign mmap open_memstream openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale pthread_cond_timedwait_monotonic_np pthread_condattr_setclock])
551 AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid lldiv nrand48 poll posix_memalign rewind setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strsep strtof strtok_r strtoll swab tdestroy strverscmp])
552 AC_CHECK_FUNCS(fdatasync,,
553   [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
556 dnl mingw64 implements those as static inline, not functions with C linkage
557 VLC_REPLACE_DECL([asprintf], [#include <stdio.h>])
558 VLC_REPLACE_DECL([vasprintf], [#include <stdio.h>])
559 VLC_REPLACE_DECL([gmtime_r], [#include <time.h>])
560 VLC_REPLACE_DECL([localtime_r], [#include <time.h>])
562 dnl C11 static_assert()
563 AC_MSG_CHECKING([for static_assert in assert.h])
564 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
565 static_assert(1, "The impossible happened.");
566 ])], [
567   AC_MSG_RESULT([yes])
568   AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
569 ], [
570   AC_MSG_RESULT([no])
573 # Windows CE does not have strcoll()
574 AC_FUNC_STRCOLL
576 dnl Check for non-standard system calls
577 case "$SYS" in
578   "linux")
579     AC_CHECK_FUNCS([accept4 pipe2 eventfd vmsplice sched_getaffinity])
580     ;;
581   "mingw32")
582     AC_CHECK_FUNCS([_lock_file])
583     ;;
584 esac
586 AH_BOTTOM([#include <vlc_fixups.h>])
588 dnl Check for struct pollfd
589 AC_CHECK_TYPES([struct pollfd],,,
590 [#include <sys/types.h>
591 #if HAVE_POLL
592 # include <poll.h>
593 #elif defined (_WIN32)
594 # include <winsock2.h>
595 #endif
598 dnl Checks for socket stuff
599 VLC_SAVE_FLAGS
600 SOCKET_LIBS=""
601 AC_SEARCH_LIBS(connect, [socket], [
602   AS_IF([test "$ac_cv_search_connect" != "none required"], [
603     SOCKET_LIBS="$ac_cv_search_connect"
604   ])
605 ], [
606   AS_IF([test "${SYS}" = "mingw32"], [
607     SOCKET_LIBS="-lws2_32"
608   ])
611 AC_SEARCH_LIBS([inet_pton], [nsl], [
612  AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
613     SOCKET_LIBS="$ac_cv_search_inet_pton $SOCKET_LIBS"
614   ])
615 ],, [${SOCKET_LIBS}])
617 LIBS="${LIBS} ${SOCKET_LIBS}"
618 AC_LINK_IFELSE([
619     AC_LANG_PROGRAM([#ifdef _WIN32
620         # if _WIN32_WINNT < 0x600
621         #  error Needs vista+
622         # endif
623         #include <ws2tcpip.h>
624         #else
625         #include <sys/socket.h>
626         #include <arpa/inet.h>
627         #endif], [
628         char dst[[sizeof(struct in_addr)]];
629         inet_pton(AF_INET, "127.0.0.1", dst);
630     ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
631 AC_CHECK_FUNCS([if_nameindex if_nametoindex])
632 VLC_RESTORE_FLAGS
633 AC_SUBST(SOCKET_LIBS)
635 dnl Check for socklen_t
636 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
637 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
638 ac_cv_type_socklen_t,
639 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
640 [#include <sys/types.h>
641 #ifdef _WIN32
642 # include <winsock2.h>
643 # include <ws2tcpip.h>
644 #else
645 # include <sys/socket.h>
646 #endif]], [[socklen_t len; len = 0;]])],
647 ac_cv_type_socklen_t=yes,
648 ac_cv_type_socklen_t=no)])
649 AS_IF([test "$ac_cv_type_socklen_t" = no],
650  [AC_DEFINE(socklen_t, int)])
652 dnl Check for struct sockaddr_storage
653 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
654 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
655 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
656   [AC_TRY_COMPILE(
657     [#include <sys/types.h>
658      #if defined( _WIN32 )
659      # include <winsock2.h>
660      #else
661      # include <sys/socket.h>
662      #endif], [struct sockaddr_storage addr;],
663      ac_cv_struct_sockaddr_storage=yes,
664      ac_cv_struct_sockaddr_storage=no)])
665 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
666   AC_DEFINE(sockaddr_storage, sockaddr)
667   AC_DEFINE(ss_family, sa_family)
670 dnl FreeBSD has a gnugetopt library for this:
671 GNUGETOPT_LIBS=""
672 AC_CHECK_FUNC(getopt_long,, [
673   AC_CHECK_LIB([gnugetopt],[getopt_long], [
674     GNUGETOPT_LIBS="-lgnugetopt"
675   ])
677 AC_SUBST(GNUGETOPT_LIBS)
679 AC_CHECK_LIB(m,cos,[
680   LIBM="-lm"
681 ], [
682   LIBM=""
684 AC_SUBST(LIBM)
686 AC_CHECK_LIB(m,lrintf, [
687   AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
688   VLC_ADD_LIBS([skins2],[-lm])
690 AC_CHECK_LIB(m,nanf,
691   AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
694 dnl Check for dynamic plugins
695 LIBDL=""
696 have_dynamic_objects="no"
697 VLC_SAVE_FLAGS
698 AC_SEARCH_LIBS(dlsym, [dl svld], [
699   AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
700     LIBDL="$ac_cv_search_dlsym"
701   ])
702   have_dynamic_objects="yes"
704 VLC_RESTORE_FLAGS
706 # Windows
707 AS_IF([test "${SYS}" = "mingw32"], [
708   LIBDL=""
709   have_dynamic_objects="yes" #assume we can use shared objects
712 AS_IF([test "${enable_shared}" = "no"], [
713   have_dynamic_objects=no
715 AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])
717 AC_SUBST(LIBDL)
719 dnl Check for thread library
720 LIBPTHREAD=""
721 AS_IF([test "${SYS}" != "mingw32"], [
722   VLC_SAVE_FLAGS
723   LIBS=""
724   AC_SEARCH_LIBS(pthread_rwlock_init, pthread pthreads c_r, [
725     AS_IF([test "$ac_cv_search_pthread_rwlock_init" != "none required"], [
726       LIBPTHREAD="$ac_cv_search_pthread_rwlock_init"
727     ])
728   ])
729   VLC_RESTORE_FLAGS
731   AC_CHECK_LIB(rt, clock_nanosleep, [
732     VLC_ADD_LIBS([libvlccore],[-lrt])
733   ], [
734     AC_CHECK_FUNC(nanosleep,,[
735       AC_CHECK_LIB(rt,nanosleep, [
736         VLC_ADD_LIBS([libvlccore],[-lrt])
737       ], [
738         AC_CHECK_LIB(posix4,nanosleep, [
739           VLC_ADD_LIBS([libvlccore],[-lposix4])
740         ])
741       ])
742     ])
743     dnl HP/UX port
744     AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
745   ])
747 AC_SUBST(LIBPTHREAD)
750 dnl Check for headers
753 dnl  POSIX
754 AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h sys/shm.h sys/socket.h])
755 AC_CHECK_HEADERS([net/if.h], [], [],
757 #include <sys/types.h>
758 #include <sys/socket.h>
760 AC_CHECK_HEADER([syslog.h], [have_syslog="yes"], [have_syslog="no"])
761 AM_CONDITIONAL([HAVE_SYSLOG], [test "$have_syslog" = "yes"])
763 dnl  BSD
764 AC_CHECK_HEADERS([netinet/udplite.h sys/param.h sys/mount.h])
766 dnl  GNU/Linux
767 AC_CHECK_HEADERS([getopt.h linux/dccp.h linux/magic.h mntent.h sys/eventfd.h])
769 dnl  MacOS
770 AC_CHECK_HEADERS([xlocale.h])
772 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
773 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
774 AC_CHECK_TYPE(ssize_t,, [
775   AC_DEFINE(ssize_t, int)
778 dnl It seems that autoconf detects pkg-config only during the first
779 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
780 dnl it is nested within a conditional block, so it was not working right.
781 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
782 AC_ARG_VAR(PKG_CONFIG_PATH,
783        [Paths where to find .pc not at the default location])
784 PKG_PROG_PKG_CONFIG()
786 dnl On some OS we need static linking
787 AS_IF([test -n "${PKG_CONFIG}" ],[
788     AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
789         PKG_CONFIG="${PKG_CONFIG} --static"
790     ])
795 dnl Check for zlib.h and -lz along with system -lminizip if available
797 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
798 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
799 if test "${have_zlib}" = "yes"
800 then
801   VLC_ADD_LIBS([skins2 sap unzip zip],[-lz])
802   PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
803     AC_CHECK_HEADERS([unzip.h], [
804       have_minizip=yes
805       MINIZIP_LIBS="-lminizip -lz"
806     ], [
807       VLC_ADD_CPPFLAGS([skins2], [-I\\\$(top_srcdir)/modules/access/zip/unzip])
808       VLC_ADD_LIBS([skins2], [\\\$(top_builddir)/modules/libunzip.la])
809       have_minizip=no
810     ])
811   ])
812   VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
813   VLC_ADD_LIBS([skins2],[$MINIZIP_LIBS])
815 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
819 dnl Domain name i18n support via GNU libidn
821 PKG_CHECK_MODULES([IDN], [libidn], [
822   have_libidn="yes"
823   AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
824 ], [
825   have_libidn="no"
829 dnl Check for dbus
830 AC_ARG_ENABLE(dbus,
831   [AS_HELP_STRING([--enable-dbus],
832     [compile D-Bus message bus support (default enabled)])])
833 have_dbus="no"
834 AS_IF([test "${enable_dbus}" != "no"], [
835   PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
836     have_dbus="yes"
837   ], [
838     AS_IF([test -n "${enable_dbus}"], [
839       AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
840     ], [
841       AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
842     ])
843   ])
845 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
848 dnl Check for systemd
849 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
850   have_systemd="yes"
851 ], [
852   AC_MSG_WARN([${SYSTEMD_PKG_ERRORS}.])
854 AM_CONDITIONAL([HAVE_SYSTEMD], [test "${have_systemd}" = "yes"])
857 dnl Check for ntohl, etc.
858 VLC_SAVE_FLAGS
859 CFLAGS="${CFLAGS} -Wall -Werror"
860 AC_CACHE_CHECK([for ntohl in sys/param.h],
861     [ac_cv_c_ntohl_sys_param_h],
862     [     AC_TRY_COMPILE([#include <sys/param.h>],
863         [int meuh; ntohl(meuh);],
864         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
865 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
866     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
868 VLC_RESTORE_FLAGS
870 EXTEND_HELP_STRING([Optimization options:])
872 dnl  Compiler warnings
875 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 init-self logical-op])
876 RDC_PROG_CC_FLAGS([-pipe])
877 AC_LANG_PUSH([C++])
878 RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
879 AC_LANG_POP([C++])
882 dnl  Debugging mode
884 AC_ARG_ENABLE(debug,
885   [AS_HELP_STRING([--enable-debug],
886     [build with run-time assertions (default disabled)])],,
887   [enable_debug="no"])
888 AH_TEMPLATE(NDEBUG,
889             [Define to 1 if debug code should NOT be compiled])
890 AS_IF([test "${enable_debug}" != "no"], [
891   AC_CHECK_HEADERS([valgrind/valgrind.h])
892 ], [
893   AC_DEFINE(NDEBUG)
897 dnl  Profiling
899 AC_ARG_ENABLE(gprof,
900   [AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)])],,
901   [enable_gprof="no"])
902 AS_IF([test "${enable_gprof}" != "no"], [
903   CFLAGS="${CFLAGS} -pg"
904   CXXFLAGS="${CXXFLAGS} -pg"
905   OBJCFLAGS="${OBJCFLAGS} -pg"
906   LDFLAGS="${LDFLAGS} -pg"
909 AC_ARG_ENABLE(cprof,
910   [AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)])],,
911   [enable_cprof="no"])
912 AS_IF([test "${enable_gprof}" != "no"], [
913   CFLAGS="${CFLAGS} -finstrument-functions"
914   CXXFLAGS="${CXXFLAGS} -finstrument-functions"
915   OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
916   LDFLAGS="${LDFLAGS} -finstrument-functions"
920 dnl  Test coverage
922 AC_ARG_ENABLE(coverage,
923   [AS_HELP_STRING([--enable-coverage],
924     [build for test coverage (default disabled)])],,
925   [enable_coverage="no"])
926 AS_IF([test "${enable_coverage}" != "no"], [
927   CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
928   CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
929   LDFLAGS="-lgcov ${LDFLAGS}"
932 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
933   VLC_SAVE_FLAGS
934   CFLAGS="${CFLAGS} -fvisibility=hidden"
935   CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
936   OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
937   AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
938                  [ac_cv_c_visibility_hidden], [
939     AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
940       ac_cv_c_visibility_hidden=yes
941     ], [
942       ac_cv_c_visibility_hidden=no
943     ])
944   ])
945   AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
950 dnl  Enable/disable optimizations
952 AC_ARG_ENABLE(optimizations,
953   [AS_HELP_STRING([--disable-optimizations],
954     [disable compiler optimizations (default enabled)])],,
955   [enable_optimizations="yes"])
957 dnl Check for various optimization flags
958 AS_IF([test "${enable_optimizations}" != "no"], [
960   dnl -O3 only in production builds
961   AS_IF([test "${enable_debug}" = "no"], [
962     VLC_SAVE_FLAGS
963     CFLAGS="${CFLAGS} -O3"
964     CXXFLAGS="${CXXFLAGS} -O3"
965     OBJCFLAGS="${OBJCFLAGS} -O3"
966     AC_CACHE_CHECK([if $CC accepts -O3],  [ac_cv_c_o3], [
967       AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
968         ac_cv_c_o3=yes
969       ], [
970         ac_cv_c_o3=no
971       ])
972     ])
973     AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
974   ])
976   dnl Check for -ffast-math
977   VLC_SAVE_FLAGS
978   CFLAGS="${CFLAGS} -ffast-math"
979   CXXFLAGS="${CXXFLAGS} -ffast-math"
980   OBJCFLAGS="${OBJCFLAGS} -ffast-math"
981   AC_CACHE_CHECK([if $CC accepts -ffast-math], [ac_cv_c_fast_math], [
982     AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
983       ac_cv_c_fast_math=yes
984     ], [
985       ac_cv_c_fast_math=no
986     ])
987   ])
988   AS_IF([test "${ac_cv_c_fast_math}" = "no"], [VLC_RESTORE_FLAGS])
989   AH_BOTTOM([
990 #ifndef __FAST_MATH__
991 # ifndef _MSC_VER
992 #  pragma STDC FENV_ACCESS OFF
993 #  pragma STDC FP_CONTRACT ON
994 # else
995 #  pragma fenv_access(off)
996 #  pragma fp_contract(on)
997 # endif
998 #endif
1001   dnl Check for -funroll-loops
1002   VLC_SAVE_FLAGS
1003   CFLAGS="${CFLAGS} -funroll-loops"
1004   CXXFLAGS="${CXXFLAGS} -funroll-loops"
1005   OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1006   AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1007     AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1008       ac_cv_c_unroll_loops=yes
1009     ], [
1010       ac_cv_c_unroll_loops=no
1011     ])
1012   ])
1013   AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1015   AS_IF([test "$enable_debug" = "no"], [
1016     dnl Check for -fomit-frame-pointer
1017     VLC_SAVE_FLAGS
1018     CFLAGS="${CFLAGS} -fomit-frame-pointer"
1019     CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1020     OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1021     AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1022       [ac_cv_c_omit_frame_pointer], [
1023       AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1024         ac_cv_c_omit_frame_pointer=yes
1025       ], [
1026         ac_cv_c_omit_frame_pointer=no
1027       ])
1028     ])
1029     AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1030   ])
1033 VLC_SAVE_FLAGS
1034 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1035 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1036   AC_TRY_LINK([],, [
1037     ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1038   ], [
1039     ac_cv_ld_bsymbolic=""
1040   ])
1042 VLC_RESTORE_FLAGS
1043 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1044 AC_SUBST(SYMBOLIC_LDFLAGS)
1046 dnl Checks for __attribute__(aligned()) directive
1047 VLC_SAVE_FLAGS
1048 CFLAGS="${CFLAGS} -Werror"
1049 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1050     [ac_cv_c_attribute_aligned],
1051     [ac_cv_c_attribute_aligned=0
1052     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1053         AC_TRY_COMPILE([],
1054         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1055         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1056     done])
1057 VLC_RESTORE_FLAGS
1058 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1059     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1060         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1063 dnl Check for __attribute__((packed))
1064 AC_CACHE_CHECK([for __attribute__((packed))],
1065   [ac_cv_c_attribute_packed],
1066   [ac_cv_c_attribute_packed=no
1067    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1068                     [ac_cv_c_attribute_packed=yes])])
1069 if test "${ac_cv_c_attribute_packed}" != "no"; then
1070   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1074 dnl  Check the CPU
1076 case "${host_cpu}" in
1077   "")
1078     ARCH=unknown
1079     ;;
1080   *)
1081     ARCH="${host_cpu}"
1082     ;;
1083 esac
1085 dnl Check for backtrace() support
1086 AC_CHECK_HEADERS(execinfo.h)
1087 AC_CHECK_FUNCS(backtrace)
1090 dnl  default modules
1092 ALIASES="${ALIASES} cvlc rvlc"
1095 dnl  Accelerated modules
1098 dnl  Check for fully working MMX intrinsics
1099 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1100 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1101 AC_ARG_ENABLE(mmx,
1102   [AS_HELP_STRING([--disable-mmx],
1103     [disable MMX optimizations (default auto)])],,[
1104   case "${host_cpu}" in
1105     i?86|x86_64)
1106       enable_mmx="yes"
1107       ;;
1108     *)
1109       enable_mmx="no"
1110       ;;
1111   esac
1113 have_mmx="no"
1114 have_mmxext="no"
1115 AS_IF([test "${enable_mmx}" != "no"], [
1116   ARCH="${ARCH} mmx"
1117   VLC_SAVE_FLAGS
1118   CFLAGS="${CFLAGS} -mmmx"
1119   AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1120     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1121 [#include <mmintrin.h>
1122 #include <stdint.h>
1123 uint64_t frobzor;]], [
1124 [__m64 a, b, c;
1125 a = b = c = (__m64)frobzor;
1126 a = _mm_slli_pi16(a, 3);
1127 a = _mm_adds_pi16(a, b);
1128 c = _mm_srli_pi16(c, 8);
1129 c = _mm_slli_pi16(c, 3);
1130 b = _mm_adds_pi16(b, c);
1131 a = _mm_unpacklo_pi8(a, b);
1132 frobzor = (uint64_t)a;]])], [
1133       ac_cv_c_mmx_intrinsics=yes
1134     ], [
1135       ac_cv_c_mmx_intrinsics=no
1136     ])
1137   ])
1138   VLC_RESTORE_FLAGS
1139   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1140     AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1141   ])
1143   VLC_SAVE_FLAGS
1144   CFLAGS="${CFLAGS} -mmmx"
1145   AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1146     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1147 void *p;
1148 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1150     ], [
1151       ac_cv_mmx_inline=yes
1152     ], [
1153       ac_cv_mmx_inline=no
1154     ])
1155   ])
1156   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1157     AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1158     have_mmx="yes"
1159   ])
1161   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1162                  [ac_cv_mmxext_inline], [
1163     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1164 void *p;
1165 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1167     ], [
1168       ac_cv_mmxext_inline=yes
1169     ], [
1170       ac_cv_mmxext_inline=no
1171     ])
1172   ])
1173   VLC_RESTORE_FLAGS
1174   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1175     AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1176     have_mmxext="yes"
1177   ])
1179 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1180 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1182 dnl  Check for fully workin SSE2 intrinsics
1183 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1184 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1185 AC_ARG_ENABLE(sse,
1186   [AS_HELP_STRING([--disable-sse],
1187     [disable SSE (1-4) optimizations (default auto)])],, [
1188   case "${host_cpu}" in
1189     i?86|x86_64)
1190       enable_sse=yes
1191       ;;
1192     *)
1193       enable_sse=no
1194       ;;
1195   esac
1197 have_sse2="no"
1198 AS_IF([test "${enable_sse}" != "no"], [
1199   ARCH="${ARCH} sse sse2"
1201   VLC_SAVE_FLAGS
1202   CFLAGS="${CFLAGS} -msse2"
1203   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1204     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1205 [#include <emmintrin.h>
1206 #include <stdint.h>
1207 uint64_t frobzor;]], [
1208 [__m128i a, b, c;
1209 a = b = c = _mm_set1_epi64((__m64)frobzor);
1210 a = _mm_slli_epi16(a, 3);
1211 a = _mm_adds_epi16(a, b);
1212 c = _mm_srli_epi16(c, 8);
1213 c = _mm_slli_epi16(c, 3);
1214 b = _mm_adds_epi16(b, c);
1215 a = _mm_unpacklo_epi8(a, b);
1216 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1217       ac_cv_c_sse2_intrinsics=yes
1218     ], [
1219       ac_cv_c_sse2_intrinsics=no
1220     ])
1221   ])
1222   VLC_RESTORE_FLAGS
1223   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1224     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1225   ])
1227   VLC_SAVE_FLAGS
1228   CFLAGS="${CFLAGS} -msse"
1229   AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1230     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1231 void *p;
1232 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1234     ], [
1235       ac_cv_sse_inline=yes
1236     ], [
1237       ac_cv_sse_inline=no
1238     ])
1239   ])
1241   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1242     AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1243   ])
1245   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1246     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1247 void *p;
1248 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1250     ], [
1251       ac_cv_sse2_inline=yes
1252     ], [
1253       ac_cv_sse2_inline=no
1254     ])
1255   ])
1256   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1257     AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1258     have_sse2="yes"
1259   ])
1261   # SSE3
1262   AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1263     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1264 void *p;
1265 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1267     ], [
1268       ac_cv_sse3_inline=yes
1269     ], [
1270       ac_cv_sse3_inline=no
1271     ])
1272   ])
1274   AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1275     AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1276   # SSSE3
1277   AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1278     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1279 void *p;
1280 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1282     ], [
1283       ac_cv_ssse3_inline=yes
1284     ], [
1285       ac_cv_ssse3_inline=no
1286     ])
1287   ])
1289   AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1290     AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1292   # SSE4.1
1293   AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1294                  [ac_cv_sse4_1_inline], [
1295     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1296 void *p;
1297 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1299     ], [
1300       ac_cv_sse4_1_inline=yes
1301     ], [
1302       ac_cv_sse4_1_inline=no
1303     ])
1304   ])
1306   AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1307     AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1309   # SSE4.2
1310   AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1311                  [ac_cv_sse4_2_inline], [
1312     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1313 void *p;
1314 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1316     ], [
1317       ac_cv_sse4_2_inline=yes
1318     ], [
1319       ac_cv_sse4_2_inline=no
1320     ])
1321   ])
1323   AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1324     AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1326   # SSE4A
1327   AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1328     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1329 void *p;
1330 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1332     ], [
1333       ac_cv_sse4a_inline=yes
1334     ], [
1335       ac_cv_sse4a_inline=no
1336     ])
1337   ])
1338   VLC_RESTORE_FLAGS
1339   AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1340     AC_DEFINE(CAN_COMPILE_SSE4A, 1, [Define to 1 if SSE4A inline assembly is available.]) ])
1342 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1344 VLC_SAVE_FLAGS
1345 CFLAGS="${CFLAGS} -mmmx"
1346 have_3dnow="no"
1347 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1348   AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1349 void *p;
1350 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1352   ], [
1353     ac_cv_3dnow_inline=yes
1354   ], [
1355     ac_cv_3dnow_inline=no
1356   ])
1358 VLC_RESTORE_FLAGS
1359 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1360   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1361             [Define to 1 if 3D Now! inline assembly is available.])
1362   have_3dnow="yes"
1364 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1367 AC_ARG_ENABLE(neon,
1368   [AS_HELP_STRING([--disable-neon],
1369     [disable NEON optimizations (default auto)])],, [
1370   AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1372 AS_IF([test "${enable_neon}" != "no"], [
1373   VLC_SAVE_FLAGS
1374   CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1375   AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1376     AC_COMPILE_IFELSE([
1377       AC_LANG_PROGRAM(,[[
1378 asm volatile("vqmovun.s64 d0, q1":::"d0");
1380     ], [
1381       ac_cv_arm_neon="yes"
1382     ], [
1383       ac_cv_arm_neon="no"
1384     ])
1385   ])
1386   VLC_RESTORE_FLAGS
1388 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_arm_neon}" = "yes"])
1391 AC_ARG_ENABLE(altivec,
1392   [AS_HELP_STRING([--disable-altivec],
1393     [disable AltiVec optimizations (default auto)])],, [
1394   AS_CASE("${host_cpu}", [powerpc*],
1395         [enable_altivec=yes], [enable_altivec=no])
1397 have_altivec="no"
1398 ALTIVEC_CFLAGS=""
1399 AS_IF([test "${enable_altivec}" = "yes"], [
1400   ARCH="${ARCH} altivec";
1401   VLC_SAVE_FLAGS
1402   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1403     [ac_cv_altivec_inline],
1404     [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1405          ac_cv_altivec_inline="yes",
1406          [CFLAGS="${CFLAGS} -Wa,-maltivec"
1407           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1408             [ac_cv_altivec_inline="-Wa,-maltivec"],
1409             ac_cv_altivec_inline=no)
1410          ])])
1411   VLC_RESTORE_FLAGS
1412   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1413     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1414               [Define to 1 if AltiVec inline assembly is available.])
1415     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1416       ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1417       VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1418     ])
1419     have_altivec="yes"
1420   ])
1422   VLC_SAVE_FLAGS
1423   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1424   [ac_cv_c_altivec], [
1425     CFLAGS="${CFLAGS} -maltivec"
1426     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1427 [#include <altivec.h>]], [
1428 [vec_ld(0, (unsigned char *)0);]])], [
1429       ac_cv_c_altivec="-maltivec"
1430     ], [
1431       ac_cv_c_altivec="no"
1432     ])
1433   ])
1434   VLC_RESTORE_FLAGS
1435   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1436     CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1437     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1438     VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1439     ALTIVEC_CFLAGS="$ALTIVEC_FLAGS ${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}"
1440     VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1441     have_altivec="yes"
1442   ])
1443   AC_CHECK_HEADERS(altivec.h)
1445   VLC_SAVE_FLAGS
1446   LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1447   AC_CACHE_CHECK([if linker needs -framework vecLib],
1448     [ac_cv_ld_altivec],
1449     [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1450   VLC_RESTORE_FLAGS
1451   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1452     VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1453   ])
1455 AC_SUBST(ALTIVEC_CFLAGS)
1456 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1459 dnl  Memory usage
1461 AC_ARG_ENABLE(optimize-memory,
1462   [AS_HELP_STRING([--enable-optimize-memory],
1463     [optimize memory usage over performance])])
1464 if test "${enable_optimize_memory}" = "yes"; then
1465   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1469 dnl Allow running as root (useful for people running on embedded platforms)
1471 AC_ARG_ENABLE(run-as-root,
1472   [AS_HELP_STRING([--enable-run-as-root],
1473     [allow running VLC as root (default disabled)])])
1474 AS_IF([test "${enable_run_as_root}" = "yes"],[
1475     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1476               [Define to 1 to allow running VLC as root (uid 0).])
1480 dnl Stream output
1482 AC_ARG_ENABLE(sout,
1483   [AS_HELP_STRING([--disable-sout],
1484     [disable streaming output (default enabled)])])
1485 AS_IF([test "${enable_sout}" != "no"], [
1486   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1488 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1490 dnl Lua modules
1491 AC_ARG_ENABLE(lua,
1492   [AS_HELP_STRING([--disable-lua],
1493     [disable LUA scripting support (default enabled)])])
1494 if test "${enable_lua}" != "no"
1495 then
1496   PKG_CHECK_MODULES(LUA, lua5.2,
1497     [ have_lua=yes ],
1498     [
1499     AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1501     PKG_CHECK_MODULES(LUA, lua5.1,
1502       [ have_lua=yes ],
1503       [
1504       AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1505       PKG_CHECK_MODULES(LUA, lua >= 5.1,
1506         [ have_lua=yes ],
1507         [
1508           AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1509           have_lua=yes
1510           AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1511             [],
1512             [ have_lua=no ] )
1513           AC_CHECK_LIB(  lua5.2 , luaL_newstate,
1514             [LUA_LIBS="-llua5.2"],
1515           AC_CHECK_LIB( lua5.1 , luaL_newstate,
1516             [LUA_LIBS="-llua5.1"],
1517             AC_CHECK_LIB( lua51 , luaL_newstate,
1518               [LUA_LIBS="-llua51"],
1519               AC_CHECK_LIB( lua , luaL_newstate,
1520                 [LUA_LIBS="-llua"],
1521                 [ have_lua=no
1522                 ], [-lm])
1523             )))
1524         ])
1525       ])
1526     ])
1527   if test "x${have_lua}" != "xyes" ;  then
1528       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.])
1529   fi
1530   AC_ARG_VAR([LUAC], [LUA byte compiler])
1531   AC_PATH_PROGS(LUAC,[${LUAC} luac], [false])
1532   AS_IF([test "${LUAC}" = "false"], [
1533     AC_MSG_ERROR([Could not find the LUA byte compiler.])
1534   ])
1535   AS_IF([test -d "${CONTRIB_DIR}" -a -f "${CONTRIB_DIR}/lib/liblua.a" -a `echo|${LUAC} -o - -|od -j 8 -N 2 -t x2|head -n 1|tr -s ' '|cut -d' ' -f2` != 0404], [
1536     AC_MSG_ERROR([You need 32-bits luac when using using lua from contrib.])
1537   ])
1539 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1543 dnl HTTP daemon
1545 AC_ARG_ENABLE(httpd,
1546   [AS_HELP_STRING([--disable-httpd],
1547     [disable the built-in HTTP server (default enabled)])])
1548 if test "${enable_httpd}" != "no"
1549 then
1550   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP daemon support)
1552 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1556 dnl VideoLAN manager
1558 AC_ARG_ENABLE(vlm,
1559   [AS_HELP_STRING([--disable-vlm],
1560     [disable the stream manager (default enabled)])],,
1561   [enable_vlm="${enable_sout}"])
1562 AS_IF([test "${enable_vlm}" != "no"], [
1563   AS_IF([test "${enable_sout}" = "no"], [
1564     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1565   ])
1566   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1568 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1572 dnl Addons manager storage and repositories modules
1574 AC_ARG_ENABLE(addonmanagermodules,
1575   [AS_HELP_STRING([--disable-addonmanagermodules],
1576     [disable the addons manager modules (default enabled)])])
1577 if test "${enable_addonmanagermodules}" != "no"
1578 then
1579   AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1581 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1585 dnl  Input plugins
1588 EXTEND_HELP_STRING([Input plugins:])
1591 dnl  libarchive access module
1593 PKG_ENABLE_MODULES_VLC([ARCHIVE], [access_archive], [libarchive >= 3.1.0], (libarchive support), [auto])
1596 dnl  live555 input
1598 AC_ARG_ENABLE(live555,
1599   [AS_HELP_STRING([--enable-live555],
1600     [enable RTSP input through live555 (default enabled)])])
1602 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1603   PKG_CHECK_MODULES(LIVE555, live555, [
1604     VLC_ADD_PLUGIN([live555])
1605     VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1606     VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1607   ], [
1608     AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1610     AC_LANG_PUSH(C++)
1611     VLC_SAVE_FLAGS
1613     dnl detect include paths
1614     AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment.hh"], [
1615       CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1616     ], [
1617       AS_IF([test "${SYS}" != "os2"], [
1618         LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1619         CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1620       ], [
1621         LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1622         CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1623         LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1624       ])
1625     ])
1627     dnl CPP Flags
1628     AS_IF([test "${SYS}" = "solaris"], [
1629       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1630     ])
1631     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1632     LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1634     dnl version check
1635     AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1636       AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1637 [#include <liveMedia_version.hh>
1638 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1639 # error BOOM
1640 #endif]])
1641       ], [
1642         ac_cv_live555="yes"
1643       ], [
1644         ac_cv_live555="no"
1645       ])
1646     ])
1648     AS_IF([test "$ac_cv_live555" = "no"], [
1649       AC_MSG_WARN([live555 is missing or its installed version is too old:
1650 Version 2011.12.23 or later is required to proceed.
1651 You can get an updated one from http://www.live555.com/liveMedia .])
1652       AS_IF([test -n "${enable_live555}"], [
1653         AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1654       ])
1655     ], [
1656       other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1657       other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1658       AS_IF([test "${SYS}" = "mingw32"], [
1659         # add ws2_32 for closesocket, select, recv
1660         other_libs="$other_libs -lws2_32"
1661       ])
1663       dnl We need to check for pic because live555 don't provide shared libs
1664       dnl and we want to build a plugins so we need -fPIC on some arch.
1665       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1666       VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1667       AC_CHECK_LIB(liveMedia_pic, main, [
1668         VLC_ADD_PLUGIN([live555])
1669         VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1670       ],[
1671         AC_CHECK_LIB(liveMedia, main, [
1672           VLC_ADD_PLUGIN([live555])
1673           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1674         ],[],[${other_libs}])
1675       ],[${other_libs_pic}])
1676     ])
1677     VLC_RESTORE_FLAGS
1678     AC_LANG_POP(C++)
1679   ])
1683 dnl IIDC and DV FireWire input modules
1685 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1686 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1689 dnl - linsys modules: access module check for libzvbi
1691 AC_ARG_ENABLE(linsys,
1692   [AS_HELP_STRING([--enable-linsys],
1693     [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
1694 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
1695   VLC_ADD_PLUGIN([linsys_hdsdi])
1696   PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
1697     VLC_ADD_PLUGIN([linsys_sdi])
1698   ], [
1699     AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
1700   ])
1704 dnl dvdread module: check for libdvdread
1706 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 4.9.0], [dvdread input module], [auto])
1709 dnl libdvdnav plugin
1711 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav > 4.9.0], [DVD with navigation input module (dvdnav)], [auto])
1714 dnl  Blu-ray Disc Support with libbluray
1716 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.5.0], (libbluray for Blu-ray disc support ) )
1719 dnl  OpenCV wrapper and example filters
1721 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
1725 dnl  libsmbclient plugin
1727 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smb], [smbclient], (SMB/CIFS support), [auto])
1728 AS_IF([test "${SYS}" = "mingw32"], [ VLC_ADD_PLUGIN([smb]) ])
1731 dnl  liBDSM access module
1733 PKG_ENABLE_MODULES_VLC([DSM], [dsm], [libdsm >= 0.0.4], [libdsm SMB/CIFS access/sd module], [auto])
1736 dnl sftp access support
1738 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
1741 dnl  Video4Linux 2
1743 AC_ARG_ENABLE(v4l2, [AS_HELP_STRING([--disable-v4l2],
1744   [disable Video4Linux version 2 (default auto)])])
1745 have_v4l2="no"
1746 AS_IF([test "$enable_v4l2" != "no"], [
1747   AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h], [
1748     have_v4l2="yes"
1749   ])
1751 AM_CONDITIONAL(HAVE_V4L2, [test "${have_v4l2}" != "no"])
1754 dnl special access module for Blackmagic SDI cards
1756 AC_ARG_ENABLE(decklink,
1757   [AS_HELP_STRING([--disable-decklink],
1758     [disable Blackmagic DeckLink SDI input (default auto)])])
1759 AC_ARG_WITH(decklink_sdk,
1760   [AS_HELP_STRING[--with-decklink-sdk=DIR],
1761     [                        location of Blackmagic DeckLink SDI SDK])])
1762 have_decklink=no
1763 if test "${enable_decklink}" != "no"
1764 then
1765   if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1766   then
1767     VLC_ADD_CPPFLAGS([decklink decklinkoutput],[-I${with_decklink_sdk}/include])
1768   fi
1769   VLC_SAVE_FLAGS
1770   CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1771   AC_LANG_PUSH(C++)
1772   AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
1773       have_decklink=yes
1774   ], [
1775       AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)
1776   ])
1777   AC_LANG_POP(C++)
1778   VLC_RESTORE_FLAGS
1780 AM_CONDITIONAL(HAVE_DECKLINK, [ test "${have_decklink}" != "no" ])
1784 dnl  gnomeVFS access module
1786 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
1789 dnl  VCDX modules
1791 PKG_ENABLE_MODULES_VLC([VCDX], [vcdx], [libcdio >= 0.78.2 libiso9660 >= 0.72 libvcdinfo >= 0.7.22], [navigate VCD with libvcdinfo], [no])
1794 dnl  Built-in CD-DA and VCD module
1796 AC_ARG_ENABLE(vcd,
1797   [AS_HELP_STRING([--disable-vcd],
1798     [disable built-in VCD and CD-DA support (default enabled)])])
1800 AC_ARG_ENABLE(libcddb,
1801   [AS_HELP_STRING([--disable-libcddb],
1802     [disable CDDB for Audio CD (default enabled)])])
1804 if test "${enable_vcd}" != "no"
1805 then
1806   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1807   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1808     AC_MSG_RESULT(yes)
1809     VLC_ADD_PLUGIN([vcd cdda])
1810   ],[
1811     AC_MSG_RESULT(no)
1812   ])
1814   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1815   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1816     AC_MSG_RESULT(yes)
1817     VLC_ADD_PLUGIN([vcd cdda])
1818     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1819   ],[
1820     AC_MSG_RESULT(no)
1821   ])
1823   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1824   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1825     AC_MSG_RESULT(yes)
1826     VLC_ADD_PLUGIN([vcd cdda])
1827     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1828   ],[
1829     AC_MSG_RESULT(no)
1830   ])
1832   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
1833   then
1834     VLC_ADD_PLUGIN([vcd cdda])
1835   fi
1837   if test "$enable_libcddb" != "no"; then
1838     PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
1839       HAVE_LIBCDDB=yes
1840       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
1841       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
1842       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
1843       ],:
1844       [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
1845       HAVE_LIBCDDB=no])
1846   fi
1850 dnl Linux DVB
1852 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
1853   AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1854 [#include <linux/dvb/version.h>
1855 #if (DVB_API_VERSION < 5)
1856 # error Linux DVB API v3.2 and older are not supported.
1857 #endif
1858 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
1859 # error Linux DVB API v5.0 is unsupported. Please update.
1860 #endif
1861 ]])], [
1862   ac_cv_linux_dvb_5_1=yes
1863 ], [
1864   ac_cv_linux_dvb_5_1=no
1865 ])])
1866 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
1869 dnl  Screen capture module
1871 AC_ARG_ENABLE(screen,
1872   [AS_HELP_STRING([--enable-screen],
1873     [disable screen capture (default enabled)])])
1874 if test "${enable_screen}" != "no"; then
1875   if test "${SYS}" = "darwin"; then
1876     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
1877       VLC_ADD_PLUGIN([screen])
1878     ])
1879   fi
1881 AM_CONDITIONAL(HAVE_MAC_SCREEN, [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
1884 dnl  VNC/RFB access module
1886 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
1888 dnl  RDP/Remote Desktop access module
1890 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
1893 dnl  Real RTSP plugin
1895 AC_ARG_ENABLE(realrtsp,
1896   [  --enable-realrtsp       Real RTSP module (default disabled)])
1897 if test "${enable_realrtsp}" = "yes"; then
1898   VLC_ADD_PLUGIN([access_realrtsp])
1902 dnl MacOS eyeTV
1903 AC_ARG_ENABLE(macosx-eyetv,
1904   [  --enable-macosx-eyetv   Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
1905 if test "x${enable_macosx_eyetv}" != "xno" &&
1906   (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
1907 then
1908   VLC_ADD_PLUGIN([access_eyetv])
1912 dnl QTKit
1913 AC_ARG_ENABLE(macosx-qtkit,
1914   [  --enable-macosx-qtkit Mac OS X qtcapture (video) and qtsound (audio) module (default enabled on Mac OS X)])
1915 if test "x${enable_macosx_qtkit}" != "xno" &&
1916   (test "${SYS}" = "darwin" || test "${enable_macosx_qtkit}" = "yes")
1917 then
1918   VLC_ADD_PLUGIN([qtcapture])
1919   VLC_ADD_PLUGIN([qtsound])
1921 AM_CONDITIONAL(HAVE_QTKIT, [test "${SYS}" = "darwin" -a "x${enable_macosx_qtkit}" != "xno"])
1924 dnl AVFoundation
1925 AC_SUBST(have_avfoundation, ["no"])
1926 AC_ARG_ENABLE(macosx-avfoundation,
1927   [  --enable-macosx-avfoundation Mac OS X avcapture (video) module (default enabled on Mac OS X)])
1928 if test "x${enable_macosx_avfoundation}" != "xno" &&
1929   (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
1930 then
1931   SAVED_LIBS="${LIBS}"
1932   LIBS="-framework AVFoundation"
1933   AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
1934   LIBS="${SAVED_LIBS}"
1935   if test "${have_avfoundation}" != "no"
1936   then
1937     VLC_ADD_PLUGIN([avcapture])
1938   fi
1940 AM_CONDITIONAL(HAVE_AVFOUNDATION, [test "${have_avfoundation}" != "no"])
1943 dnl  DCP plugin (using asdcplib)
1945 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
1946 AM_CONDITIONAL(HAVE_ASDCP, [test "${have_asdcp}" = "yes"])
1949 dnl  Demux plugins
1952 EXTEND_HELP_STRING([Mux/Demux plugins:])
1955 dnl  libdvbpsi check for ts mux/demux
1957 have_dvbpsi="no"
1958 PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.0.0], [have_dvbpsi="yes"])
1959 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
1963 dnl  GME demux plugin
1965 AC_ARG_ENABLE(gme,
1966   [AS_HELP_STRING([--enable-gme],
1967     [use Game Music Emu (default auto)])])
1968 AS_IF([test "${enable_gme}" != "no"], [
1969   AC_CHECK_HEADER([gme/gme.h], [
1970     VLC_ADD_LIBS([gme], [-lgme])
1971     VLC_ADD_PLUGIN([gme])
1972   ], [
1973     AS_IF([test "x${enable_gme}" != "x"], [
1974       AC_MSG_ERROR([GME cannot be found. Please install the development files.])
1975     ])
1976   ])
1981 dnl  SIDPlay plugin
1983 AC_ARG_ENABLE(sid,
1984     [AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)])])
1985 AS_IF([test "${enable_sid}" != "no"], [
1986     PKG_CHECK_MODULES(SID, [libsidplay2], [
1987         AC_LANG_PUSH(C++)
1988         oldCPPFLAGS="$CPPFLAGS"
1989         CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
1990         AC_CHECK_HEADER([sidplay/builders/resid.h], [
1991             VLC_ADD_PLUGIN([sid])
1992             VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
1993             VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
1994         ], [
1995             AS_IF([test -n "${enable_sid}"],
1996                 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
1997                 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
1998                 )
1999         ])
2000         CPPFLAGS="$oldCPPFLAGS"
2001         AC_LANG_POP(C++)
2002     ], [
2003         AS_IF([test "x${enable_sid}" = "xyes"],
2004             [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2005             [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2006             )
2007     ])
2012 dnl  ogg demux plugin
2014 PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
2015 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2016     AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2017 ],[true])
2018 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2019 if test "${enable_sout}" != "no"; then
2020 dnl Check for libshout
2021     PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2025 dnl  matroska demux plugin
2027 AC_ARG_ENABLE(mkv,
2028   [AS_HELP_STRING([--disable-mkv],
2029     [do not use libmatroska (default auto)])])
2030 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2031   AC_LANG_PUSH(C++)
2032   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2033     AC_MSG_CHECKING(for libebml version >= 1.0.0)
2034     AC_EGREP_CPP(yes,
2035       [#include <ebml/EbmlVersion.h>
2036        #ifdef LIBEBML_VERSION
2037        #if LIBEBML_VERSION >= 0x010000
2038        yes
2039        #endif
2040        #endif],
2041       [AC_MSG_RESULT([yes])
2042         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2043           AC_MSG_CHECKING(for libmatroska version >= 1.0.0)
2044           AC_EGREP_CPP(yes,
2045             [#include <matroska/KaxVersion.h>
2046              #ifdef LIBMATROSKA_VERSION
2047              #if LIBMATROSKA_VERSION >= 0x010000
2048              yes
2049              #endif
2050              #endif],
2051             [AC_MSG_RESULT([yes])
2052               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2053               AC_CHECK_LIB(ebml_pic, main, [
2054                 VLC_ADD_PLUGIN([mkv])
2055                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2056               ],[
2057                 AC_CHECK_LIB(ebml, main, [
2058                   VLC_ADD_PLUGIN([mkv])
2059                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2060                 ])
2061               ])
2062             ], [
2063               AC_MSG_RESULT([no])
2064               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.])
2065           ])
2066         ])
2067       ],
2068       [AC_MSG_RESULT([no])
2069         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.])
2070     ])
2071   ])
2072   AC_LANG_POP(C++)
2076 dnl  modplug demux plugin
2078 AC_ARG_ENABLE(mod,
2079   [AS_HELP_STRING([--disable-mod],
2080     [do not use libmodplug (default auto)])])
2081 if test "${enable_mod}" != "no" ; then
2082     PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2083           VLC_ADD_PLUGIN([mod])
2084           VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2085           VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2086           VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2087     ],[
2088        AS_IF([test -n "${enable_mod}"],
2089          [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2090          [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2091     ])
2095 dnl  mpc demux plugin
2097 AC_ARG_ENABLE(mpc,
2098   [AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)])])
2099 if test "${enable_mpc}" != "no"
2100 then
2101   AC_CHECK_HEADERS([mpc/mpcdec.h], [
2102     VLC_ADD_PLUGIN([mpc])
2103     VLC_ADD_LIBS([mpc],[-lmpcdec])],
2104     [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2105     VLC_ADD_PLUGIN([mpc])
2106     VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2110 dnl  Codec plugins
2113 EXTEND_HELP_STRING([Codec plugins:])
2116 dnl wmafixed plugin
2118 AC_ARG_ENABLE(wma-fixed,
2119   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2120 if test "${enable_wma_fixed}" = "yes"
2121 then
2122   VLC_ADD_PLUGIN([wma_fixed])
2126 dnl shine encoder plugin
2128 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2132 dnl openmax il codec plugin
2134 AC_ARG_ENABLE(omxil,
2135   [  --enable-omxil          openmax il codec module (default disabled)])
2136 if test "${enable_omxil}" = "yes"
2137 then
2138   VLC_ADD_PLUGIN([omxil])
2142 dnl openmax il vout plugin
2144 AC_ARG_ENABLE(omxil-vout,
2145   [  --enable-omxil-vout     openmax il video output module (default disabled)])
2146 if test "${enable_omxil_vout}" = "yes"
2147 then
2148   VLC_ADD_PLUGIN([omxil_vout])
2152 dnl raspberry pi openmax il configuration
2154 AC_ARG_ENABLE(rpi-omxil,
2155   [  --enable-rpi-omxil     openmax il configured for raspberry pi (default disabled)])
2156 if test "${enable_rpi_omxil}" = "yes"
2157 then
2158   VLC_ADD_PLUGIN([omxil omxil_vout])
2159   VLC_ADD_CFLAGS([omxil omxil_vout],[-DRPI_OMX])
2163 dnl CrystalHD codec plugin
2165 AC_ARG_ENABLE(crystalhd,
2166   [  --enable-crystalhd      crystalhd codec plugin (default auto)])
2167 if test "${enable_crystalhd}" != "no"; then
2168     AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2169       VLC_ADD_PLUGIN([crystalhd])
2170       VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2171     ],[
2172       if test "${SYS}" = "mingw32" ; then
2173         AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2174           VLC_ADD_PLUGIN([crystalhd])
2175           AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2176             VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2177             ])
2178         ],[
2179           AS_IF([test x"${enable_crystalhd}" = "xyes"],
2180                 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2181                 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2182         ],[#define __LINUX_USER__
2183                #include <libcrystalhd/bc_dts_types.h>
2184         ])
2185       fi
2186     ],[
2187        #include <libcrystalhd/bc_dts_types.h>
2188       ])
2192 dnl  mad plugin
2194 have_mad="no"
2195 MAD_CFLAGS=""
2196 MAD_LIBS=""
2198 AC_ARG_WITH(mad, [  --with-mad=PATH         path to libmad], [
2199   enable_mad="yes"
2200 ], [
2201   with_mad="no"
2203 AS_IF([test "${with_mad}" != "no"], [
2204   MAD_CFLAGS="-I${with_mad}/include"
2205   MAD_LIBS="-L${with_mad}/lib"
2208 AC_ARG_ENABLE(mad,
2209   [  --enable-mad            libmad module (default enabled)])
2210 AS_IF([test "${enable_mad}" != "no"], [
2211   VLC_SAVE_FLAGS
2212   CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
2213   LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
2214   AC_CHECK_HEADERS(mad.h, [
2215     AC_CHECK_LIB(mad, mad_bit_init, [
2216       have_mad="yes"
2217       MAD_LIBS="${MAD_LIBS} -lmad"
2218     ])
2219   ])
2220   VLC_RESTORE_FLAGS
2221   AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
2222     AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
2223   ])
2225 AC_SUBST(MAD_CFLAGS)
2226 AC_SUBST(MAD_LIBS)
2227 AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
2229 dnl  mpg123 plugin
2232 PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])
2235 AC_ARG_ENABLE(merge-ffmpeg,
2236 [  --enable-merge-ffmpeg   merge FFmpeg-based plugins (default disabled)],, [
2237   enable_merge_ffmpeg="no"
2239 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2241 AC_MSG_CHECKING([for libavutil variant])
2242 PKG_CHECK_EXISTS([libavutil], [
2243   libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2244   libavutil_micro="${libavutil_version##*.}"
2245   AS_IF([test ${libavutil_micro} -le 99], [
2246     avfork="libav"
2247   ], [
2248     avfork="ffmpeg"
2249   ])
2250 ], [
2251   avfork="none"
2253 AC_MSG_RESULT([${avfork}])
2256 dnl gstreamer stuff
2258 AC_ARG_ENABLE(gst-decode,
2259   [  --enable-gst-decode     GStreamer based decoding support (currently supports only video decoding) (default auto)])
2261 have_gst_decode="no"
2262 AS_IF([test "${enable_gst_decode}" != "no"], [
2263   PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2264     PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2265       have_gst_decode="yes"
2266     ], [
2267       AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2268     ])
2269   ], [
2270     AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2271   ])
2273 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2276 dnl  avcodec decoder/encoder plugin
2278 AC_ARG_ENABLE(avcodec,
2279 [  --enable-avcodec        libavcodec codec (default enabled)])
2280 AS_IF([test "${enable_avcodec}" != "no"], [
2281   PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 55.0.0 libavutil >= 52.0.0], [
2282     dnl PKG_CHECK_EXISTS([libavcodec < 56],, [
2283     dnl   AC_MSG_ERROR([libavcodec versions 56 and later are not supported yet.])
2284     dnl ])
2285     VLC_SAVE_FLAGS
2286     CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2287     CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2288     AC_CHECK_HEADERS(libavcodec/avcodec.h)
2289     AC_CHECK_HEADERS(libavutil/avutil.h)
2290     VLC_RESTORE_FLAGS
2291     have_avcodec="yes"
2292   ],[
2293     AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2294   ])
2295 ], [
2296   have_avcodec="no"
2298 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2301 dnl libva needs avcodec
2303 AC_ARG_ENABLE(libva,
2304   [  --enable-libva          VAAPI GPU decoding support (libVA) (default auto)])
2306 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2307   AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2310 have_vaapi="no"
2311 have_vaapi_drm="no"
2312 have_vaapi_x11="no"
2313 AS_IF([test "${enable_libva}" != "no"], [
2314   PKG_CHECK_EXISTS([libva], [
2315     have_vaapi="yes"
2316   ], [
2317     AS_IF([test -n "${enable_libva}"], [
2318       AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2319     ], [
2320       AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2321     ])
2322   ])
2323   PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2324     have_vaapi_drm="yes"
2325   ], [
2326     AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2327   ])
2328   PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2329     have_vaapi_x11="yes"
2330   ], [
2331     AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2332   ])
2334 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2335 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2337 have_avcodec_vaapi="no"
2338 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2339   VLC_SAVE_FLAGS
2340   CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2341   CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2342   AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2343     AC_MSG_NOTICE([VAAPI acceleration activated])
2344     have_avcodec_vaapi="yes"
2345   ],[
2346     AS_IF([test -n "${enable_libva}"], [
2347       AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2348     ], [
2349       AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2350     ])
2351   ])
2352   VLC_RESTORE_FLAGS
2354 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2357 dnl dxva2 needs avcodec
2359 AC_ARG_ENABLE(dxva2,
2360   [  --enable-dxva2          DxVA2 GPU decoding support (default auto)])
2362 have_avcodec_dxva2="no"
2363 AS_IF([test "${enable_dxva2}" != "no"], [
2364   if test "${SYS}" = "mingw32"; then
2365   AS_IF([test "x${have_avcodec}" = "xyes"], [
2366     AC_CHECK_HEADERS(dxva2api.h,
2367       [
2368         AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2369            AC_MSG_NOTICE([DxVA2 acceleration activated])
2370            have_avcodec_dxva2="yes"
2371         ],[
2372     AS_IF([test "${enable_dxva2}" = "yes"],
2373           [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2374               [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2375         ], [#undef _WIN32_WINNT
2376             /* DXVA2 is only available in Vista and above */
2377             #define _WIN32_WINNT 0x600])
2378       ],[
2379     AS_IF([test "${enable_dxva2}" = "yes"],
2380               [AC_MSG_ERROR([Could not find required dxva2api.h])],
2381               [AC_MSG_WARN([dxva2api.h not found])])
2382       ])
2383   ],[
2384     AS_IF([test "x${enable_dxva2}" != "x"], [
2385       AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2386     ])
2387   ])
2388   fi
2390 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2393 dnl d3d11va needs avcodec
2395 AC_ARG_ENABLE(d3d11va,
2396   [  --enable-d3d11va          D3D11 GPU decoding support (default auto)])
2398 have_avcodec_d3d11va="no"
2399 AS_IF([test "${enable_d3d11va}" != "no"], [
2400   if test "${SYS}" = "mingw32"; then
2401   AS_IF([test "x${have_avcodec}" = "xyes"], [
2402         AC_CHECK_TYPES([ID3D11VideoDecoder],
2403           [
2404             AC_CHECK_HEADERS(dxva2api.h,
2405               [
2406                 AC_CHECK_HEADERS(libavcodec/d3d11va.h, [
2407                    AC_MSG_NOTICE([D3D11 acceleration activated])
2408                    AC_DEFINE(HAVE_AVCODEC_D3D11VA, 1, [Define if the d3d11va module is built])
2409                    have_avcodec_d3d11va="yes"
2410                 ],[
2411                   AS_IF([test "${enable_d3d11va}" = "yes"],
2412                     [AC_MSG_ERROR([d3d11va is present but libavcodec/d3d11va.h is missing])],
2413                         [AC_MSG_WARN([d3d11va is present but libavcodec/d3d11va.h is missing ])])
2414                   ], [#undef _WIN32_WINNT
2415                       /* D3D11 is only available in Vista and above */
2416                       #define _WIN32_WINNT 0x600])
2417                   ],[
2418                     AS_IF([test "${enable_d3d11va}" = "yes"],
2419                           [AC_MSG_ERROR([Could not find required dxva2api.h])],
2420                           [AC_MSG_WARN([dxva2api.h not found])])
2421                   ])
2422           ],[
2423             AS_IF([test "${enable_d3d11va}" = "yes"],
2424                   [AC_MSG_ERROR([Could not find required ID3D11VideoDecoder in d3d11.h])],
2425                   [AC_MSG_WARN([ID3D11VideoDecoder not found])])
2426           ], [#include <d3d11.h>])
2427   ],[
2428     AS_IF([test "x${enable_d3d11va}" != "x"], [
2429       AC_MSG_ERROR([--enable-d3d11va and --disable-avcodec options are mutually exclusive.])
2430     ])
2431   ])
2432   fi
2434 AM_CONDITIONAL([HAVE_AVCODEC_D3D11VA], [test "${have_avcodec_d3d11va}" = "yes"])
2437 dnl DXGI debug
2439 AC_CHECK_HEADERS(dxgidebug.h)
2442 dnl vda needs avcodec
2444 AC_ARG_ENABLE(vda,
2445   [  --enable-vda          VDA  support (default auto)])
2447 have_avcodec_vda="no"
2448 AS_IF([test "${enable_vda}" != "no"], [
2449   if test "${SYS}" = "darwin"; then
2450   AS_IF([test "x${have_avcodec}" = "xyes"], [
2451     AC_CHECK_HEADERS(VideoDecodeAcceleration/VDADecoder.h,
2452       [
2453         AC_CHECK_HEADERS(libavcodec/vda.h, [
2454            have_avcodec_vda="yes"
2455         ],[
2456         AS_IF([test "${enable_vda}" = "yes"],
2457               [AC_MSG_ERROR([vda is present but libavcodec/vda.h is missing])],
2458               [AC_MSG_WARN([vda is present but libavcodec/vda.h is missing ])])
2459         ])
2460   ],[
2461         AS_IF([test "${enable_vda}" = "yes"],
2462               [AC_MSG_ERROR([Could not find required VideoDecodeAcceleration/VDADecoder.h])],
2463               [AC_MSG_WARN([VideoDecodeAcceleration/VDADecoder.h not found])])
2464       ])
2465   ],[
2466     AS_IF([test "x${enable_vda}" != "x"], [
2467       AC_MSG_ERROR([--enable-vda and --disable-avcodec options are mutually exclusive.])
2468     ])
2469  ])
2470  AS_IF([test "${have_avcodec_vda}" = "yes"], [
2471      SAVE_LIBS=$LIBS
2472      LIBS="$LIBS $AVCODEC_LIBS"
2473      AC_CHECK_FUNCS([av_vda_alloc_context])
2474      LIBS=$SAVE_LIBS
2475  ])
2476  fi
2478 AM_CONDITIONAL([HAVE_AVCODEC_VDA], [test "${have_avcodec_vda}" = "yes"])
2481 dnl  avformat demuxer/muxer plugin
2484 AC_ARG_ENABLE(avformat,
2485 [  --enable-avformat       libavformat containers (default enabled)],, [
2486   enable_avformat="${have_avcodec}"
2488 have_avformat="no"
2489 AS_IF([test "${enable_avformat}" != "no"], [
2490   PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2491       have_avformat="yes"
2492       VLC_SAVE_FLAGS
2493       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2494       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2495       AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2496       AC_CHECK_HEADERS(libavcodec/avcodec.h)
2497       AC_CHECK_HEADERS(libavutil/avutil.h)
2498       AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2499         have_avformat="no"
2500       ])
2501       VLC_RESTORE_FLAGS
2502     ],[
2503       AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2504   ])
2506 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2509 dnl  swscale image scaling and conversion plugin
2512 AC_ARG_ENABLE(swscale,
2513   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2514           (default enabled)]))
2515 if test "${enable_swscale}" != "no"
2516 then
2517   PKG_CHECK_MODULES(SWSCALE,[libswscale],
2518     [
2519       VLC_SAVE_FLAGS
2520       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2521       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2522       AC_CHECK_HEADERS(libswscale/swscale.h)
2523       AC_CHECK_HEADERS(libavutil/avutil.h)
2524       VLC_ADD_PLUGIN([swscale])
2525       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2526       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2527       AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2528         VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2529       ])
2530       VLC_RESTORE_FLAGS
2531     ],[
2532       AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2533   ])
2537 dnl  postproc plugin
2540 AC_ARG_ENABLE(postproc,
2541 [  --enable-postproc       libpostproc image post-processing (default auto)])
2542 if test "${enable_postproc}" != "no"
2543 then
2544   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2545     [
2546       VLC_SAVE_FLAGS
2547       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2548       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2549       AC_CHECK_HEADERS(postproc/postprocess.h)
2550       VLC_ADD_PLUGIN([postproc])
2551       VLC_RESTORE_FLAGS
2552     ],[
2553       AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2554   ])
2558 dnl  faad decoder plugin
2560 AC_ARG_ENABLE(faad,
2561 [  --enable-faad           faad codec (default auto)])
2562 have_faad="no"
2563 AS_IF([test "${enable_faad}" != "no"], [
2564   AC_CHECK_HEADERS([neaacdec.h], [
2565     AC_CHECK_LIB(faad, NeAACDecOpen, [have_faad="yes"],, [$LIBM])
2567     AS_IF([test "${have_faad}" = "yes"], [
2568       VLC_ADD_PLUGIN([faad])
2569       VLC_ADD_LIBS([faad],[-lfaad])
2570     ], [
2571       AS_IF([test "${enable_faad}" = "yes"], [
2572         AC_MSG_ERROR([cannot find FAAD library])
2573       ], [
2574         AC_MSG_WARN([cannot find FAAD library])
2575       ])
2576     ])
2577   ])
2581 dnl libvpx decoder plugin
2583 AC_ARG_ENABLE(vpx,
2584     AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 decoder (default auto)]))
2585 AS_IF([test "${enable_vpx}" != "no"],[
2586     PKG_CHECK_MODULES([VPX], [vpx] , [
2587         VLC_ADD_PLUGIN([vpx])
2588         VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2589         VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2590         AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2591             VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2592         ], [], [${VPX_LIBS}])
2593         AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2594             VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2595         ], [], [${VPX_LIBS}])
2596     ], [
2597     AS_IF([test "${enable_vpx}" = "yes"],[
2598         AC_MSG_ERROR([libvpx was not found])
2599     ])])
2603 dnl twolame encoder plugin
2605 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2608 dnl fdk-aac encoder plugin
2610 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2613 dnl  QuickTime plugin
2615 AC_ARG_ENABLE(quicktime,
2616   [  --enable-quicktime      QuickTime module (deprecated)])
2617 if test "${enable_quicktime}" = "yes"; then
2618   if test "${SYS}" = "mingw32"; then
2619     VLC_ADD_PLUGIN([quicktime])
2620   else
2621   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2622     [ VLC_ADD_PLUGIN([quicktime])
2623       VLC_ADD_LIBS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2624     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2625   fi
2629 dnl A52/AC3 decoder plugin
2631 AC_ARG_ENABLE(a52,
2632   [  --enable-a52            A/52 support with liba52 (default enabled)])
2633 if test "${enable_a52}" != "no"
2634 then
2635   AC_ARG_WITH(a52,
2636     [  --with-a52=PATH         a52 headers and libraries])
2637     if test -z "${with_a52}"
2638     then
2639       LDFLAGS_test=""
2640       CPPFLAGS_test=""
2641     else
2642       LDFLAGS_test="-L${with_a52}/lib"
2643       CPPFLAGS_test="-I${with_a52}/include"
2644     fi
2645     VLC_SAVE_FLAGS
2646     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2647     LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2648     AC_CHECK_HEADERS(a52dec/a52.h, [
2649       AC_CHECK_LIB(a52, a52_free, [
2650         VLC_ADD_PLUGIN([a52tofloat32])
2651         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2652         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2653       ],[
2654         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.])
2655         ], [$LIBM])
2656     ],[
2657       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.])
2658     ])
2659     VLC_RESTORE_FLAGS
2663 dnl DTS Coherent Acoustics decoder plugin
2665 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2668 dnl  Flac plugin
2670 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2673 dnl  Libmpeg2 plugin
2675 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2678 dnl  Vorbis plugin
2680 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2683 dnl  Tremor plugin
2685 AC_ARG_ENABLE(tremor,
2686   [  --enable-tremor         Tremor decoder support (default disabled)])
2687 if test "${enable_tremor}" = "yes"
2688 then
2689   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2690     VLC_ADD_PLUGIN([tremor])
2691    ],[])
2695 dnl  Speex plugins
2697 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2698 have_speexdsp="no"
2699 AS_IF([test "${enable_speex}" != "no"], [
2700   PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2701     have_speexdsp="yes"
2702   ], [
2703     AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2704   ])
2706 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2709 dnl  Opus plugin
2711 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2714 dnl  theora decoder plugin
2716 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2719 dnl  Daala decoder plugin
2721 PKG_ENABLE_MODULES_VLC([DAALA], [], [ogg daaladec daalaenc], [experimental daala codec], [disabled])
2724 dnl  schroedinger decoder plugin (for dirac format video)
2726 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2729 dnl  PNG decoder module
2731 AC_ARG_ENABLE(png,
2732   [  --enable-png            PNG support (default enabled)])
2733 AS_IF([test "${enable_png}" != "no"], [
2734 AC_CHECK_HEADERS(png.h, [
2735   VLC_SAVE_FLAGS
2736   LDFLAGS="${LDFLAGS} -lz $LIBM"
2737   AC_CHECK_LIB(png, png_set_rows, [
2738     VLC_ADD_PLUGIN([png])
2739   ], [], [-lz $LIBM])
2740   VLC_RESTORE_FLAGS
2741   ])
2745 dnl  JPEG decoder module
2747 AC_ARG_ENABLE(jpeg,
2748   [  --enable-jpeg           JPEG support (default enabled)])
2749 AS_IF([test "${enable_jpeg}" != "no"], [
2750 AC_CHECK_HEADERS(jpeglib.h, [
2751   VLC_ADD_PLUGIN([jpeg])
2752   ])
2756 dnl  BPG decoder module
2758 AC_ARG_ENABLE(bpg,
2759   [  --enable-bpg           BPG support (default disabled)])
2760 AS_IF([test "${enable_bpg}" != "no"], [
2761 AC_CHECK_HEADERS(libbpg.h, [
2762   VLC_ADD_PLUGIN([bpg])
2763   ])
2767 dnl H262 encoder plugin (lib262)
2769 AC_ARG_ENABLE(x262,
2770   [  --enable-x262           H262 encoding support with static libx262 (default disabled)])
2771 if test "${enable_x262}" != "no"; then
2772     PKG_CHECK_MODULES(X262, x262, [
2773         VLC_ADD_PLUGIN([x262])
2774         VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
2775         AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2776           VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
2777         ])
2778         VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
2779         if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
2780           VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
2781         fi
2782     ], [
2783        if test "${enable_x262}" = "yes"; then
2784         AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
2785        fi
2786     ])
2789 dnl x265 encoder
2790 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
2793 dnl H264 encoder plugin (10-bit lib264)
2795 AC_ARG_ENABLE(x26410b,
2796   [  --enable-x26410b           H264 10-bit encoding support with static libx264 (default disabled)])
2797 if test "${enable_x26410b}" != "no"; then
2798     PKG_CHECK_MODULES(X26410B, x26410b, [
2799         VLC_ADD_PLUGIN([x26410b])
2800         VLC_ADD_LIBS([x26410b],[${X26410B_LIBS}])
2801         AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2802           VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
2803         ])
2804         VLC_ADD_CFLAGS([x26410b],[${X26410B_CFLAGS}])
2805         if echo ${X26410B_LIBS} |grep -q 'pthreadGC2'; then
2806           VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
2807         fi
2808     ], [
2809        if test "${enable_x26410b}" = "yes"; then
2810         AC_MSG_ERROR([x26410b module doesn't work without staticly compiled libx264.a])
2811        fi
2812     ])
2817 dnl H264 encoder plugin (using libx264)
2819 AC_ARG_ENABLE(x264,
2820   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
2821 if test "${enable_x264}" != "no"; then
2822       PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2823         VLC_ADD_PLUGIN([x264])
2824         VLC_ADD_LIBS([x264],[${X264_LIBS}])
2826         AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2827           VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
2828         ])
2830         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2831         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2832           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2833         fi
2834       ],[
2835         if test "${enable_x264}" = "yes"; then
2836             AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2837           fi
2838       ])
2842 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
2844 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
2847 dnl libfluidsynth (MIDI synthetizer) plugin
2849 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
2852 dnl Teletext Modules
2853 dnl vbi decoder plugin (using libzbvi)
2854 dnl telx module
2855 dnl uncompatible
2857 AC_ARG_ENABLE(zvbi,
2858   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2859                   libzvbi (default enabled)]))
2860 AC_ARG_ENABLE(telx,
2861   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2862                   zvbi) (default enabled if zvbi is absent)]))
2864 AS_IF( [test "${enable_zvbi}" != "no"],[
2865     PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2866         [
2867           VLC_ADD_PLUGIN([zvbi])
2868           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2869           AS_IF( [test "${enable_telx}" = "yes"],[
2870                   AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2871                   ])
2872         ],[
2873           AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2874         ])
2875     ])
2876 AS_IF( [test "${enable_telx}" != "no" ],[
2877   VLC_ADD_PLUGIN([telx])
2878   ])
2881 dnl libass subtitle rendering module
2883 AC_ARG_ENABLE(libass,
2884   [  --enable-libass         Subtitle support using libass (default enabled)])
2885 AS_IF( [test "${enable_libass}" != "no"], [
2886   PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
2887       [
2888         VLC_ADD_PLUGIN([libass])
2890         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
2891           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
2892            VLC_ADD_LIBS([libass],[-lfontconfig])
2893        ])
2894       ],[
2895         AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
2896       ])
2897   ])
2900 dnl ARIB subtitles rendering module
2902 AC_ARG_ENABLE(aribsub,
2903   [  --enable-aribsub        ARIB Subtitles support (default enabled)])
2904 AS_IF( [test "${enable_aribsub}" != "no" ],[
2905   PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
2906       have_aribb24="yes"
2907       VLC_ADD_PLUGIN([aribsub])
2908       VLC_ADD_LIBS([aribsub],[-laribb24])
2909       AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
2910     ],[
2911       AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
2912       have_aribb24="no"
2913   ])
2915 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
2918 dnl ARIB B25
2920 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
2923 dnl  kate decoder plugin
2925 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
2928 dnl  tiger rendering for kate decoder plugin
2930 AC_ARG_ENABLE(tiger,
2931 [  --enable-tiger          Tiger rendering library for Kate streams (default auto)])
2932 AS_IF([test "${enable_tiger}" != "no"], [
2933   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
2934       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
2935         AS_IF([test -n "${enable_tiger}"], [
2936           AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
2937         ])
2938   ])
2943 dnl  Video plugins
2946 EXTEND_HELP_STRING([Video plugins:])
2949 dnl  OpenGL
2951 PKG_CHECK_MODULES([EGL], [egl], [
2952   have_egl="yes"
2953 ], [
2954   have_egl="no"
2956 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
2958 have_gl="no"
2959 PKG_CHECK_MODULES([GL], [gl], [
2960   have_gl="yes"
2961 ], [
2962   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
2963 #ifdef _WIN32
2964 # include <GL/glew.h>
2965 #endif
2966 #include <GL/gl.h>
2967 ]], [
2968     [int t0 = GL_TEXTURE0;]])
2969   ], [
2970     GL_CFLAGS=""
2971     have_gl="yes"
2972     AS_IF([test "${SYS}" != "mingw32"], [
2973       GL_LIBS="-lGL"
2974     ], [
2975       GL_LIBS="-lopengl32"
2976     ])
2977   ])
2979 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
2981 dnl OpenGL ES 2: depends on EGL 1.1
2982 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
2983 dnl OpenGL ES 1: depends on EGL 1.0
2984 PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [disabled])
2987 dnl  Xlib
2990 AC_PATH_XTRA()
2991 AC_CHECK_HEADERS(X11/Xlib.h)
2994 dnl  X C Bindings modules
2996 AC_ARG_ENABLE(xcb,
2997   [  --enable-xcb            X11 support with XCB (default enabled)],, [
2998   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
2999     enable_xcb="yes"
3000   ], [
3001     enable_xcb="no"
3002   ])
3004 AC_ARG_ENABLE(xvideo,
3005   [  --enable-xvideo         XVideo support (default enabled)],, [
3006     enable_xvideo="$enable_xcb"
3009 have_xcb="no"
3010 have_xcb_keysyms="no"
3011 have_xcb_randr="no"
3012 have_xcb_xvideo="no"
3013 AS_IF([test "${enable_xcb}" != "no"], [
3014   dnl libxcb
3015   PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
3016   have_xcb="yes"
3017   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3018   PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
3019   PKG_CHECK_MODULES(XPROTO, [xproto])
3021   AS_IF([test "${enable_xvideo}" != "no"], [
3022     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [have_xcb_xvideo="yes"])
3023   ])
3025   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [have_xcb_randr="yes"])
3027   dnl xcb-utils
3028   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [have_xcb_keysyms="yes"], [
3029     AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
3030   ])
3032 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3033 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3034 AM_CONDITIONAL([HAVE_XCB_RANDR], [test "${have_xcb_randr}" = "yes"])
3035 AM_CONDITIONAL([HAVE_XCB_XVIDEO], [test "${have_xcb_xvideo}" = "yes"])
3039 dnl VDPAU needs X11
3041 AC_ARG_ENABLE(vdpau,
3042   [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3043 have_vdpau="no"
3044 AS_IF([test "${enable_vdpau}" != "no"], [
3045   PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3046     have_vdpau="yes"
3047     AS_IF([test "${no_x}" = "yes"], [
3048       AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3049     ])
3050   ], [
3051     AS_IF([test -n "${enable_vdpau}"], [
3052       AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3053     ])
3054   ])
3056 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3058 have_avcodec_vdpau="no"
3059 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3060   case "${avfork}" in
3061     libav) av_vdpau_ver="55.26.0" ;;
3062     ffmpeg) av_vdpau_ver="55.42.100" ;;
3063   esac
3064   PKG_CHECK_EXISTS([libavutil >= 52.4.0 libavcodec >= ${av_vdpau_ver}], [
3065     have_avcodec_vdpau="yes"
3066     AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3067   ], [
3068     AS_IF([test -n "${enable_vdpau}"], [
3069       AC_MSG_ERROR([libav libavutil >= 52.4.0 and libavcodec >= 55.26.0 are required for VDPAU decoding.])
3070     ], [
3071       AC_MSG_WARN([libav libavutil >= 52.4.0 and libavcodec >= 55.26.0 are required for VDPAU decoding.])
3072     ])
3073   ])
3075 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3079 dnl  Wayland
3081 AC_ARG_ENABLE(wayland,
3082   [AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)])])
3083 have_wayland="no"
3084 AC_ARG_VAR([WAYLAND_SCANNER], [Wayland scanner utility])
3086 AS_IF([test "${enable_wayland}" != "no"], [
3087   AC_MSG_CHECKING([for the Wayland scanner])
3088   AS_IF([test -z "$WAYLAND_SCANNER"], [
3089     PKG_CHECK_EXISTS([wayland-scanner], [
3090       WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3091     ], [
3092       WAYLAND_SCANNER="wayland-scanner"
3093     ])
3094   ])
3095   AC_MSG_RESULT([$WAYLAND_SCANNER])
3097   PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91], [
3098     have_wayland="yes"
3099   ], [
3100     AS_IF([test -n "${enable_wayland}"], [
3101       AC_MSG_ERROR([${WAYLAND_CLIENT_PKG_ERRORS}.])
3102     ])
3103   ])
3105   AS_IF([test "${have_egl}" = "yes"], [
3106     PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl], [
3107       have_wayland_egl="yes"
3108     ], [
3109       AS_IF([test -n "${enable_wayland}"], [
3110         AC_MSG_ERROR([${WAYLAND_EGL_PKG_ERRORS}.])
3111       ])
3112     ])
3113   ])
3115 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3116 AM_CONDITIONAL([HAVE_WAYLAND_EGL], [test "${have_wayland_egl}" = "yes"])
3120 dnl  SDL module
3122 AC_ARG_ENABLE(sdl,
3123   [  --enable-sdl            SDL support (default enabled)])
3124 AC_ARG_ENABLE(sdl-image,
3125   [  --enable-sdl-image      SDL image support (default enabled)])
3126 if test "${enable_sdl}" != "no"
3127 then
3128    PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3129       # SDL on Darwin is heavily patched and can only run SDL_image
3130       if test "${SYS}" != "darwin"; then
3131         VLC_ADD_PLUGIN([vout_sdl])
3132       fi
3134       # SDL_image
3135       AS_IF([ test "${enable_sdl_image}" != "no"],[
3136         PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3137           VLC_ADD_PLUGIN([sdl_image])],
3138           [ AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3139           ])
3140       ])
3141    ],[
3142      AC_MSG_WARN([${SDL_PKG_ERRORS}.])
3143    ])
3147 dnl  freetype module
3149 AC_ARG_ENABLE(freetype,
3150   [  --enable-freetype       freetype support   (default auto)])
3151 AC_ARG_ENABLE(fribidi,
3152   [  --enable-fribidi        fribidi support    (default auto)])
3153 AC_ARG_ENABLE(harfbuzz,
3154   [  --enable-harfbuzz       harfbuzz support   (default auto)])
3155 AC_ARG_ENABLE(fontconfig,
3156   [  --enable-fontconfig     fontconfig support (default auto)])
3158 AC_ARG_WITH([default-font],
3159     AS_HELP_STRING([--with-default-font=PATH],
3160         [Path to the default font]),
3161         [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3162             "$withval", [Default font])])
3163 AC_ARG_WITH([default-monospace-font],
3164     AS_HELP_STRING([--with-default-monospace-font=PATH],
3165         [Path to the default font]),
3166         [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3167             "$withval", [Default monospace font])])
3169 AC_ARG_WITH([default-font-family],
3170     AS_HELP_STRING([--with-default-font-family=NAME],
3171         [Path to the default font family]),
3172         [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3173             "$withval", [Default font family])])
3174 AC_ARG_WITH([default-monospace-font-family],
3175     AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3176         [Path to the default font family]),
3177         [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3178             "$withval", [Default monospace font family])])
3180 have_freetype="no"
3181 have_fontconfig="no"
3182 have_fribidi="no"
3183 have_harfbuzz="no"
3185 if test "${enable_freetype}" != "no"; then
3186    PKG_CHECK_MODULES(FREETYPE, freetype2, [
3187       have_freetype="yes"
3188       VLC_ADD_CPPFLAGS([skins2],[${FREETYPE_CFLAGS}])
3189       VLC_ADD_LIBS([skins2],[${FREETYPE_LIBS}])
3191       dnl fontconfig support
3192       if test "${SYS}" != "mingw32"; then
3193           if test "${enable_fontconfig}" != "no"; then
3194             AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3195               have_fontconfig="yes"
3196             ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3197           fi
3198       fi
3200       dnl fribidi support
3201       if test "${enable_fribidi}" != "no"; then
3202         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3203           have_fribidi="yes"
3204           VLC_ADD_CPPFLAGS([skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3205           VLC_ADD_LIBS([skins2], [${FRIBIDI_LIBS}])
3206         ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional text and complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3207       fi
3209       dnl harfbuzz support
3210       if test "${have_fribidi}" != "no"; then
3211         if test "${enable_harfbuzz}" != "no"; then
3212           PKG_CHECK_MODULES(HARFBUZZ, harfbuzz, [
3213             have_harfbuzz="yes"
3214             VLC_ADD_CPPFLAGS([skins2], [${HARFBUZZ_CFLAGS} -DHAVE_HARFBUZZ])
3215             VLC_ADD_LIBS([skins2], [${HARFBUZZ_LIBS}])
3216           ],[AC_MSG_WARN([${HARFBUZZ_PKG_ERRORS}. Support for complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3217         fi
3218       fi
3219   ],[
3220   AS_IF([test -n "${enable_freetype}"],[
3221     AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3222     ])
3223   ])
3226 AM_CONDITIONAL([HAVE_FREETYPE], [test "${have_freetype}" = "yes"])
3227 AM_CONDITIONAL([HAVE_FONTCONFIG], [test "${have_fontconfig}" = "yes"])
3228 AM_CONDITIONAL([HAVE_FRIBIDI], [test "${have_fribidi}" = "yes"])
3229 AM_CONDITIONAL([HAVE_HARFBUZZ], [test "${have_harfbuzz}" = "yes"])
3233 dnl  QuartzText vout module (iOS/Mac OS)
3235 AC_ARG_ENABLE(macosx-quartztext,
3236   [  --enable-macosx-quartztext   Mac OS X quartz text module (default enabled on Mac OS X)])
3237 if test "x${enable_macosx_quartztext}" != "xno" &&
3238   (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3239 then
3240   VLC_ADD_PLUGIN([quartztext])
3244 dnl  SVG module (text rendering and image decoding)
3246 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3247 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3250 dnl  android surface module
3252 AC_ARG_ENABLE(android-surface,
3253   [  --enable-android-surface   Android Surface video output module (default disabled)])
3254 if test "${enable_android_surface}" = "yes"; then
3255      VLC_ADD_PLUGIN([android_surface])
3256      VLC_ADD_PLUGIN([android_window])
3260 dnl  Windows DirectX module
3263 AC_ARG_ENABLE(directx,
3264   [AS_HELP_STRING([--enable-directx],
3265     [Microsoft DirectX support (default enabled on Windows)])],, [
3266   AS_IF([test "${SYS}" = "mingw32"], [
3267     enable_directx="yes"
3268   ], [
3269     enable_directx="no"
3270   ])
3272 have_directx="no"
3273 AS_IF([test "${enable_directx}" != "no"], [
3274   dnl DirectDraw
3275   AC_CHECK_HEADERS(ddraw.h, [
3276     have_directx="yes"
3277   ], [
3278     AC_MSG_ERROR([Cannot find DirectX headers!])
3279   ])
3281   dnl OpenGL
3282   AC_CHECK_HEADERS(GL/wglew.h, [
3283     VLC_ADD_PLUGIN([glwin32])
3284   ],, [
3285     #include <windows.h>
3286     #include <GL/gl.h>
3287   ])
3289   dnl Direct3D11
3290   AC_CHECK_HEADERS(d3d11.h, [
3291     VLC_ADD_PLUGIN([direct3d11])
3292   ])
3294   dnl Direct3D9
3295   AC_CHECK_HEADERS(d3d9.h, [
3296     VLC_ADD_PLUGIN([direct3d9])
3297   ])
3299   dnl Direct2D
3300   AC_CHECK_HEADERS(d2d1.h, [
3301     VLC_ADD_PLUGIN([direct2d])
3302   ])
3304 AM_CONDITIONAL([HAVE_DIRECTX], [test "$have_directx" = "yes"])
3307 dnl  Linux framebuffer module
3309 AC_CHECK_HEADER([linux/fb.h], [
3310   VLC_ADD_PLUGIN([fb])
3315 dnl  DirectFB module
3316 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3317 dnl  TODO: support for static linking
3319 AC_ARG_ENABLE(directfb,
3320   [  --enable-directfb       DirectFB support (default disabled)])
3321 AC_ARG_WITH(directfb,
3322   [  --with-directfb=PATH    path to DirectFB headers and libraries])
3324 if test "${enable_directfb}" = "yes"; then
3325     have_directfb="false"
3326     CPPFLAGS_mydirectfb=
3327     LIBS_mydirectfb=
3328     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3329         dnl Trying the given location
3330         VLC_SAVE_FLAGS
3332         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3333         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/ -L${with_directfb}/src/.libs/"
3335         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3336         LIBS="${LIBS} ${LIBS_new}"
3338         dnl FIXME: too obscure
3339         AC_CHECK_HEADER([directfb.h], [
3340             AC_CHECK_LIB([direct],[direct_initialize], [
3341                 AC_CHECK_LIB([fusion], [fusion_enter], [
3342                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3343                 ], have_directfb="false")
3344             ], have_directfb="false")
3345         ], have_directfb="false")
3347         VLC_RESTORE_FLAGS
3349         if test "${have_directfb}" = "true"; then
3350             LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3351             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3352         fi
3353     else
3354         dnl Look for directfb-config
3355         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3356         if test "${DIRECTFB_CONFIG}" != "no"; then
3357             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3358             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3359             have_directfb="true"
3360         else
3361             dnl Trying with pkg-config
3362             PKG_CHECK_MODULES(DIRECTFB, directfb, [
3363                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3364                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3365                 have_directfb="true"
3366                 ], [have_directfb="false"])
3367         fi
3368     fi
3369     if test "${have_directfb}" = "true"; then
3370         VLC_ADD_PLUGIN([directfb])
3371         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3372         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3373     else
3374         AC_MSG_ERROR([${DIRECTFB_PKG_ERRORS}.])
3375     fi
3379 dnl  AA plugin
3381 AC_ARG_ENABLE(aa,
3382   [  --enable-aa             aalib output (default disabled)])
3383 if test "${enable_aa}" = "yes"
3384 then
3385   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3386   if test "${have_aa}" = "true"
3387   then
3388     VLC_ADD_PLUGIN([aa])
3389   fi
3393 dnl  libcaca plugin
3395 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3398 dnl  OS/2 KVA plugin
3400 AC_ARG_ENABLE(kva,
3401   [AS_HELP_STRING([--enable-kva],
3402     [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
3403   AS_IF([test "$SYS" = "os2"], [
3404     enable_kva="yes"
3405   ])
3407 have_kva="no"
3408 KVA_LIBS=""
3409 AS_IF([test "$enable_kva" != "no"], [
3410   AC_CHECK_HEADERS([kva.h], [
3411     have_kva="yes"
3412     AC_CHECK_LIB(kva, main, [
3413       KVA_LIBS="-lkva"
3414     ])
3415   ])
3417 AC_SUBST(KVA_LIBS)
3418 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3421 dnl MMAL plugin
3423 AC_ARG_ENABLE(mmal,
3424   AS_HELP_STRING([--enable-mmal],
3425     [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3426 if test "${enable_mmal}" != "no"; then
3427   VLC_SAVE_FLAGS
3428   LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
3429   CPPFLAGS="${CPPFLAGS} -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux"
3430   AC_CHECK_HEADERS(interface/mmal/mmal.h,
3431     [ AC_CHECK_LIB(bcm_host, vc_tv_unregister_callback_full, [
3432         have_mmal="yes"
3433         VLC_ADD_PLUGIN([mmal])
3434         VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3435         VLC_ADD_CFLAGS([mmal],[ -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux ])
3436         VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lvchostif ]) ], [
3437           AS_IF([test "${enable_mmal}" = "yes"],
3438             [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3439             [ AC_MSG_WARN([Cannot find bcm library...]) ])
3440           ],
3441         [])
3442     ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3443       [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3444       [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3445   VLC_RESTORE_FLAGS
3447 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3450 dnl  Audio plugins
3453 EXTEND_HELP_STRING([Audio plugins:])
3456 dnl  Pulseaudio module
3458 AC_ARG_ENABLE(pulse,
3459   [AS_HELP_STRING([--enable-pulse],
3460     [use the PulseAudio client library (default auto)])])
3461 have_pulse="no"
3462 AS_IF([test "${enable_pulse}" != "no"], [
3463   PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3464     have_pulse="yes"
3465   ], [
3466     AS_IF([test "x${enable_pulse}" != "x"], [
3467       AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3468     ])
3469   ])
3471 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3474 dnl  ALSA module
3476 AC_ARG_ENABLE(alsa,
3477   [AS_HELP_STRING([--enable-alsa],
3478     [support the Advanced Linux Sound Architecture (default auto)])],, [
3479   AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3480     enable_alsa="yes"
3481   ])
3483 have_alsa="no"
3484 AS_IF([test "${enable_alsa}" != "no"], [
3485   PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3486     have_alsa="yes"
3487   ], [
3488     AS_IF([test "x${enable_alsa}" != "x"], [
3489       AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required.])
3490     ])
3491   ])
3493 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3496 dnl  Open Sound System module
3498 AC_ARG_ENABLE(oss,
3499   [AS_HELP_STRING([--enable-oss],
3500     [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)])],, [
3501   AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3502     enable_oss="no"
3503   ])
3505 have_oss="no"
3506 OSS_LIBS=""
3507 AS_IF([test "$enable_oss" != "no"], [
3508   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3509     have_oss="yes"
3510     AC_CHECK_LIB(ossaudio, main, [
3511       OSS_LIBS="-lossaudio"
3512     ])
3513   ])
3515 AC_SUBST(OSS_LIBS)
3516 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3519 dnl  OpenBSD sndio module
3521 AC_ARG_ENABLE([sndio],
3522   [AS_HELP_STRING([--disable-sndio],
3523     [support the OpenBSD sndio (default auto)])],, [
3524   AS_IF([test "$SYS" = "openbsd"], [
3525     enable_sndio="yes"
3526   ])
3528 have_sndio="no"
3529 AS_IF([test "$enable_sndio" != "no"], [
3530   AC_CHECK_HEADER([sndio.h], [
3531     have_sndio="yes"
3532   ])
3534 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3537 dnl  Windows Audio Session plugin
3539 AC_ARG_ENABLE([wasapi],
3540   [AS_HELP_STRING([--enable-wasapi],
3541     [use the Windows Audio Session API (default auto)])
3543 have_wasapi="no"
3544 AS_IF([test "$enable_wasapi" != "no"], [
3545   AC_CHECK_HEADER([audioclient.h], [
3546     have_wasapi="yes"
3547   ], [
3548     AS_IF([test "x${enable_wasapi}" != "x"], [
3549       AC_MSG_ERROR([Windows Audio Session API not found.])
3550     ])
3551   ])
3553 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3556 dnl  AudioQueue plugin
3558 AC_ARG_ENABLE(audioqueue,
3559   [  --enable-audioqueue     AudioQueue audio module (default disabled)])
3560 if test "${enable_audioqueue}" = "yes"
3561 then
3562   VLC_ADD_PLUGIN([audioqueue])
3566 dnl  JACK modules
3568 AC_ARG_ENABLE(jack,
3569   [AS_HELP_STRING([--disable-jack],
3570     [do not use jack (default auto)])])
3571 have_jack="no"
3572 AS_IF([test "${enable_jack}" != "no"], [
3573     PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3574       [ have_jack=yes ],
3575       [
3576       AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3578       PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3579       [ have_jack=yes ],
3580       [
3581       AS_IF([test -n "${enable_jack}"],
3582          [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3583          [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3584       ])
3585     ])
3587 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3590 dnl  OpenSLES Android
3592 AC_ARG_ENABLE(opensles,
3593   [  --enable-opensles       Android OpenSL ES audio module (default disabled)])
3594 if test "${HAVE_ANDROID}" = "1"; then
3595   if test "${enable_opensles}" = "yes"; then
3596       AC_CHECK_HEADERS(SLES/OpenSLES.h,
3597         [ VLC_ADD_PLUGIN([opensles_android]) ],
3598         [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3599   fi
3603 dnl libsamplerate plugin
3605 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3608 dnl  OS/2 KAI plugin
3610 AC_ARG_ENABLE(kai,
3611   [AS_HELP_STRING([--enable-kai],
3612     [support the K Audio Interface KAI (default enabled on OS/2)])],, [
3613   AS_IF([test "$SYS" = "os2"], [
3614     enable_kai="yes"
3615   ])
3617 have_kai="no"
3618 KAI_LIBS=""
3619 AS_IF([test "$enable_kai" != "no"], [
3620   AC_CHECK_HEADERS([kai.h], [
3621     have_kai="yes"
3622     AC_CHECK_LIB(kai, main, [
3623       KAI_LIBS="-lkai"
3624     ])
3625   ])
3627 AC_SUBST(KAI_LIBS)
3628 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3631 dnl  chromaprint audio track fingerprinter
3633 m4_pushdef([libchromaprint_version], 0.6.0)
3634 PKG_WITH_MODULES([CHROMAPRINT],[libchromaprint >= libchromaprint_version],
3635     VLC_ADD_PLUGIN([stream_out_chromaprint]),
3636     AS_IF([test "${enable_chromaprint}" = "yes"],
3637         [AC_MSG_ERROR(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)],
3638         [AC_MSG_WARN(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)]
3639          ),
3640     [(Chromaprint based audio fingerprinter)],[auto])
3641 m4_popdef([libchromaprint_version])
3644 dnl  Chromecast streaming support
3646 m4_pushdef([protobuf_lite_version], 2.5.0)
3647 AC_ARG_VAR(PROTOC, [protobuf compiler])
3648 AC_PATH_PROGS(PROTOC, protoc, no)
3649 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3650     AS_IF([test "x${PROTOC}" != "xno"], [
3651         build_chromecast="yes"
3652     ], [
3653     AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3654     ])
3655 ], [
3656     AS_IF([test "${enable_chromecast}" = "yes"],
3657         AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3658         AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3659     )
3660     enable_chromecast="no"
3661 ], [(Chromecast streaming support)], [auto])
3662 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3663 m4_popdef([protobuf_lite_version])
3666 dnl  Interface plugins
3669 EXTEND_HELP_STRING([Interface plugins:])
3672 dnl QT
3674 AC_ARG_ENABLE(qt, [
3675   AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)])],, [
3676   AS_IF([test "${SYS}" = "darwin"], [
3677     enable_qt="no"
3678   ])
3680 AS_IF([test "${enable_qt}" != "no"], [
3681   PKG_CHECK_MODULES([QT], [Qt5Core >= 5.1.0 Qt5Widgets Qt5Gui], [
3682       PKG_CHECK_MODULES([QTX11], [Qt5X11Extras], [
3683           VLC_ADD_LIBS([qt4],[${QTX11_LIBS}])
3684           VLC_ADD_CXXFLAGS([qt4],[${QTX11_CFLAGS} -DQT5_HAS_X11])
3685       ],[
3686           AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3687       ])
3688       QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3689       QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3690       AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3691       AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3692       AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3693     ], [
3694       PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [
3695         AS_IF([test -n "${enable_qt}"],[
3696           AC_MSG_ERROR([${QT_PKG_ERRORS}.])
3697         ],[
3698           AC_MSG_WARN([${QT_PKG_ERRORS}.])
3699         ])
3700         enable_qt="no"
3701       ])
3702       QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)"
3703       AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3704       AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3705       AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3706     ])
3708 AS_IF([test "${enable_qt}" != "no"], [
3709   VLC_ADD_PLUGIN([qt4])
3710   ALIASES="${ALIASES} qvlc"
3712 AM_CONDITIONAL(ENABLE_QT4, [test "$enable_qt" != "no"])
3715 dnl Simple test for skins2 dependency
3717 AS_IF([test "$enable_qt" = "no"], [
3718   AS_IF([test "${enable_skins2}" = "yes"], [
3719     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.])
3720   ], [
3721     enable_skins2="no"
3722     AC_MSG_WARN([The skins2 module depends on the Qt4 interface, Qt4 is not built so skins2 is disabled.])
3723   ])
3727 dnl Skins2 module
3729 AC_ARG_ENABLE(skins2,
3730   [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3731 AS_IF([test "${enable_skins2}" != "no"], [
3732   have_skins_deps="yes"
3734   dnl Win32
3735   AS_IF([test "${SYS}" = "mingw32"], [
3736     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3737     VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3738   dnl MacOS
3739   ], [test "${SYS}" = "darwin"], [
3740     VLC_ADD_CPPFLAGS([skins2],[ -DMACOSX_SKINS])
3741     VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
3742   dnl OS/2
3743   ], [test "${SYS}" = "os2"], [
3744     VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3745   dnl Linux/Unix
3746   ], [
3747     PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3748     PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3749     PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3750     VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3751     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3752   ])
3754   dnl for All OSes
3755   VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3757   dnl we need freetype
3758   AS_IF([test "${have_freetype}" != "yes"], [
3759     have_skins_deps="no"
3760   ])
3762   AS_IF([test "${have_skins_deps}" = "no"], [
3763     AS_IF([test "x${enable_skins2}" = "x"], [
3764       AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3765     ], [
3766       AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
3767     ])
3768     enable_skins2="no"
3769   ], [
3770     VLC_ADD_PLUGIN([skins2])
3771     ALIASES="${ALIASES} svlc"
3772     enable_skins2="yes"
3773   ])
3775 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3777 AC_ARG_ENABLE(libtar,
3778   [  --enable-libtar         libtar support for skins2 (default auto)])
3779 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3780   AC_CHECK_HEADERS(libtar.h, [
3781     VLC_ADD_LIBS([skins2],[-ltar])
3782   ])
3786 dnl  MacOS X gui module
3788 AC_ARG_ENABLE(macosx,
3789   [  --enable-macosx         Mac OS X gui support (default enabled on Mac OS X)])
3790 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3791 then
3792   VLC_ADD_LIBS([macosx], [-Wl,-framework,Cocoa -Wl,-framework,Carbon -Wl,-framework,CoreServices])
3793   VLC_ADD_OBJCFLAGS([macosx], [-fobjc-exceptions] )
3794   VLC_ADD_PLUGIN([macosx])
3796   VLC_ADD_LIBS([macosx], [-Wl,-framework,QTKit -Wl,-framework,IOKit -Wl,-framework,AddressBook -Wl,-framework,WebKit -Wl,-framework,CoreAudio -Wl,-framework,SystemConfiguration -Wl,-framework,ScriptingBridge])
3798   if test ! -d ${CONTRIB_DIR}/Sparkle.framework
3799   then
3800     AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3801   fi
3802   VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle])
3803   VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3805   if test ! -d ${CONTRIB_DIR}/BGHUDAppKit.framework
3806   then
3807     AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}])
3808   fi
3809   VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,BGHUDAppKit])
3810   VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3812 AM_CONDITIONAL(ENABLE_MACOSX_UI, [test "$enable_macosx" != "no"])
3815 dnl  Minimal Mac OS X module
3817 AC_ARG_ENABLE(minimal-macosx,
3818   [  --enable-minimal-macosx Minimal Mac OS X support (default disabled)])
3819 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
3820 then
3821   VLC_ADD_LIBS([minimal_macosx], [-Wl,-framework,Cocoa])
3822   VLC_ADD_OBJCFLAGS([minimal_macosx], [-fobjc-exceptions] )
3823   VLC_ADD_PLUGIN([minimal_macosx])
3825 AM_CONDITIONAL(ENABLE_MINIMAL_MACOSX, [test "$enable_minimal_macosx" != "no"])
3828 dnl  MacOS X dialog provider
3830 AC_ARG_ENABLE(macosx-dialog-provider,
3831   [  --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3832 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3833   (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3834 then
3835   VLC_ADD_LIBS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3836   VLC_ADD_PLUGIN([macosx_dialog_provider])
3838 AM_CONDITIONAL(ENABLE_MACOSX_DIALOG_PROVIDER, [test "$enable_macosx_dialog_provider" != "no"])
3841 dnl  ncurses module
3843 AC_ARG_ENABLE(ncurses,
3844 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
3845 have_ncurses="no"
3846 AS_IF([test "${enable_ncurses}" != "no"] ,[
3847   PKG_CHECK_MODULES([NCURSES], [ncursesw], [
3848     have_ncurses="yes"
3849     ALIASES="${ALIASES} nvlc"
3850   ], [
3851     AS_IF([test -n "${enable_ncurses}"], [
3852       AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
3853     ])
3854   ])
3856 AM_CONDITIONAL([HAVE_NCURSES], [test "${have_ncurses}" = "yes"])
3859 dnl  Lirc plugin
3861 AC_ARG_ENABLE(lirc,
3862   [  --enable-lirc           lirc support (default disabled)])
3863 have_lirc="no"
3864 AS_IF([test "${enable_lirc}" = "yes"], [
3865   AC_CHECK_HEADER(lirc/lirc_client.h, [
3866     AC_CHECK_LIB(lirc_client, lirc_init, [
3867       have_lirc="true"
3868     ])
3869   ])
3871 AM_CONDITIONAL([HAVE_LIRC], [test "${have_lirc}" = "yes"])
3873 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3875 dnl  goom visualization plugin
3877 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3880 dnl libprojectM visualization plugin
3882 AC_ARG_ENABLE(projectm,
3883   [  --enable-projectm       projectM visualization plugin (default enabled)])
3884 AS_IF([test "${enable_projectm}" != "no"],
3885   [
3886     PKG_CHECK_MODULES(PROJECTM, libprojectM,
3887     [
3888       VLC_ADD_PLUGIN([projectm])
3889       PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
3890         [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3891         [ AC_MSG_WARN( [Using libprojectM version 1] )
3892       ])
3893     ],[
3894       AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
3895     ])
3896   ])
3899 dnl Vovoid VSXu visualization plugin
3901 AC_ARG_ENABLE(vsxu,
3902   [  --enable-vsxu           Vovoid VSXu visualization plugin (default auto)])
3903 AS_IF([test "${enable_vsxu}" != "no"],
3904   [
3905     PKG_CHECK_MODULES(VSXU, libvsxu,
3906     [
3907       VLC_ADD_PLUGIN([vsxu])
3908     ],[
3909       AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
3910     ])
3911   ])
3914 dnl  AtmoLight (homemade Philips Ambilight clone)
3916 AC_ARG_ENABLE(atmo,
3917 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
3918                 (default enabled)]),, [enable_atmo="yes"])
3919 AS_IF([test "${enable_atmo}" != no], [
3920   AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
3921     VLC_ADD_PLUGIN([atmo])
3922   ])
3925 EXTEND_HELP_STRING([Service Discovery plugins:])
3927 dnl  Bonjour services discovery
3928 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
3931 dnl  libudev services discovery
3932 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
3935 dnl MTP devices services discovery
3936 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
3939 dnl UPnP Plugin (Intel SDK)
3941 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
3943 EXTEND_HELP_STRING([Misc options:])
3946 dnl  libxml2 module
3948 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3952 dnl libgcrypt
3954 AC_ARG_ENABLE(libgcrypt,
3955   [  --disable-libgcrypt     gcrypt support (default enabled)])
3956 AS_IF([test "${enable_libgcrypt}" != "no"], [
3957   AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
3958     libgcrypt-config --version >/dev/null || \
3959         AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
3960     AC_CHECK_LIB(gcrypt, gcry_control, [
3961       have_libgcrypt="yes"
3962       GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
3963       GCRYPT_LIBS="`libgcrypt-config --libs`"
3964     ], [
3965       AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or pass --disable-libgcrypt.])
3966     ], [`libgcrypt-config --libs`])
3967   ], [
3968     AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
3969   ], [#include <gcrypt.h>]
3970   )
3973 AC_SUBST(GCRYPT_CFLAGS)
3974 AC_SUBST(GCRYPT_LIBS)
3975 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
3978 dnl TLS/SSL
3980 AC_ARG_ENABLE(gnutls,
3981   [  --enable-gnutls         GNU TLS TLS/SSL support (default enabled)])
3982 AS_IF([test "${enable_gnutls}" != "no"], [
3983   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.2.0], [
3984     VLC_ADD_PLUGIN([gnutls])
3985   ], [
3986     AS_IF([test -n "${enable_gnutls}"], [
3987       AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
3988     ])
3989   ])
3994 dnl Taglib plugin
3996 AC_ARG_ENABLE(taglib,
3997   [AS_HELP_STRING([--disable-taglib],
3998     [do not use TagLib (default enabled)])])
3999 AS_IF([test "${enable_taglib}" != "no"], [
4000   PKG_CHECK_MODULES(TAGLIB, taglib >= 1.9, [
4001     VLC_ADD_PLUGIN([taglib])
4002   ], [
4003     AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4008 dnl update checking system
4010 AC_ARG_ENABLE(update-check,
4011   [  --enable-update-check   update checking system (default disabled)])
4012 if test "${enable_update_check}" = "yes"
4013 then
4014   if test "${have_libgcrypt}" != "yes"
4015   then
4016     AC_MSG_ERROR([libgcrypt is required for update checking system])
4017   fi
4018   VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
4019   VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
4020   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4024 dnl Growl notification plugin
4026 AC_ARG_ENABLE(growl,
4027   [  --enable-growl          growl notification plugin (default disabled)],,
4028   [enable_growl=no])
4029 AS_IF([test "${enable_growl}" != "no"], [
4030     AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl.framework/Versions/A/Headers/Growl.h, [
4031       VLC_ADD_PLUGIN([growl])
4032       VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR} -Wl,-framework,Growl,-framework,Foundation])
4033       VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}])
4034       VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
4035     ])
4036   ]
4040 dnl Libnotify notification plugin
4042 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
4045 dnl  Endianness check
4047 AC_C_BIGENDIAN
4048 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4049   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4050 ], [
4051   DEFS_BIGENDIAN=""
4053 AC_SUBST(DEFS_BIGENDIAN)
4056 dnl Where to install KDE solid .desktop
4058 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4059 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4060   KDE4_CONFIG="kde4-config"
4063 AC_ARG_WITH(kde-solid,
4064   AS_HELP_STRING([--with-kde-solid=PATH],
4065                  [KDE Solid actions directory (auto)]),, [
4067 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" ; then
4068   with_kde_solid="yes"
4071 soliddatadir=""
4072 AS_IF([test "${with_kde_solid}" != "no"], [
4073   AS_IF([test "${with_kde_solid}" = "yes"], [
4074     kde4datadir="`${KDE4_CONFIG} --install data`"
4075     AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4076     soliddatadir="${kde4datadir}/solid/actions"
4077   ], [
4078     soliddatadir="${with_kde_solid}"
4079   ])
4081 AC_SUBST(soliddatadir)
4082 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4084 EXTEND_HELP_STRING([Components:])
4087 dnl  the VLC binary
4089 AC_ARG_ENABLE(vlc,
4090   [  --enable-vlc            build the VLC media player (default enabled)])
4091 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4093 AC_ARG_ENABLE(macosx-vlc-app,
4094   [  --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4095 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4096     (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4099 dnl  Stuff used by the program
4101 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4102 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4103 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4104 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4105 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4106 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4107 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4108 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4109 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4110 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4111 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4112 AC_SUBST(COPYRIGHT_MESSAGE)
4113 AC_SUBST(VERSION_MESSAGE)
4114 AC_SUBST(VERSION_MAJOR)
4115 AC_SUBST(VERSION_MINOR)
4116 AC_SUBST(VERSION_REVISION)
4117 AC_SUBST(VERSION_EXTRA)
4118 AC_SUBST(COPYRIGHT_YEARS)
4119 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4120 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4121 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4123 dnl  Handle substvars that use $(top_srcdir)
4125 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4128 dnl  Configuration is finished
4130 AC_SUBST(SYS)
4131 AC_SUBST(ARCH)
4132 AC_SUBST(ALIASES)
4133 AC_SUBST(ASM)
4134 AC_SUBST(MOC)
4135 AC_SUBST(RCC)
4136 AC_SUBST(UIC)
4137 AC_SUBST(WINDRES)
4138 AC_SUBST(WINE_SDK_PATH)
4139 AC_SUBST(LIBEXT)
4140 AC_SUBST(AM_CPPFLAGS)
4141 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4142 AC_SUBST(FILE_LIBVLCCORE_DLL)
4143 AC_SUBST(FILE_LIBVLC_DLL)
4145 AC_CONFIG_FILES([
4146   Makefile
4147   doc/Makefile
4148   modules/Makefile
4149   m4/Makefile
4150   po/Makefile.in
4151   share/Makefile
4152   compat/Makefile
4153   src/Makefile
4154   lib/Makefile
4155   bin/Makefile
4156   test/Makefile
4157   modules/gui/ios_dialog_provider/Makefile
4158   modules/gui/macosx/Makefile
4159   modules/gui/minimal_macosx/Makefile
4160   modules/gui/macosx_dialog_provider/Makefile
4161   modules/gui/qt4/Makefile
4162   modules/gui/skins2/Makefile
4163   modules/hw/mmal/Makefile
4166 AM_COND_IF([HAVE_WIN32], [
4167   AC_CONFIG_FILES([
4168     extras/package/win32/NSIS/spad.nsi
4169     extras/package/win32/NSIS/vlc.win32.nsi
4170     extras/package/win32/msi/config.wxi
4171   ])
4174 AM_COND_IF([HAVE_DARWIN], [
4175   AC_CONFIG_FILES([
4176     extras/package/macosx/Info.plist
4177     extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4178   ])
4181 dnl Generate makefiles
4182 AC_OUTPUT
4184 dnl Do we have to use make or gmake ?
4185 if make --version 2>&1|grep -q GNU
4186 then
4187     # GNU make, all seems good
4188     MAKE=make
4189 else
4190     # Known GNU make alias (on BSD)
4191     MAKE=gmake
4193 dnl Shortcut to nice compile message
4194 if test -n $SHELL; then
4195   SHELL=${CONFIG_SHELL-/bin/sh}
4197 rm -f compile
4198 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4199 echo "#! $SHELL
4200 rm -f .error\$\$
4201 ERROR=0
4202 export PATH=\"$PATH\" LANG=C
4203 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4204 test -f .error\$\$ && ERROR=1
4205 rm -f .error\$\$
4206 exit \$ERROR" >compile
4207 chmod a+x compile
4209 echo "
4210 libvlc configuration
4211 --------------------
4212 version               : ${VERSION}
4213 system                : ${SYS}
4214 architecture          : ${ARCH}
4215 optimizations         : ${enable_optimizations}"
4216 if test "${enable_vlc}" != "no"; then
4217 echo "vlc aliases           :${ALIASES}"
4218 else
4219 echo "build vlc executable  : no"
4221 echo "
4222 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."