vout: ios: voutDisplay is now constant in glESView
[vlc.git] / configure.ac
blobaf8c3a348ed6387c947c11b9c17fac2ec939f7e0
1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 1999-2018 VLC authors and VideoLAN])
5 AC_INIT(vlc, 4.0.0-dev)
6 VERSION_MAJOR=4
7 VERSION_MINOR=0
8 VERSION_REVISION=0
9 VERSION_EXTRA=0
10 VERSION_DEV=dev
12 PKGDIR="vlc"
13 AC_SUBST(PKGDIR)
15 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
16 CODENAME="Otto Chriek"
17 COPYRIGHT_YEARS="1996-2018"
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 vlclibdir="\${libdir}/\${PKGDIR}"
37 AC_SUBST(vlclibdir)
39 dnl
40 dnl Check for tools
41 dnl
42 AC_PROG_CC
43 AC_USE_SYSTEM_EXTENSIONS
44 VLC_PROG_CC_C11
45 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to 2 to get glibc warnings.])
46 AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
47 AH_TOP([
48 #ifndef _REENTRANT
49 # define _REENTRANT
50 #endif
52 AC_DEFINE([_THREAD_SAFE],, [Same as _REENTANT for some other OSes.])
53 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
54 AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of <windows.h>.])
56 AC_PROG_CXX
57 AC_PROG_CPP
58 AC_PROG_OBJC
59 AC_PROG_EGREP
60 AC_PROG_MAKE_SET
61 AC_PROG_INSTALL
62 AM_PROG_AS
63 AC_PROG_LEX
64 AC_PROG_YACC
66 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
67 AC_CHECK_PROGS(DESKTOP_FILE_VALIDATE, [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
68 AC_ARG_VAR([BUILDCC], [Build system C11 or C99 compiler command])
69 AC_CHECK_PROGS(BUILDCC, [c11-gcc c11 c99-gcc c99], [false])
70 AS_IF([test "$BUILDCC" = "false"], [
71   AC_MSG_ERROR([Cannot find native C99 compiler: please define BUILDCC.])
74 dnl Check for compiler properties
75 AC_C_CONST
76 AC_C_INLINE
77 AC_C_RESTRICT
78 AX_CXX_COMPILE_STDCXX_11(noext, mandatory)
80 dnl Extend the --help string at the current spot.
81 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
83 dnl Allow binary package maintainer to pass a custom string to avoid
84 dnl cache problem
85 AC_ARG_WITH(binary-version,
86     AS_HELP_STRING([--with-binary-version=STRING],
87          [To avoid plugins cache problem between binary version]),[],[])
88 AS_IF([test -n "${with_binary_version}"],[
89     AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
90          [Binary specific version])
93 dnl Prevent clang from accepting unknown flags with a mere warning
94 AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CFLAGS])
95 AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CXXFLAGS])
97 dnl
98 dnl  Check the operating system
99 dnl
100 HAVE_WIN64="0"
101 HAVE_IOS="0"
102 HAVE_OSX="0"
103 HAVE_TVOS="0"
105 case "${host_os}" in
106   "")
107     SYS=unknown
108     ;;
109   linux*)
110     SYS=linux
111     ;;
112   bsdi*)
113     SYS=bsdi
114     CFLAGS="${CFLAGS} -pthread"
115     ;;
116   freebsd*)
117     SYS=freebsd
118     CFLAGS="${CFLAGS} -pthread"
119     CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
120     LDFLAGS="${LDFLAGS} -L/usr/local/lib"
121     ac_cv_ld_z_defs=no
122     ;;
123   openbsd*)
124     SYS=openbsd
125     CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
126     LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
127     ;;
128   netbsd*)
129     SYS=netbsd
130     ;;
131   dragonfly*)
132     SYS=dragonfly
133     ;;
134   darwin*)
136     dnl Force gcc "-arch" flag
137     ARCH_flag=""
138     case "${host}" in
139       i?86*)
140         ARCH_flag="-arch i386"
141       ;;
142       ppc64*)
143         ARCH_flag="-arch ppc64"
144       ;;
145       ppc*)
146         ARCH_flag="-arch ppc"
147       ;;
148       x86_64*)
149         ARCH_flag="-arch x86_64"
150       ;;
151       arm*)
152         ac_cv_c_bigendian="no"
153         ac_cv_c_attribute_packed="no"
154       ;;
155     esac
157     SYS=darwin
158     CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu11 ${ARCH_flag}"
159     CXX="${CXX} -stdlib=libc++ -std=c++11"
160     CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
161     CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
162     OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu11 ${ARCH_flag} -Werror=partial-availability"
163     LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
164     VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
165     VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation,-framework,CoreServices])
167     AC_EGREP_CPP(yes,
168             [#import <TargetConditionals.h>
169              #if TARGET_OS_IPHONE
170              yes
171              #endif],
172              [HAVE_IOS="1"],
173              [HAVE_OSX="1"])
175     AC_EGREP_CPP(yes,
176             [#import <TargetConditionals.h>
177              #if TARGET_OS_TV
178              yes
179              #endif],
180              [HAVE_TVOS="1"
181              HAVE_IOS="0"
182              HAVE_OSX="0"
183              ],)
185     dnl
186     dnl  Handle Mac OS X SDK flags
187     dnl
188     AC_ARG_WITH(macosx-sdk,
189       [AS_HELP_STRING([--with-macosx-sdk=DIR],
190         [compile using the SDK in DIR])])
191     if test "${with_macosx_sdk}" != "" ; then
192         test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
193         CPP="${CPP} -isysroot ${with_macosx_sdk}"
194         CC="${CC} -isysroot ${with_macosx_sdk}"
195         CXX="${CXX} -isysroot ${with_macosx_sdk}"
196         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
197         LD="${LD} -syslibroot ${with_macosx_sdk}"
198     fi
199     AC_ARG_WITH(macosx-version-min,
200       [AS_HELP_STRING([--with-macosx-version-min=VERSION],
201         [compile for Mac OS X VERSION and above])])
202     if test "${with_macosx_version_min}" != "" ; then
203         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
204         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
205         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
206         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
207         LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
208     fi
209     ;;
210   *mingw32* | *cygwin* | *wince* | *mingwce*)
211     dnl Force libtool to not link to (shared) libgcc_s when detecting C++ dependencies
212     dnl When doing this test with -static-libgcc it will link on (static) libgcc_eh
213     CXXFLAGS="${CXXFLAGS} -static-libgcc"
214     AC_CHECK_TOOL(WINDRES, windres, :)
215     AC_CHECK_TOOL(OBJCOPY, objcopy, :)
216     AH_TOP([#if defined(_WIN32) && !defined(_WIN32_WINNT)])
217     AH_TOP([# define _WIN32_WINNT 0x0601 /* Windows 7 */])
218     AH_TOP([#endif])
219     AC_DEFINE([_WIN32_WINNT], 0x0601, [Define to '0x0601' for Windows 7 APIs.])
220     AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
221     AC_DEFINE([_UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
222     AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
223     AC_DEFINE([_ISOC99_SOURCE], [1], [Extensions to ISO C89 from ISO C99.])
224     AC_DEFINE([_ISOC11_SOURCE], [1], [Extensions to ISO C99 from ISO C11.])
225     AC_DEFINE([_POSIX_SOURCE], [1], [IEEE Std 1003.1.])
226     AC_DEFINE([_POSIX_C_SOURCE], [200809L], [IEEE Std 1003.1.])
227     AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
228     AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1], [XPG things and X/Open Unix extensions.])
229     AC_DEFINE([_BSD_SOURCE], [1], [ISO C, POSIX, and 4.3BSD things.])
230     AC_DEFINE([_SVID_SOURCE], [1], [ISO C, POSIX, and SVID things.])
232     case "${host_os}" in
233       *mingw32*)
234         SYS=mingw32
235         ;;
236       *cygwin*)
237         dnl Check if we are using the mno-cygwin mode in which case we are
238         dnl actually dealing with a mingw32 compiler.
239         AC_EGREP_CPP(yes,
240             [#ifdef _WIN32
241              yes
242              #endif],
243             SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
244         ;;
245     esac
247     if test "${SYS}" = "mingw32"; then
248         # DEP, ASLR, NO SEH
249         LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase"
251         AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
252         ac_default_prefix="`pwd`/_win32"
253         DESTDIR="`pwd`/_win32/"
255         dnl
256         dnl NSIS/MSI Installer prefix and WIN64
257         dnl
258         case "${host}" in
259             amd64*|x86_64*)
260                 HAVE_WIN64="1"
261                 WINDOWS_ARCH="x64"
262                 PROGRAMFILES="PROGRAMFILES64"
263                 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
264             ;;
265             *)
266                 WINDOWS_ARCH="x86"
267                 PROGRAMFILES="PROGRAMFILES"
268             ;;
269         esac
270         AC_SUBST(WINDOWS_ARCH)
271         AC_SUBST(PROGRAMFILES)
273     fi
274     ;;
275   *nto*)
276     SYS=nto
277     ;;
278   solaris*)
279     SYS=solaris
280     ;;
281   hpux*)
282     SYS=hpux
283     ;;
284   *os2*)
285     SYS=os2
286     LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
287     AC_LIBOBJ([freeaddrinfo])
288     AC_LIBOBJ([gai_strerror])
289     AC_CHECK_FUNCS([if_nametoindex])
290     ;;
291   *nacl*)
292     SYS=nacl
293     AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
294     AC_LIBOBJ([sigwait])
295     AC_LIBOBJ([recvmsg])
296     AC_LIBOBJ([sendmsg])
297     ;;
298   *)
299     SYS="${host_os}"
300     ;;
301 esac
303 dnl WinRT
304 AC_ARG_ENABLE(winstore_app,
305      AS_HELP_STRING([--enable-winstore-app],
306                     [Build targetted for Windows Store apps (default disabled)]))
308 vlc_winstore_app=0
309 AS_IF([test "${SYS}" = "mingw32"],[
310   LIBCOM="-lole32"
311   AS_IF([test "${enable_winstore_app}" = "yes"], [
312     vlc_winstore_app=1
313     LIBCOM=""
314      VLC_ADD_LIBS([libvlccore], [-lruntimeobject])
315      AC_LIBOBJ([gai_strerror])
316     ],[])
317   AC_SUBST(LIBCOM)
318   ])
319 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
321 AM_CONDITIONAL(HAVE_LINUX,   test "${SYS}" = "linux")
322 AM_CONDITIONAL(HAVE_OS2,     test "${SYS}" = "os2")
324 AM_CONDITIONAL(HAVE_DARWIN,  test "${SYS}" = "darwin")
325 AM_CONDITIONAL(HAVE_IOS,     test "${HAVE_IOS}" = "1")
326 AM_CONDITIONAL(HAVE_OSX,     test "${HAVE_OSX}" = "1")
327 AM_CONDITIONAL(HAVE_TVOS,    test "${HAVE_TVOS}" = "1")
329 AM_CONDITIONAL(HAVE_NACL,    test "${SYS}" = "nacl")
330 AM_CONDITIONAL(HAVE_LIBANL,  test "${HAVE_LIBANL}" = "1")
332 AM_CONDITIONAL(HAVE_WIN32,   test "${SYS}" = "mingw32")
333 AM_CONDITIONAL(HAVE_WIN64,   test "${HAVE_WIN64}" = "1") dnl Only used for the packaging
334 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
335 AM_CONDITIONAL([HAVE_WIN32_DESKTOP], [test "${SYS}" = "mingw32" -a "$vlc_winstore_app" = "0"])
338 dnl Sadly autoconf does not think about testing foo.exe when ask to test
339 dnl for program foo on win32
340 case "${build_os}" in
341     cygwin|msys|mingw32)
342         ac_executable_extensions=".exe"
343         BUILDEXEEXT=".exe"
344     ;;
345     os2*)
346         BUILDEXEEXT=".exe"
347     ;;
348     *)
349     ;;
350 esac
351 AC_SUBST(BUILDEXEEXT)
353 dnl Android is linux, but a bit different
354 AS_IF([test "$SYS" = linux],[
355     AC_MSG_CHECKING([for an Android system])
356     AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
357         [[#ifndef __ANDROID__
358          # error Not Android
359          #endif
360         ]],[[;]])
361     ],[
362       HAVE_ANDROID="1"
363       AC_MSG_RESULT([yes])
364     ],[
365       AC_MSG_RESULT([no])
366     ])
368 AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")
370 dnl Tizen (minimum SDK version: 2.3)
371 AS_IF([test "$SYS" = linux],[
372     AC_MSG_CHECKING([for Tizen])
373     AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
374         [[#include <tizen.h>
375         ]],[[;]])
376     ],[
377       HAVE_TIZEN="1"
378       AC_DEFINE([HAVE_TIZEN_SDK], [1], [Define to 1 if vlc is built against Tizen SDK])
379       AC_MSG_RESULT([yes])
380     ],[
381       AC_MSG_RESULT([no])
382     ])
384 AM_CONDITIONAL(HAVE_TIZEN, test "${HAVE_TIZEN}" = "1")
387 dnl  Check for the contrib directory
389 AC_ARG_WITH(contrib,
390   [AS_HELP_STRING([--with-contrib[=DIR]],
391     [search for 3rd party libraries in DIR/include and DIR/lib])
393 AC_MSG_CHECKING([for 3rd party libraries path])
394 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
395   CONTRIB_DIR="${srcdir}/contrib/${host}"
396   AS_IF([test ! -d "${CONTRIB_DIR}"], [
397     echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
398     CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
399     AS_IF([test ! -d "${CONTRIB_DIR}"], [
400       echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
401       CONTRIB_DIR=""
402       AC_MSG_RESULT([not found])
403     ])
404   ])
405 ], [
406   AS_IF([test "${with_contrib}" != "no"], [
407     CONTRIB_DIR="${with_contrib}"
408   ], [
409     CONTRIB_DIR=""
410     AC_MSG_RESULT([disabled])
411   ])
413 AS_IF([test -n "${CONTRIB_DIR}"], [
414   AS_IF([test -d "${CONTRIB_DIR}/lib"],[
415     CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
416   ], [
417     echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
418     CONTRIB_DIR=""
419     AC_MSG_RESULT([not usable])
420   ])
423 AS_IF([test -n "${CONTRIB_DIR}"], [
424   AC_MSG_RESULT([${CONTRIB_DIR}])
425   CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
426   CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
427   CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
428   OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include -F${CONTRIB_DIR} -F${CONTRIB_DIR}/Frameworks"
429   export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
430   LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
432   AS_IF([test -z "$LUAC"], [
433     dnl Old contribs mixed cross-tools and cross-compiled executables
434     AS_IF([test -x "${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"], [
435       LUAC="${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"
436     ])
438     dnl Newer contribs follow usual name space rules
439     AS_IF([test -x "${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"], [
440       LUAC="${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"
441     ])
442   ])
444   AS_IF([test "${SYS}" = "darwin"], [
445     export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
446     export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
447   ])
448 ], [
449   AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
450     AC_MSG_ERROR([Third party libraries not found!])
451   ])
453 AC_SUBST(CONTRIB_DIR)
455 dnl Add extras/tools to the PATH
456 TOOLS_DIR="${srcdir}/extras/tools/build/bin"
457 AS_IF([test -d "${TOOLS_DIR}"], [
458     TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
459     export PATH="${TOOLS_DIR}":$PATH
463 dnl  Libtool
464 dnl  It's very bad, but our former custom system was worst
465 dnl  -- Courmisch
468 dnl override platform specific check for dependent libraries
469 dnl otherwise libtool linking of shared libraries will
470 dnl fail on anything other than pass_all.
471 AC_CACHE_VAL(lt_cv_deplibs_check_method,
472     [lt_cv_deplibs_check_method=pass_all])
474 LT_INIT([dlopen win32-dll shared disable-static])
475 LT_LANG([C++])
476 LT_LANG([Windows Resource])
478 DOLT
480 lt_cv_deplibs_check_method=pass_all
482 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
483   AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
487 dnl Gettext stuff
489 AM_GNU_GETTEXT_VERSION([0.19.8])
490 AM_GNU_GETTEXT([external], [need-formatstring-macros])
493 dnl Iconv stuff
495 AM_ICONV
498 dnl checks for mingw
499 AS_IF([test "${SYS}" = "mingw32"], [
501 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
502 #if !defined(__MINGW32__)
503 # error Not compiling with mingw
504 #endif
505     ])], [
507 dnl Check for broken versions of mingw-runtime compatability library
508     AC_MSG_CHECKING(for broken mingw-runtime)
509     AC_PREPROC_IFELSE([AC_LANG_SOURCE([
510 #include <_mingw.h>
511 #if defined(__MINGW64_VERSION_MAJOR)
512 # if __MINGW64_VERSION_MAJOR < 5
513 #  error Update your mingw-w64! This one is too old.
514 # endif
515 #else
516 # error You cannot compile with Mingw. Use Mingw-w64!
517 #endif
518     ])], [
519         AC_MSG_RESULT([ok])
520     ], [
521         AC_MSG_RESULT([present])
522         AC_MSG_ERROR([LibVLC requires Mingw-w64 version 5.0 or higher!])
523     ])
525     dnl force use of mingw provided c99 *printf over msvcrt
526     CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
528     dnl Check for the need to include the mingwex lib for mingw32
529     VLC_SAVE_FLAGS
530     AC_CHECK_LIB(mingwex,opendir,
531         AC_CHECK_LIB(mingw32,opendir,,
532             [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
533     )
534     VLC_RESTORE_FLAGS
535     ], [
536         AC_MSG_RESULT([Not compiling with mingw])
537     ])
539     dnl Check for fnative-struct or mms-bitfields support for mingw32
540     AX_CHECK_COMPILE_FLAG([-mms-bitfields], [
541         AX_APPEND_FLAG([-mms-bitfields], [CFLAGS])
542         AX_APPEND_FLAG([-mms-bitfields], [CXXFLAGS])
543         # Check for the warning flag without "-Wno-", GCC accepts
544         # -Wno-<anything> for unsupported warnings, which can trigger
545         # other warnings instead.
546         AX_CHECK_COMPILE_FLAG([-Wincompatible-ms-struct], [
547             AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CFLAGS])
548             AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CXXFLAGS])
549         ])
550     ], [
551         AX_CHECK_COMPILE_FLAG([-fnative-struct], [
552             AX_APPEND_FLAG([-fnative-struct], [CFLAGS])
553             AX_APPEND_FLAG([-fnative-struct], [CXXFLAGS])
554         ])
555     ])
560 dnl Buggy glibc prevention. Purposedly not cached.
561 dnl See sourceware.org bugs 5058 and 5443.
562 dnl Ubuntu alone has 20 bug numbers for this...
564 AC_MSG_CHECKING(for buggy GNU/libc versions)
565 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
566 #include <limits.h>
567 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
568   && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
569 # error GNU/libc with dcgettext killer bug!
570 #endif
571 ])], [
572   AC_MSG_RESULT([not present])
573 ], [
574   AC_MSG_RESULT([found])
575   AS_IF([test "x${enable_nls}" != "xno"], [
576     AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
577 work-around for this. Check with your distribution vendor on how to update the
578 glibc run-time. Alternatively, build with --disable-nls.])
579   ])
582 dnl Plugin compilation stuff
584 VLC_LIBRARY_SUFFIX
586 dnl Check for system libs needed
587 need_libc=false
589 dnl Check for usual libc functions
590 AC_CHECK_FUNCS([accept4 daemon fcntl flock fstatvfs fork getenv getpwuid_r isatty memalign mkostemp mmap open_memstream newlocale openat pipe2 pread posix_fadvise posix_madvise posix_memalign setlocale stricmp strnicmp strptime uselocale])
591 AC_REPLACE_FUNCS([aligned_alloc atof atoll dirfd fdopendir flockfile fsync getdelim getpid lldiv memrchr nrand48 poll recvmsg rewind sendmsg setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strnstr strsep strtof strtok_r strtoll swab tdestroy tfind timegm timespec_get strverscmp pathconf])
592 AC_REPLACE_FUNCS([gettimeofday])
593 AC_CHECK_FUNC(fdatasync,,
594   [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
597 VLC_REPLACE_DECL([realpath], [#include <stdlib.h>])
599 dnl mingw64 implements those as static inline, not functions with C linkage
600 VLC_REPLACE_DECL([asprintf], [#include <stdio.h>])
601 VLC_REPLACE_DECL([vasprintf], [#include <stdio.h>])
602 VLC_REPLACE_DECL([gmtime_r], [#include <time.h>])
603 VLC_REPLACE_DECL([localtime_r], [#include <time.h>])
605 dnl C11 static_assert()
606 AC_MSG_CHECKING([for static_assert in assert.h])
607 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
608 static_assert(1, "The impossible happened.");
609 ])], [
610   AC_MSG_RESULT([yes])
611   AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
612 ], [
613   AC_MSG_RESULT([no])
616 # Windows CE does not have strcoll()
617 AC_FUNC_STRCOLL
619 dnl Check for non-standard system calls
620 case "$SYS" in
621   "linux")
622     AC_CHECK_FUNCS([eventfd vmsplice sched_getaffinity recvmmsg memfd_create])
623     ;;
624   "mingw32")
625     AC_CHECK_FUNCS([_lock_file])
626     ;;
627 esac
629 AH_BOTTOM([#include <vlc_fixups.h>])
631 dnl Check for struct pollfd
632 AC_CHECK_TYPES([struct pollfd],,,
633 [#include <sys/types.h>
634 #if HAVE_POLL
635 # include <poll.h>
636 #elif defined (_WIN32)
637 # include <winsock2.h>
638 #endif
641 dnl Check for struct timespec
642 AC_CHECK_TYPES([struct timespec],,,
643 [#include <time.h>])
645 dnl Check for max_align_t
646 AC_CHECK_TYPES([max_align_t],,,
647 [#include <stddef.h>])
649 dnl Checks for socket stuff
650 VLC_SAVE_FLAGS
651 SOCKET_LIBS=""
652 AC_SEARCH_LIBS(connect, [socket], [
653   AS_IF([test "$ac_cv_search_connect" != "none required"], [
654     SOCKET_LIBS="$ac_cv_search_connect"
655   ])
656 ], [
657   AS_IF([test "${SYS}" = "mingw32"], [
658     SOCKET_LIBS="-lws2_32 -liphlpapi"
659   ])
662 AC_SEARCH_LIBS([inet_pton], [nsl], [
663  AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
664     SOCKET_LIBS="$ac_cv_search_inet_pton $SOCKET_LIBS"
665   ])
666 ],, [${SOCKET_LIBS}])
668 LIBS="${LIBS} ${SOCKET_LIBS}"
669 AC_LINK_IFELSE([
670     AC_LANG_PROGRAM([#ifdef _WIN32
671         #include <ws2tcpip.h>
672         #include <windows.h>
673         # if _WIN32_WINNT < 0x600
674         #  error Needs vista+
675         # endif
676         #else
677         #include <sys/socket.h>
678         #include <arpa/inet.h>
679         #endif], [
680         char dst[[sizeof(struct in_addr)]];
681         inet_pton(AF_INET, "127.0.0.1", dst);
682     ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
683 AC_CHECK_FUNCS([if_nameindex])
684 VLC_RESTORE_FLAGS
685 AC_SUBST(SOCKET_LIBS)
687 dnl Check for socklen_t
688 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
689 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
690 ac_cv_type_socklen_t,
691 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
692 [#include <sys/types.h>
693 #ifdef _WIN32
694 # include <winsock2.h>
695 # include <ws2tcpip.h>
696 #else
697 # include <sys/socket.h>
698 #endif]], [[socklen_t len; len = 0;]])],
699 ac_cv_type_socklen_t=yes,
700 ac_cv_type_socklen_t=no)])
701 AS_IF([test "$ac_cv_type_socklen_t" = no],
702  [AC_DEFINE(socklen_t, int)])
704 dnl Check for struct sockaddr_storage
705 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
706 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
707 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
708   [AC_TRY_COMPILE(
709     [#include <sys/types.h>
710      #if defined( _WIN32 )
711      # include <winsock2.h>
712      #else
713      # include <sys/socket.h>
714      #endif], [struct sockaddr_storage addr;],
715      ac_cv_struct_sockaddr_storage=yes,
716      ac_cv_struct_sockaddr_storage=no)])
717 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
718   AC_DEFINE(sockaddr_storage, sockaddr)
719   AC_DEFINE(ss_family, sa_family)
722 dnl FreeBSD has a gnugetopt library for this:
723 GNUGETOPT_LIBS=""
724 AC_CHECK_FUNC(getopt_long,, [
725   AC_CHECK_LIB([gnugetopt],[getopt_long], [
726     GNUGETOPT_LIBS="-lgnugetopt"
727   ])
729 AC_SUBST(GNUGETOPT_LIBS)
731 AC_CHECK_LIB(m,cos,[
732   LIBM="-lm"
733 ], [
734   LIBM=""
736 AC_SUBST(LIBM)
738 AC_CHECK_LIB(m,lrintf, [
739   AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
740   VLC_ADD_LIBS([skins2],[-lm])
742 AC_CHECK_LIB(m,nanf,
743   AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
745 AC_CHECK_LIB(m,sincos, [
746   AC_DEFINE(HAVE_SINCOS, 1, [Define to 1 if you have the sincos function.])
747 ], [
748   AC_LIBOBJ([sincos])
751 AC_MSG_CHECKING([_Thread_local support])
752 AC_COMPILE_IFELSE([AC_LANG_SOURCE([_Thread_local int foo = 0;
753                    int main() {}])], [
754     AC_MSG_RESULT([ok])
755     AC_DEFINE(HAVE_THREAD_LOCAL, 1, [Defined to 1 if C11 _Thread_local storage qualifier is supported])
756 ],[ AC_MSG_RESULT([no])])
758 dnl __STDC_NO_THREADS__ can't be trusted on some platforms.
759 dnl check for its availability explicitely
760 AC_CHECK_HEADERS([threads.h])
762 AC_CHECK_LIB([anl],[getaddrinfo_a],[
763   AC_DEFINE(HAVE_LIBANL, 1, [Define to 1 if you have the anl library])
766 dnl Check for dynamic plugins
767 LIBDL=""
768 have_dynamic_objects="no"
769 VLC_SAVE_FLAGS
770 AC_SEARCH_LIBS(dlsym, [dl svld], [
771   AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
772     LIBDL="$ac_cv_search_dlsym"
773   ])
774   have_dynamic_objects="yes"
776 VLC_RESTORE_FLAGS
778 # Windows
779 AS_IF([test "${SYS}" = "mingw32"], [
780   LIBDL=""
781   have_dynamic_objects="yes" #assume we can use shared objects
784 AC_ARG_WITH([libfuzzer],
785     [AS_HELP_STRING([--with-libfuzzer=DIR],
786         [use libFuzzer library from DIR and triggers sanitize coverage (default disabled)])],
787      [],
788      [with_libfuzzer=no])
789 AS_VAR_IF(with_libfuzzer, no, [], [
790     enable_shared=no
791     enable_static=yes
792     enable_vlc=no
794 AM_CONDITIONAL(HAVE_LIBFUZZER, [test "${with_libfuzzer}" != "no"])
796 AS_IF([test "${enable_shared}" = "no"], [
797   have_dynamic_objects=no
799 AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])
801 AC_SUBST(LIBDL)
803 dnl Check for thread library
804 LIBPTHREAD=""
805 AS_IF([test "${SYS}" != "mingw32"], [
806   VLC_SAVE_FLAGS
807   LIBS=""
808   AC_SEARCH_LIBS(pthread_rwlock_init, pthread pthreads c_r, [
809     AS_IF([test "$ac_cv_search_pthread_rwlock_init" != "none required"], [
810       LIBPTHREAD="$ac_cv_search_pthread_rwlock_init"
811     ])
812   ])
813   VLC_RESTORE_FLAGS
815 AC_SUBST(LIBPTHREAD)
817 AC_SEARCH_LIBS([clock_nanosleep], [rt pthread], [
818   AS_IF([test "$ac_cv_search_clock_nanosleep" != "none required"], [
819     LIBRT="$ac_cv_search_clock_nanosleep"
820   ])
821 ], [
822   AC_SEARCH_LIBS([nanosleep], [rt pthread posix4], [
823     AS_IF([test "$ac_cv_search_nanosleep" != "none required"], [
824       LIBRT="$ac_cv_search_nanosleep"
825     ])
826   ])
828 AC_SUBST(LIBRT)
831 dnl Check for headers
834 dnl  POSIX
835 AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h sys/shm.h sys/socket.h sys/uio.h])
836 AC_CHECK_HEADERS([net/if.h], [], [],
838 #include <sys/types.h>
839 #include <sys/socket.h>
841 AC_CHECK_HEADER([syslog.h], [have_syslog="yes"], [have_syslog="no"])
842 AM_CONDITIONAL([HAVE_SYSLOG], [test "$have_syslog" = "yes"])
844 dnl  BSD
845 AC_CHECK_HEADERS([netinet/tcp.h netinet/udplite.h sys/param.h sys/mount.h])
847 dnl  GNU/Linux
848 AC_CHECK_HEADERS([features.h getopt.h linux/dccp.h linux/magic.h mntent.h sys/eventfd.h])
850 dnl  MacOS
851 AC_CHECK_HEADERS([xlocale.h])
853 dnl Check if C++ headers define locale_t
854 AC_LANG_PUSH(C++)
855 AC_CACHE_CHECK([if C++ headers define locale_t],
856   [ac_cv_cxx_locale_t],
857   [ac_cv_cxx_locale_t=no
858    AC_TRY_COMPILE([#include <locale>], [locale_t loc;],
859                     [ac_cv_cxx_locale_t=yes])])
860 if test "${ac_cv_cxx_locale_t}" != "no"; then
861   AC_DEFINE(HAVE_CXX_LOCALE_T, 1, Define to 1 if C++ headers define locale_t)
863 AC_LANG_POP(C++)
865 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
866 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
867 AC_CHECK_TYPE(ssize_t,, [
868   AC_DEFINE(ssize_t, int)
871 dnl It seems that autoconf detects pkg-config only during the first
872 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
873 dnl it is nested within a conditional block, so it was not working right.
874 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
875 AC_ARG_VAR(PKG_CONFIG_PATH,
876        [Paths where to find .pc not at the default location])
877 PKG_PROG_PKG_CONFIG()
879 dnl On some OS we need static linking
880 AS_IF([test -n "${PKG_CONFIG}" ],[
881     AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
882         PKG_CONFIG="${PKG_CONFIG} --static"
883     ])
888 dnl Check for zlib.h and -lz along with system -lminizip if available
890 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
891 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
892 if test "${have_zlib}" = "yes"
893 then
894   VLC_ADD_LIBS([sap],[-lz])
895   PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
896     AC_CHECK_HEADERS([unzip.h], [
897       have_minizip=yes
898       MINIZIP_LIBS="-lminizip -lz"
899     ], [
900       have_minizip=no
901     ])
902   ])
904 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
908 dnl Domain name i18n support via GNU libidn
910 PKG_CHECK_MODULES([IDN], [libidn], [
911   have_libidn="yes"
912   AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
913 ], [
914   have_libidn="no"
918 dnl Check for dbus
919 AC_ARG_ENABLE(dbus,
920   [AS_HELP_STRING([--enable-dbus],
921     [compile D-Bus message bus support (default enabled)])])
922 have_dbus="no"
923 AS_IF([test "${enable_dbus}" != "no"], [
924   PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
925     have_dbus="yes"
926   ], [
927     AS_IF([test -n "${enable_dbus}"], [
928       AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
929     ], [
930       AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
931     ])
932   ])
934 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
937 dnl Check for systemd
938 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
939   have_systemd="yes"
940 ], [
941   AC_MSG_WARN([${SYSTEMD_PKG_ERRORS}.])
943 AM_CONDITIONAL([HAVE_SYSTEMD], [test "${have_systemd}" = "yes"])
946 EXTEND_HELP_STRING([Optimization options:])
948 dnl  Compiler warnings
951 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security], [CFLAGS])
952 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security], [CXXFLAGS])
954 AX_APPEND_COMPILE_FLAGS([-Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Werror-implicit-function-declaration -Winit-self -Wlogical-op -Wshadow=local -Wmultistatement-macros], [CFLAGS])
955 AX_APPEND_COMPILE_FLAGS([-pipe], [CFLAGS])
958 dnl  Debugging mode
960 AC_ARG_ENABLE(debug,
961   [AS_HELP_STRING([--enable-debug],
962     [build with run-time assertions (default disabled)])],,
963   [enable_debug="no"])
964 AH_TEMPLATE(NDEBUG,
965             [Define to 1 if debug code should NOT be compiled])
966 AS_IF([test "${enable_debug}" != "no"], [
967   AC_CHECK_HEADERS([valgrind/valgrind.h])
968 ], [
969   AC_DEFINE(NDEBUG)
973 dnl  Profiling
975 AC_ARG_ENABLE(gprof,
976   [AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)])],,
977   [enable_gprof="no"])
978 AS_IF([test "${enable_gprof}" != "no"], [
979   CFLAGS="${CFLAGS} -pg"
980   CXXFLAGS="${CXXFLAGS} -pg"
981   OBJCFLAGS="${OBJCFLAGS} -pg"
982   LDFLAGS="${LDFLAGS} -pg"
985 AC_ARG_ENABLE(cprof,
986   [AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)])],,
987   [enable_cprof="no"])
988 AS_IF([test "${enable_gprof}" != "no"], [
989   CFLAGS="${CFLAGS} -finstrument-functions"
990   CXXFLAGS="${CXXFLAGS} -finstrument-functions"
991   OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
992   LDFLAGS="${LDFLAGS} -finstrument-functions"
996 dnl  Test coverage
998 AC_ARG_ENABLE(coverage,
999   [AS_HELP_STRING([--enable-coverage],
1000     [build for test coverage (default disabled)])],,
1001   [enable_coverage="no"])
1002 AS_IF([test "${enable_coverage}" != "no"], [
1003   CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1004   CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1005   LDFLAGS="-lgcov ${LDFLAGS}"
1008 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
1009   VLC_SAVE_FLAGS
1010   CFLAGS="${CFLAGS} -fvisibility=hidden"
1011   CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
1012   OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
1013   AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
1014                  [ac_cv_c_visibility_hidden], [
1015     AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1016       ac_cv_c_visibility_hidden=yes
1017     ], [
1018       ac_cv_c_visibility_hidden=no
1019     ])
1020   ])
1021   AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
1025 dnl Sanitizer flags
1027 AC_ARG_WITH([sanitizer],
1028     [AS_HELP_STRING([--with-sanitizer=(address/memory/undefined/thread)],
1029         [build with sanitizer flags (default disabled)])],
1030      [],
1031      [with_sanitizer=no])
1033 AS_VAR_IF(with_sanitizer, no, [], [
1034     AX_CHECK_COMPILE_FLAG([-fsanitize=${with_sanitizer}], [
1035         AX_APPEND_FLAG([-fsanitize=${with_sanitizer}])
1036         AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [CXXFLAGS])
1037         AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [LDFLAGS])
1038     ], [
1039         AC_MSG_ERROR(["-fsanitize=${with_sanitizer} not supported!"])
1040     ])
1041     AX_APPEND_FLAG([-g])
1042     AX_APPEND_FLAG([-g], [CXXFLAGS])
1044     AS_IF([test -z "${with_sanitizer##*address*}" ], [
1045        AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer])
1046        AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer], [CXXFLAGS])
1047     ])
1048     AS_IF([test -z "${with_sanitizer##*memory*}" ], [
1049         AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1050         AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1051     ])
1052     AS_IF([test -z "${with_sanitizer##*thread*}" ], [
1053         AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1054         AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1055     ])
1059 dnl  Enable/disable optimizations
1061 AC_ARG_ENABLE(optimizations,
1062   [AS_HELP_STRING([--disable-optimizations],
1063     [disable compiler optimizations (default enabled)])],,
1064   [enable_optimizations="yes"])
1066 dnl Check for various optimization flags
1067 AS_IF([test "${enable_optimizations}" != "no"], [
1069   dnl -O3 only in production builds
1070   AS_IF([test "${enable_debug}" = "no"], [
1071     VLC_SAVE_FLAGS
1072     CFLAGS="${CFLAGS} -O3"
1073     CXXFLAGS="${CXXFLAGS} -O3"
1074     OBJCFLAGS="${OBJCFLAGS} -O3"
1075     AC_CACHE_CHECK([if $CC accepts -O3],  [ac_cv_c_o3], [
1076       AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1077         ac_cv_c_o3=yes
1078       ], [
1079         ac_cv_c_o3=no
1080       ])
1081     ])
1082     AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
1083   ])
1085   dnl Check for fast maths
1086   AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CFLAGS])
1087   AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CXXFLAGS])
1089 AH_BOTTOM([
1090 #if defined(_MSC_VER) && !defined(__clang__)
1091 # pragma fenv_access(off)
1092 # pragma fp_contract(on)
1093 #elif defined(__GNUC__)
1094 /* Not supported so far */
1095 #else
1096 # pragma STDC FENV_ACCESS OFF
1097 # pragma STDC FP_CONTRACT ON
1098 #endif
1101   dnl Check for -funroll-loops
1102   VLC_SAVE_FLAGS
1103   CFLAGS="${CFLAGS} -funroll-loops"
1104   CXXFLAGS="${CXXFLAGS} -funroll-loops"
1105   OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1106   AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1107     AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1108       ac_cv_c_unroll_loops=yes
1109     ], [
1110       ac_cv_c_unroll_loops=no
1111     ])
1112   ])
1113   AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1115   AS_IF([test "$enable_debug" = "no"], [
1116     dnl Check for -fomit-frame-pointer
1117     VLC_SAVE_FLAGS
1118     CFLAGS="${CFLAGS} -fomit-frame-pointer"
1119     CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1120     OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1121     AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1122       [ac_cv_c_omit_frame_pointer], [
1123       AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1124         ac_cv_c_omit_frame_pointer=yes
1125       ], [
1126         ac_cv_c_omit_frame_pointer=no
1127       ])
1128     ])
1129     AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1130   ])
1132   VLC_SAVE_FLAGS
1133   AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong])
1134   AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong], [CXXFLAGS])
1135   dnl Win32 requires linking to ssp for stack-protection
1136   AS_IF([test "${SYS}" = "mingw32"], [
1137       LDFLAGS="${LDFLAGS} -lssp"
1138       AS_IF([test "${vlc_winstore_app}" != 1], [LDFLAGS="${LDFLAGS} -ladvapi32"])
1139       AC_CACHE_CHECK([if linker supports stack protectors], [ac_cv_ld_ssp], [
1140         AC_TRY_LINK([#include <stdio.h>],[char buf[100]; fgets(buf, sizeof(buf), stdin);], [
1141           ac_cv_ld_ssp="yes"
1142         ], [
1143           ac_cv_ld_ssp="no"
1144         ])
1145       ])
1146       AS_IF([test "${ac_cv_ld_ssp}" = "no"], [VLC_RESTORE_FLAGS])
1147   ])
1150 VLC_SAVE_FLAGS
1151 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1152 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1153   AC_TRY_LINK([],, [
1154     ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1155   ], [
1156     ac_cv_ld_bsymbolic=""
1157   ])
1159 VLC_RESTORE_FLAGS
1160 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1161 AC_SUBST(SYMBOLIC_LDFLAGS)
1163 VLC_SAVE_FLAGS
1164 LDFLAGS="${LDFLAGS} -Wl,-z,defs"
1165 AC_CACHE_CHECK([if linker supports -z,defs], [ac_cv_ld_z_defs], [
1166   AC_TRY_LINK([],, [
1167     ac_cv_ld_z_defs="yes"
1168   ], [
1169     ac_cv_ld_z_defs="no"
1170   ])
1172 AS_IF([test "${ac_cv_ld_z_defs}" = "no"], [VLC_RESTORE_FLAGS])
1174 dnl Check for __attribute__((packed))
1175 AC_CACHE_CHECK([for __attribute__((packed))],
1176   [ac_cv_c_attribute_packed],
1177   [ac_cv_c_attribute_packed=no
1178    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1179                     [ac_cv_c_attribute_packed=yes])])
1180 if test "${ac_cv_c_attribute_packed}" != "no"; then
1181   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1185 dnl  Check the CPU
1187 case "${host_cpu}" in
1188   "")
1189     ARCH=unknown
1190     ;;
1191   armv*)
1192     ARCH="arm"
1193     host_cpu="arm"
1194     ;;
1195   *)
1196     ARCH="${host_cpu}"
1197     ;;
1198 esac
1200 dnl Check for backtrace() support
1201 AC_CHECK_HEADERS(execinfo.h)
1202 AC_CHECK_FUNCS(backtrace)
1205 dnl  default modules
1207 ALIASES="${ALIASES} cvlc rvlc"
1210 dnl  Accelerated modules
1213 dnl  Check for fully working MMX intrinsics
1214 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1215 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1216 AC_ARG_ENABLE(mmx,
1217   [AS_HELP_STRING([--disable-mmx],
1218     [disable MMX optimizations (default auto)])],,[
1219   case "${host_cpu}" in
1220     i?86|x86_64)
1221       enable_mmx="yes"
1222       ;;
1223     *)
1224       enable_mmx="no"
1225       ;;
1226   esac
1228 have_mmx="no"
1229 have_mmxext="no"
1230 AS_IF([test "${enable_mmx}" != "no"], [
1231   ARCH="${ARCH} mmx"
1232   VLC_SAVE_FLAGS
1233   CFLAGS="${CFLAGS} -mmmx"
1234   AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1235     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1236 [#include <mmintrin.h>
1237 #include <stdint.h>
1238 uint64_t frobzor;]], [
1239 [__m64 a, b, c;
1240 a = b = c = (__m64)frobzor;
1241 a = _mm_slli_pi16(a, 3);
1242 a = _mm_adds_pi16(a, b);
1243 c = _mm_srli_pi16(c, 8);
1244 c = _mm_slli_pi16(c, 3);
1245 b = _mm_adds_pi16(b, c);
1246 a = _mm_unpacklo_pi8(a, b);
1247 frobzor = (uint64_t)a;]])], [
1248       ac_cv_c_mmx_intrinsics=yes
1249     ], [
1250       ac_cv_c_mmx_intrinsics=no
1251     ])
1252   ])
1253   VLC_RESTORE_FLAGS
1254   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1255     AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1256   ])
1258   VLC_SAVE_FLAGS
1259   CFLAGS="${CFLAGS} -mmmx"
1260   AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1261     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1262 void *p;
1263 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1265     ], [
1266       ac_cv_mmx_inline=yes
1267     ], [
1268       ac_cv_mmx_inline=no
1269     ])
1270   ])
1271   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1272     AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1273     have_mmx="yes"
1274   ])
1276   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1277                  [ac_cv_mmxext_inline], [
1278     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1279 void *p;
1280 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1282     ], [
1283       ac_cv_mmxext_inline=yes
1284     ], [
1285       ac_cv_mmxext_inline=no
1286     ])
1287   ])
1288   VLC_RESTORE_FLAGS
1289   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1290     AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1291     have_mmxext="yes"
1292   ])
1294 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1295 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1297 dnl  Check for fully workin SSE2 intrinsics
1298 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1299 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1300 AC_ARG_ENABLE(sse,
1301   [AS_HELP_STRING([--disable-sse],
1302     [disable SSE (1-4) optimizations (default auto)])],, [
1303   case "${host_cpu}" in
1304     i?86|x86_64)
1305       enable_sse=yes
1306       ;;
1307     *)
1308       enable_sse=no
1309       ;;
1310   esac
1312 have_sse2="no"
1313 AS_IF([test "${enable_sse}" != "no"], [
1314   ARCH="${ARCH} sse sse2"
1316   VLC_SAVE_FLAGS
1317   CFLAGS="${CFLAGS} -msse2"
1318   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1319     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1320 [#include <emmintrin.h>
1321 #include <stdint.h>
1322 uint64_t frobzor;]], [
1323 [__m128i a, b, c;
1324 a = b = c = _mm_set1_epi64((__m64)frobzor);
1325 a = _mm_slli_epi16(a, 3);
1326 a = _mm_adds_epi16(a, b);
1327 c = _mm_srli_epi16(c, 8);
1328 c = _mm_slli_epi16(c, 3);
1329 b = _mm_adds_epi16(b, c);
1330 a = _mm_unpacklo_epi8(a, b);
1331 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1332       ac_cv_c_sse2_intrinsics=yes
1333     ], [
1334       ac_cv_c_sse2_intrinsics=no
1335     ])
1336   ])
1337   VLC_RESTORE_FLAGS
1338   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1339     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1340   ])
1342   VLC_SAVE_FLAGS
1343   CFLAGS="${CFLAGS} -msse"
1344   AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1345     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1346 void *p;
1347 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1349     ], [
1350       ac_cv_sse_inline=yes
1351     ], [
1352       ac_cv_sse_inline=no
1353     ])
1354   ])
1356   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1357     AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1358   ])
1360   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1361     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1362 void *p;
1363 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1365     ], [
1366       ac_cv_sse2_inline=yes
1367     ], [
1368       ac_cv_sse2_inline=no
1369     ])
1370   ])
1371   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1372     AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1373     have_sse2="yes"
1374   ])
1376   # SSE3
1377   AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1378     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1379 void *p;
1380 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1382     ], [
1383       ac_cv_sse3_inline=yes
1384     ], [
1385       ac_cv_sse3_inline=no
1386     ])
1387   ])
1389   AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1390     AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1391   # SSSE3
1392   AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1393     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1394 void *p;
1395 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1397     ], [
1398       ac_cv_ssse3_inline=yes
1399     ], [
1400       ac_cv_ssse3_inline=no
1401     ])
1402   ])
1404   AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1405     AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1407   # SSE4.1
1408   AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1409                  [ac_cv_sse4_1_inline], [
1410     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1411 void *p;
1412 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1414     ], [
1415       ac_cv_sse4_1_inline=yes
1416     ], [
1417       ac_cv_sse4_1_inline=no
1418     ])
1419   ])
1421   AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1422     AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1424   # SSE4.2
1425   AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1426                  [ac_cv_sse4_2_inline], [
1427     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1428 void *p;
1429 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1431     ], [
1432       ac_cv_sse4_2_inline=yes
1433     ], [
1434       ac_cv_sse4_2_inline=no
1435     ])
1436   ])
1438   AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1439     AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1441   # SSE4A
1442   AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1443     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1444 void *p;
1445 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1447     ], [
1448       ac_cv_sse4a_inline=yes
1449     ], [
1450       ac_cv_sse4a_inline=no
1451     ])
1452   ])
1453   VLC_RESTORE_FLAGS
1454   AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1455     AC_DEFINE(CAN_COMPILE_SSE4A, 1, [Define to 1 if SSE4A inline assembly is available.]) ])
1457 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1459 VLC_SAVE_FLAGS
1460 CFLAGS="${CFLAGS} -mmmx"
1461 have_3dnow="no"
1462 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1463   AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1464 void *p;
1465 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1467   ], [
1468     ac_cv_3dnow_inline=yes
1469   ], [
1470     ac_cv_3dnow_inline=no
1471   ])
1473 VLC_RESTORE_FLAGS
1474 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1475   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1476             [Define to 1 if 3D Now! inline assembly is available.])
1477   have_3dnow="yes"
1479 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1482 AC_ARG_ENABLE(neon,
1483   [AS_HELP_STRING([--disable-neon],
1484     [disable NEON optimizations (default auto)])],, [
1485   AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1487 AS_IF([test "${enable_neon}" != "no"], [
1488   VLC_SAVE_FLAGS
1489   CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1490   AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1491     AC_COMPILE_IFELSE([
1492       AC_LANG_PROGRAM(,[[
1493 asm volatile("vqmovun.s64 d0, q1":::"d0");
1495     ], [
1496       ac_cv_arm_neon="yes"
1497     ], [
1498       ac_cv_arm_neon="no"
1499     ])
1500   ])
1501   VLC_RESTORE_FLAGS
1503 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_arm_neon}" = "yes"])
1505 AC_ARG_ENABLE(arm64,
1506   [AS_HELP_STRING([--disable-arm64],
1507     [disable arm 64-bit optimizations (default auto)])],, [
1508   AS_IF([test "${host_cpu}" = "aarch64"], [enable_arm64="yes"] ,[enable_arm64="no"])
1510 AS_IF([test "${enable_arm64}" != "no"], [
1511   AC_CACHE_CHECK([if $CCAS groks ARM 64 SIMD assembly], [ac_cv_arm64], [
1512     AC_COMPILE_IFELSE([
1513       AC_LANG_PROGRAM(,[[
1514 asm volatile("uhadd v0.8b, v0.8b, v1.8b":::"v0");
1516     ], [
1517       ac_cv_arm64="yes"
1518     ], [
1519       ac_cv_arm64="no"
1520     ])
1521   ])
1523 AM_CONDITIONAL(HAVE_ARM64, [test "${ac_cv_arm64}" = "yes"])
1526 AC_ARG_ENABLE(altivec,
1527   [AS_HELP_STRING([--disable-altivec],
1528     [disable AltiVec optimizations (default auto)])],, [
1529   AS_CASE("${host_cpu}", [powerpc*],
1530         [enable_altivec=yes], [enable_altivec=no])
1532 have_altivec="no"
1533 ALTIVEC_CFLAGS=""
1534 AS_IF([test "${enable_altivec}" = "yes"], [
1535   ARCH="${ARCH} altivec";
1536   VLC_SAVE_FLAGS
1537   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1538     [ac_cv_altivec_inline],
1539     [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1540          ac_cv_altivec_inline="yes",
1541          [CFLAGS="${CFLAGS} -Wa,-maltivec"
1542           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1543             [ac_cv_altivec_inline="-Wa,-maltivec"],
1544             ac_cv_altivec_inline=no)
1545          ])])
1546   VLC_RESTORE_FLAGS
1547   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1548     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1549               [Define to 1 if AltiVec inline assembly is available.])
1550     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1551       ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1552       VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1553     ])
1554     have_altivec="yes"
1555   ])
1557   VLC_SAVE_FLAGS
1558   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1559   [ac_cv_c_altivec], [
1560     CFLAGS="${CFLAGS} -maltivec"
1561     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1562 [#include <altivec.h>]], [
1563 [vec_ld(0, (unsigned char *)0);]])], [
1564       ac_cv_c_altivec="-maltivec"
1565     ], [
1566       ac_cv_c_altivec="no"
1567     ])
1568   ])
1569   VLC_RESTORE_FLAGS
1570   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1571     CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1572     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1573     VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1574     ALTIVEC_CFLAGS="$ALTIVEC_CFLAGS ${ac_cv_c_altivec}"
1575     VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec}])
1576     have_altivec="yes"
1577   ])
1578   AC_CHECK_HEADERS(altivec.h)
1580   VLC_SAVE_FLAGS
1581   LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1582   AC_CACHE_CHECK([if linker needs -framework vecLib],
1583     [ac_cv_ld_altivec],
1584     [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1585   VLC_RESTORE_FLAGS
1586   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1587     VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1588   ])
1590 AC_SUBST(ALTIVEC_CFLAGS)
1591 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1594 dnl  Memory usage
1596 AC_ARG_ENABLE(optimize-memory,
1597   [AS_HELP_STRING([--enable-optimize-memory],
1598     [optimize memory usage over performance])])
1599 if test "${enable_optimize_memory}" = "yes"; then
1600   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1604 dnl Allow running as root (useful for people running on embedded platforms)
1606 AC_ARG_ENABLE(run-as-root,
1607   [AS_HELP_STRING([--enable-run-as-root],
1608     [allow running VLC as root (default disabled)])])
1609 AS_IF([test "${enable_run_as_root}" = "yes"],[
1610     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1611               [Define to 1 to allow running VLC as root (uid 0).])
1615 dnl Stream output
1617 AC_ARG_ENABLE(sout,
1618   [AS_HELP_STRING([--disable-sout],
1619     [disable streaming output (default enabled)])])
1620 AS_IF([test "${enable_sout}" != "no"], [
1621   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1623 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1625 dnl Lua modules
1626 AC_ARG_ENABLE(lua,
1627   [AS_HELP_STRING([--disable-lua],
1628     [disable LUA scripting support (default enabled)])])
1629 if test "${enable_lua}" != "no"
1630 then
1631   PKG_CHECK_MODULES(LUA, lua5.2,
1632     [ have_lua=yes ],
1633     [
1634     AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1636     PKG_CHECK_MODULES(LUA, lua5.1,
1637       [ have_lua=yes ],
1638       [
1639       AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1640       PKG_CHECK_MODULES(LUA, lua >= 5.1,
1641         [ have_lua=yes ],
1642         [
1643           AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1644           have_lua=yes
1645           AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1646             [],
1647             [ have_lua=no ] )
1648           AC_CHECK_LIB(  lua5.2 , luaL_newstate,
1649             [LUA_LIBS="-llua5.2"],
1650           AC_CHECK_LIB( lua5.1 , luaL_newstate,
1651             [LUA_LIBS="-llua5.1"],
1652             AC_CHECK_LIB( lua51 , luaL_newstate,
1653               [LUA_LIBS="-llua51"],
1654               AC_CHECK_LIB( lua , luaL_newstate,
1655                 [LUA_LIBS="-llua"],
1656                 [ have_lua=no
1657                 ], [-lm])
1658             )))
1659         ])
1660       ])
1661     ])
1662   if test "x${have_lua}" != "xyes" ;  then
1663       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.])
1664   fi
1665   AC_ARG_VAR([LUAC], [LUA byte compiler])
1666   AS_IF([test -z "$LUAC"], [
1667      AC_CHECK_TOOL(LUAC, [luac], [false])
1668   ])
1669   AS_IF([test "${LUAC}" = "false"], [
1670     AC_MSG_ERROR([Could not find the LUA byte compiler.])
1671   ])
1672   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], [
1673     AC_MSG_ERROR([You need 32-bits luac when using lua from contrib.])
1674   ])
1676 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1680 dnl VideoLAN manager
1682 AC_ARG_ENABLE(vlm,
1683   [AS_HELP_STRING([--disable-vlm],
1684     [disable the stream manager (default enabled)])],,
1685   [enable_vlm="${enable_sout}"])
1686 AS_IF([test "${enable_vlm}" != "no"], [
1687   AS_IF([test "${enable_sout}" = "no"], [
1688     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1689   ])
1690   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1692 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1696 dnl Addons manager storage and repositories modules
1698 AC_ARG_ENABLE(addonmanagermodules,
1699   [AS_HELP_STRING([--disable-addonmanagermodules],
1700     [disable the addons manager modules (default enabled)])])
1701 if test "${enable_addonmanagermodules}" != "no"
1702 then
1703   AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1705 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1709 dnl  Input plugins
1712 EXTEND_HELP_STRING([Input plugins:])
1715 dnl  libarchive access module
1717 PKG_ENABLE_MODULES_VLC([ARCHIVE], [archive], [libarchive >= 3.1.0], (libarchive support), [auto])
1720 dnl  live555 input
1722 AC_ARG_ENABLE(live555,
1723   [AS_HELP_STRING([--enable-live555],
1724     [enable RTSP input through live555 (default enabled)])])
1726 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1727   PKG_CHECK_MODULES(LIVE555, live555, [
1728     VLC_ADD_PLUGIN([live555])
1729     VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1730     VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1731   ], [
1732     AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1734     AC_LANG_PUSH(C++)
1735     VLC_SAVE_FLAGS
1737     dnl detect include paths
1738     AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment/UsageEnvironment.hh"], [
1739       CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1740     ], [
1741       AS_IF([test "${SYS}" != "os2"], [
1742         LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1743         CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1744       ], [
1745         LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1746         CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1747         LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1748       ])
1749     ])
1751     dnl CPP Flags
1752     AS_IF([test "${SYS}" = "solaris"], [
1753       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1754     ])
1755     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1756     LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1758     dnl version check
1759     AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1760       AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1761 [#include <liveMedia_version.hh>
1762 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1763 # error BOOM
1764 #endif]])
1765       ], [
1766         ac_cv_live555="yes"
1767       ], [
1768         ac_cv_live555="no"
1769       ])
1770     ])
1772     AS_IF([test "$ac_cv_live555" = "no"], [
1773       AC_MSG_WARN([live555 is missing or its installed version is too old:
1774 Version 2011.12.23 or later is required to proceed.
1775 You can get an updated one from http://www.live555.com/liveMedia .])
1776       AS_IF([test -n "${enable_live555}"], [
1777         AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1778       ])
1779     ], [
1780       other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1781       other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1782       AS_IF([test "${SYS}" = "mingw32"], [
1783         # add ws2_32 for closesocket, select, recv
1784         other_libs="$other_libs -lws2_32"
1785       ])
1787       dnl We need to check for pic because live555 don't provide shared libs
1788       dnl and we want to build a plugins so we need -fPIC on some arch.
1789       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1790       VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1791       AC_CHECK_LIB(liveMedia_pic, main, [
1792         VLC_ADD_PLUGIN([live555])
1793         VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1794       ],[
1795         AC_CHECK_LIB(liveMedia, main, [
1796           VLC_ADD_PLUGIN([live555])
1797           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1798         ],[],[${other_libs}])
1799       ],[${other_libs_pic}])
1800     ])
1801     VLC_RESTORE_FLAGS
1802     AC_LANG_POP(C++)
1803   ])
1807 dnl IIDC and DV FireWire input modules
1809 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1810 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1813 dnl - linsys modules: access module check for libzvbi
1815 AC_ARG_ENABLE(linsys,
1816   [AS_HELP_STRING([--enable-linsys],
1817     [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
1818 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
1819   VLC_ADD_PLUGIN([linsys_hdsdi])
1820   PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
1821     VLC_ADD_PLUGIN([linsys_sdi])
1822   ], [
1823     AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
1824   ])
1828 dnl dvdread module: check for libdvdread
1830 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 4.9.0], [dvdread input module], [auto])
1833 dnl libdvdnav plugin
1835 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav > 4.9.0], [DVD with navigation input module (dvdnav)], [auto])
1836 AS_IF([test "${enable_dvdnav}" != "no"], [
1837   AC_MSG_CHECKING(for dvdnav_stream_cb in dvdnav/dvdnav.h)
1838     AC_EGREP_HEADER(dvdnav_stream_cb,dvdnav/dvdnav.h,[
1839       AC_MSG_RESULT(yes)
1840       AC_DEFINE(HAVE_STREAM_CB_IN_DVDNAV_H, 1, For dvdnav demux support)
1841       ],[
1842       AC_MSG_RESULT(no)
1843     ])
1847 dnl  Blu-ray Disc Support with libbluray
1849 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.6.2], (libbluray for Blu-ray disc support ) )
1852 dnl  OpenCV wrapper and example filters
1854 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
1858 dnl  libsmbclient plugin
1860 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smb], [smbclient], (SMB/CIFS support), [auto])
1861 AS_IF([test "${SYS}" = "mingw32" -a "${enable_winstore_app}" != "yes"], [ VLC_ADD_PLUGIN([smb]) ])
1864 dnl  liBDSM access module
1866 PKG_ENABLE_MODULES_VLC([DSM], [dsm], [libdsm >= 0.2.0], [libdsm SMB/CIFS access/sd module], [auto])
1869 dnl sftp access support
1871 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
1874 dnl nfs access support
1876 PKG_ENABLE_MODULES_VLC([NFS], [nfs], [libnfs >= 1.10.0], (support nfs protocol via libnfs), [auto])
1879 dnl  Video4Linux 2
1881 AC_ARG_ENABLE(v4l2, [AS_HELP_STRING([--disable-v4l2],
1882   [disable Video4Linux version 2 (default auto)])])
1883 have_v4l2="no"
1884 AS_IF([test "$enable_v4l2" != "no"], [
1885   AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h], [
1886     have_v4l2="yes"
1887   ])
1889 AM_CONDITIONAL(HAVE_V4L2, [test "${have_v4l2}" != "no"])
1892 dnl special access module for Blackmagic SDI cards
1894 AC_ARG_ENABLE(decklink,
1895   [AS_HELP_STRING([--disable-decklink],
1896     [disable Blackmagic DeckLink SDI input (default auto)])])
1897 AC_ARG_WITH(decklink_sdk,
1898   [AS_HELP_STRING[--with-decklink-sdk=DIR],
1899     [                        location of Blackmagic DeckLink SDI SDK])])
1900 have_decklink=no
1901 if test "${enable_decklink}" != "no"
1902 then
1903   if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1904   then
1905     VLC_ADD_CPPFLAGS([decklink decklinkoutput],[-I${with_decklink_sdk}/include])
1906   fi
1907   VLC_SAVE_FLAGS
1908   CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1909   AC_LANG_PUSH(C++)
1910   AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
1911       have_decklink=yes
1912   ], [
1913       AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)
1914   ])
1915   AC_LANG_POP(C++)
1916   VLC_RESTORE_FLAGS
1918 AM_CONDITIONAL(HAVE_DECKLINK, [ test "${have_decklink}" != "no" ])
1922 dnl  Built-in CD-DA and VCD module
1924 AC_ARG_ENABLE(vcd,
1925   [AS_HELP_STRING([--disable-vcd],
1926     [disable built-in VCD and CD-DA support (default enabled)])])
1928 AC_ARG_ENABLE(libcddb,
1929   [AS_HELP_STRING([--disable-libcddb],
1930     [disable CDDB for Audio CD (default enabled)])])
1932 if test "${enable_vcd}" != "no"
1933 then
1934   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1935   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1936     AC_MSG_RESULT(yes)
1937     VLC_ADD_PLUGIN([vcd cdda])
1938   ],[
1939     AC_MSG_RESULT(no)
1940   ])
1942   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1943   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1944     AC_MSG_RESULT(yes)
1945     VLC_ADD_PLUGIN([vcd cdda])
1946     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1947   ],[
1948     AC_MSG_RESULT(no)
1949   ])
1951   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1952   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1953     AC_MSG_RESULT(yes)
1954     VLC_ADD_PLUGIN([vcd cdda])
1955     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1956   ],[
1957     AC_MSG_RESULT(no)
1958   ])
1960   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
1961   then
1962     VLC_ADD_PLUGIN([vcd cdda])
1963   fi
1965   if test "$enable_libcddb" != "no"; then
1966     PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
1967       HAVE_LIBCDDB=yes
1968       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
1969       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
1970       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
1971       ],:
1972       [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
1973       HAVE_LIBCDDB=no])
1974   fi
1978 dnl Linux DVB
1980 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
1981   AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1982 [#include <linux/dvb/version.h>
1983 #if (DVB_API_VERSION < 5)
1984 # error Linux DVB API v3.2 and older are not supported.
1985 #endif
1986 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
1987 # error Linux DVB API v5.0 is unsupported. Please update.
1988 #endif
1989 ]])], [
1990   ac_cv_linux_dvb_5_1=yes
1991 ], [
1992   ac_cv_linux_dvb_5_1=no
1993 ])])
1994 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
1997 dnl  Screen capture module
1999 AC_ARG_ENABLE(screen,
2000   [AS_HELP_STRING([--enable-screen],
2001     [disable screen capture (default enabled)])])
2002 if test "${enable_screen}" != "no"; then
2003   if test "${SYS}" = "darwin"; then
2004     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2005       VLC_ADD_PLUGIN([screen])
2006     ])
2007   fi
2009 AM_CONDITIONAL(HAVE_MAC_SCREEN, [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
2012 dnl  VNC/RFB access module
2014 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
2016 dnl  RDP/Remote Desktop access module
2018 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
2021 dnl  Real RTSP plugin
2023 AC_ARG_ENABLE(realrtsp,
2024   [  --enable-realrtsp       Real RTSP module (default disabled)])
2025 if test "${enable_realrtsp}" = "yes"; then
2026   VLC_ADD_PLUGIN([access_realrtsp])
2030 dnl QTKit
2031 AC_ARG_ENABLE(macosx-qtkit,
2032   [  --enable-macosx-qtkit Mac OS X qtsound (audio) module (default enabled on Mac OS X <= v10.11)])
2033 if test "x${enable_macosx_qtkit}" != "xno" &&
2034   (test "${SYS}" = "darwin" || test "${enable_macosx_qtkit}" = "yes")
2035 then
2036   AC_CHECK_HEADERS(QTKit/QTKit.h, [
2037       VLC_ADD_PLUGIN([qtsound])
2038     ])
2042 dnl AVFoundation
2043 AC_SUBST(have_avfoundation, ["no"])
2044 AC_ARG_ENABLE(macosx-avfoundation,
2045   [  --enable-macosx-avfoundation Mac OS X avcapture (video) module (default enabled on Mac OS X)])
2046 if test "x${enable_macosx_avfoundation}" != "xno" &&
2047   (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
2048 then
2049   SAVED_LIBS="${LIBS}"
2050   LIBS="-framework AVFoundation"
2051   AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
2052   LIBS="${SAVED_LIBS}"
2053   if test "${have_avfoundation}" != "no"
2054   then
2055     VLC_ADD_PLUGIN([avcapture])
2056   fi
2058 AM_CONDITIONAL(HAVE_AVFOUNDATION, [test "${have_avfoundation}" != "no"])
2061 dnl  DCP plugin (using asdcplib)
2063 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
2064 AM_CONDITIONAL(HAVE_ASDCP, [test "${have_asdcp}" = "yes"])
2067 dnl  Demux plugins
2070 EXTEND_HELP_STRING([Mux/Demux plugins:])
2073 dnl  libdvbpsi check for ts mux/demux
2075 have_dvbpsi="no"
2076 PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.2.0], [have_dvbpsi="yes"])
2077 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
2081 dnl  GME demux plugin
2083 AC_ARG_ENABLE(gme,
2084   [AS_HELP_STRING([--enable-gme],
2085     [use Game Music Emu (default auto)])])
2086 AS_IF([test "${enable_gme}" != "no"], [
2087   AC_CHECK_HEADER([gme/gme.h], [
2088     AC_CHECK_LIB([gme], [gme_identify_header], [
2089       VLC_ADD_PLUGIN([gme])
2090     ], [
2091       AC_CHECK_LIB([gme], [gme_identify_extension], [
2092          VLC_ADD_LIBS([gme], [-lstdc++ $LIBM])
2093          VLC_ADD_PLUGIN([gme])
2094       ],, [-lstdc++ $LIBM])
2095     ])
2096     VLC_ADD_LIBS([gme], [-lgme])
2097   ], [
2098     AS_IF([test "x${enable_gme}" != "x"], [
2099       AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2100     ])
2101   ])
2106 dnl  SIDPlay plugin
2108 AC_ARG_ENABLE(sid,
2109     [AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)])])
2110 AS_IF([test "${enable_sid}" != "no"], [
2111     PKG_CHECK_MODULES(SID, [libsidplay2], [
2112         AC_LANG_PUSH(C++)
2113         oldCPPFLAGS="$CPPFLAGS"
2114         CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2115         AC_CHECK_HEADER([sidplay/builders/resid.h], [
2116             VLC_ADD_PLUGIN([sid])
2117             VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2118             VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2119         ], [
2120             AS_IF([test -n "${enable_sid}"],
2121                 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2122                 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2123                 )
2124         ])
2125         CPPFLAGS="$oldCPPFLAGS"
2126         AC_LANG_POP(C++)
2127     ], [
2128         AS_IF([test "x${enable_sid}" = "xyes"],
2129             [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2130             [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2131             )
2132     ])
2137 dnl  ogg demux plugin
2139 PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
2140 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2141     AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2142 ],[true])
2143 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2144 if test "${enable_sout}" != "no"; then
2145 dnl Check for libshout
2146     PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2150 dnl  matroska demux plugin
2152 PKG_WITH_MODULES([MATROSKA], [libebml libmatroska], [
2153        VLC_ADD_PLUGIN([mkv])
2154        VLC_ADD_CFLAGS([mkv], [$MATROSKA_CFLAGS])
2155        VLC_ADD_LIBS([mkv], [$MATROSKA_LIBS])
2156        have_matroska="yes"
2157    ],,[MKV format support], [auto])
2158 AM_CONDITIONAL([HAVE_MATROSKA], [test "${have_matroska}" = "yes"])
2161 dnl  modplug demux plugin
2163 AC_ARG_ENABLE(mod,
2164   [AS_HELP_STRING([--disable-mod],
2165     [do not use libmodplug (default auto)])])
2166 if test "${enable_mod}" != "no" ; then
2167     PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2168           VLC_ADD_PLUGIN([mod])
2169           VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2170           VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2171           VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2172     ],[
2173        AS_IF([test -n "${enable_mod}"],
2174          [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2175          [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2176     ])
2180 dnl  mpc demux plugin
2182 AC_ARG_ENABLE(mpc,
2183   [AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)])])
2184 if test "${enable_mpc}" != "no"
2185 then
2186   AC_CHECK_HEADERS([mpc/mpcdec.h], [
2187     VLC_ADD_PLUGIN([mpc])
2188     VLC_ADD_LIBS([mpc],[-lmpcdec])],
2189     [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2190     VLC_ADD_PLUGIN([mpc])
2191     VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2195 dnl  Codec plugins
2198 EXTEND_HELP_STRING([Codec plugins:])
2201 dnl wmafixed plugin
2203 AC_ARG_ENABLE(wma-fixed,
2204   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2205 if test "${enable_wma_fixed}" = "yes"
2206 then
2207   VLC_ADD_PLUGIN([wma_fixed])
2211 dnl shine encoder plugin
2213 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2217 dnl openmax il codec plugin
2219 AC_ARG_ENABLE(omxil,
2220   [  --enable-omxil          openmax il codec module (default disabled)])
2221 if test "${enable_omxil}" = "yes"
2222 then
2223   VLC_ADD_PLUGIN([omxil])
2227 dnl raspberry pi openmax il configuration
2229 AC_ARG_ENABLE(rpi-omxil,
2230   [  --enable-rpi-omxil     openmax il configured for raspberry pi (default disabled)])
2231 if test "${enable_rpi_omxil}" = "yes"
2232 then
2233   VLC_ADD_PLUGIN([omxil])
2234   VLC_ADD_CFLAGS([omxil],[-DRPI_OMX])
2238 dnl CrystalHD codec plugin
2240 AC_ARG_ENABLE(crystalhd,
2241   [  --enable-crystalhd      crystalhd codec plugin (default auto)])
2242 if test "${enable_crystalhd}" != "no"; then
2243     AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2244       VLC_ADD_PLUGIN([crystalhd])
2245       VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2246     ],[
2247       if test "${SYS}" = "mingw32" ; then
2248         AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2249           VLC_ADD_PLUGIN([crystalhd])
2250           AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2251             VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2252             ])
2253         ],[
2254           AS_IF([test x"${enable_crystalhd}" = "xyes"],
2255                 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2256                 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2257         ],[#define __LINUX_USER__
2258                #include <libcrystalhd/bc_dts_types.h>
2259         ])
2260       fi
2261     ],[
2262        #include <libcrystalhd/bc_dts_types.h>
2263       ])
2267 dnl  mad plugin
2269 have_mad="no"
2270 MAD_CFLAGS=""
2271 MAD_LIBS=""
2273 AC_ARG_WITH(mad, [  --with-mad=PATH         path to libmad], [
2274   enable_mad="yes"
2275 ], [
2276   with_mad="no"
2278 AS_IF([test "${with_mad}" != "no"], [
2279   MAD_CFLAGS="-I${with_mad}/include"
2280   MAD_LIBS="-L${with_mad}/lib"
2283 AC_ARG_ENABLE(mad,
2284   [  --enable-mad            libmad module (default enabled)])
2285 AS_IF([test "${enable_mad}" != "no"], [
2286   VLC_SAVE_FLAGS
2287   CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
2288   LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
2289   AC_CHECK_HEADERS(mad.h, [
2290     AC_CHECK_LIB(mad, mad_bit_init, [
2291       have_mad="yes"
2292       MAD_LIBS="${MAD_LIBS} -lmad"
2293     ])
2294   ])
2295   VLC_RESTORE_FLAGS
2296   AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
2297     AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
2298   ])
2300 AC_SUBST(MAD_CFLAGS)
2301 AC_SUBST(MAD_LIBS)
2302 AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
2304 dnl  mpg123 plugin
2307 PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])
2310 dnl gstreamer stuff
2312 AC_ARG_ENABLE(gst-decode,
2313   [  --enable-gst-decode     GStreamer based decoding support (currently supports only video decoding) (default auto)])
2315 have_gst_decode="no"
2316 AS_IF([test "${enable_gst_decode}" != "no"], [
2317   PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2318     PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2319       have_gst_decode="yes"
2320     ], [
2321       AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2322     ])
2323   ], [
2324     AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2325   ])
2327 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2330 dnl  avcodec decoder/encoder plugin
2332 AC_ARG_ENABLE(merge-ffmpeg,
2333 [  --enable-merge-ffmpeg   merge FFmpeg-based plugins (default disabled)],, [
2334   enable_merge_ffmpeg="no"
2336 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2338 AC_MSG_CHECKING([for libavutil variant])
2339 PKG_CHECK_EXISTS([libavutil], [
2340   libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2341   libavutil_micro="${libavutil_version##*.}"
2342   AS_IF([test ${libavutil_micro} -le 99], [
2343     avfork="libav"
2344   ], [
2345     avfork="ffmpeg"
2346   ])
2347 ], [
2348   avfork="none"
2350 AC_MSG_RESULT([${avfork}])
2352 AC_ARG_ENABLE(avcodec,
2353 [  --enable-avcodec        libavcodec codec (default enabled)])
2354 AS_IF([test "${enable_avcodec}" != "no"], [
2355   dnl We need >=57.16.0 from libav or >=57.37.100 from ffmpeg
2356   case "${avfork}" in
2357     libav) av_codec_ver="57.16.0" ;;
2358     ffmpeg) av_codec_ver="57.37.100" ;;
2359     *) AC_MSG_ERROR([Missing libav or FFmpeg. Pass --disable-avcodec to ignore this error.])
2360   esac
2361   PKG_CHECK_MODULES(AVCODEC,[libavcodec >= ${av_codec_ver} libavutil >= 52.0.0], [
2362     VLC_SAVE_FLAGS
2363     CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2364     CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2365     AC_CHECK_HEADERS(libavcodec/avcodec.h)
2366     AC_CHECK_HEADERS(libavutil/avutil.h)
2367     VLC_RESTORE_FLAGS
2368     have_avcodec="yes"
2369   ],[
2370     AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2371   ])
2372 ], [
2373   have_avcodec="no"
2375 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2378 dnl libva needs avcodec
2380 AC_ARG_ENABLE(libva,
2381   [  --enable-libva          VAAPI GPU decoding support (libVA) (default auto)])
2383 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2384   AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2387 have_vaapi="no"
2388 have_vaapi_drm="no"
2389 have_vaapi_x11="no"
2390 have_vaapi_wl="no"
2391 AS_IF([test "${enable_libva}" != "no"], [
2392   PKG_CHECK_MODULES([LIBVA], [libva >= 0.38], [
2393     have_vaapi="yes"
2394   ], [
2395     AS_IF([test -n "${enable_libva}"], [
2396       AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2397     ], [
2398       AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2399     ])
2400   ])
2401   PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2402     have_vaapi_drm="yes"
2403   ], [
2404     AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2405   ])
2406   PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2407     have_vaapi_x11="yes"
2408   ], [
2409     AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2410   ])
2411   PKG_CHECK_MODULES(LIBVA_WL, [libva-wayland], [
2412     have_vaapi_wl="yes"
2413   ], [
2414     AC_MSG_WARN([${LIBVA_WL_PKG_ERRORS}.])
2415   ])
2417 AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"])
2418 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2419 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2420 AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"])
2422 have_avcodec_vaapi="no"
2423 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2424   VLC_SAVE_FLAGS
2425   CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2426   CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2427   AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2428     AC_MSG_NOTICE([VA API acceleration activated])
2429     have_avcodec_vaapi="yes"
2430   ],[
2431     AS_IF([test -n "${enable_libva}"], [
2432       AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2433     ], [
2434       AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2435     ])
2436   ])
2437   VLC_RESTORE_FLAGS
2439 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2442 dnl dxva2 needs avcodec
2444 AC_ARG_ENABLE(dxva2,
2445   [  --enable-dxva2          DxVA2 GPU decoding support (default auto)])
2447 have_avcodec_dxva2="no"
2448 AS_IF([test "${enable_dxva2}" != "no"], [
2449   if test "${SYS}" = "mingw32"; then
2450   AS_IF([test "x${have_avcodec}" = "xyes"], [
2451     AC_CHECK_HEADERS(dxva2api.h,
2452       [
2453         AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2454            AC_MSG_NOTICE([DxVA2 acceleration activated])
2455            have_avcodec_dxva2="yes"
2456         ],[
2457     AS_IF([test "${enable_dxva2}" = "yes"],
2458           [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2459               [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2460         ], [#undef _WIN32_WINNT
2461             /* DXVA2 is only available in Vista and above */
2462             #define _WIN32_WINNT 0x600])
2463       ],[
2464     AS_IF([test "${enable_dxva2}" = "yes"],
2465               [AC_MSG_ERROR([Could not find required dxva2api.h])],
2466               [AC_MSG_WARN([dxva2api.h not found])])
2467       ],[#include <d3d9.h>])
2468   ],[
2469     AS_IF([test "x${enable_dxva2}" != "x"], [
2470       AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2471     ])
2472   ])
2473   fi
2475 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2478 dnl d3d11va needs avcodec
2480 AC_ARG_ENABLE(d3d11va,
2481   [  --enable-d3d11va          D3D11 GPU decoding support (default auto)])
2483 have_avcodec_d3d11va="no"
2484 AS_IF([test "${enable_d3d11va}" != "no"], [
2485   if test "${SYS}" = "mingw32"; then
2486   AS_IF([test "x${have_avcodec}" = "xyes"], [
2487         AC_CHECK_TYPES([ID3D11VideoDecoder],
2488           [
2489             AC_CHECK_HEADERS(dxva2api.h,
2490               [
2491                 AC_CHECK_HEADERS(libavcodec/d3d11va.h, [
2492                    AC_MSG_NOTICE([D3D11 acceleration activated])
2493                    AC_DEFINE(HAVE_AVCODEC_D3D11VA, 1, [Define if the d3d11va module is built])
2494                    have_avcodec_d3d11va="yes"
2495                 ],[
2496                   AS_IF([test "${enable_d3d11va}" = "yes"],
2497                     [AC_MSG_ERROR([d3d11va is present but libavcodec/d3d11va.h is missing])],
2498                         [AC_MSG_WARN([d3d11va is present but libavcodec/d3d11va.h is missing ])])
2499                   ], [#undef _WIN32_WINNT
2500                       /* D3D11 is only available in Vista and above */
2501                       #define _WIN32_WINNT 0x600])
2502                   ],[
2503                     AS_IF([test "${enable_d3d11va}" = "yes"],
2504                           [AC_MSG_ERROR([Could not find required dxva2api.h])],
2505                           [AC_MSG_WARN([dxva2api.h not found])])
2506                   ],[#include <d3d9.h>])
2507           ],[
2508             AS_IF([test "${enable_d3d11va}" = "yes"],
2509                   [AC_MSG_ERROR([Could not find required ID3D11VideoDecoder in d3d11.h])],
2510                   [AC_MSG_WARN([ID3D11VideoDecoder not found])])
2511           ], [#include <d3d11.h>])
2512   ],[
2513     AS_IF([test "x${enable_d3d11va}" != "x"], [
2514       AC_MSG_ERROR([--enable-d3d11va and --disable-avcodec options are mutually exclusive.])
2515     ])
2516   ])
2517   fi
2519 AM_CONDITIONAL([HAVE_AVCODEC_D3D11VA], [test "${have_avcodec_d3d11va}" = "yes"])
2522 dnl DXGI debug
2524 AC_CHECK_HEADERS(dxgidebug.h dxgi1_6.h)
2527 dnl  avformat demuxer/muxer plugin
2530 AC_ARG_ENABLE(avformat,
2531 [  --enable-avformat       libavformat containers (default enabled)],, [
2532   enable_avformat="${have_avcodec}"
2534 have_avformat="no"
2535 AS_IF([test "${enable_avformat}" != "no"], [
2536   PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2537       have_avformat="yes"
2538       VLC_SAVE_FLAGS
2539       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2540       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2541       AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2542       AC_CHECK_HEADERS(libavcodec/avcodec.h)
2543       AC_CHECK_HEADERS(libavutil/avutil.h)
2544       AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2545         have_avformat="no"
2546       ])
2547       VLC_RESTORE_FLAGS
2548     ],[
2549       AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2550   ])
2552 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2555 dnl  swscale image scaling and conversion plugin
2558 AC_ARG_ENABLE(swscale,
2559   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2560           (default enabled)]))
2561 if test "${enable_swscale}" != "no"
2562 then
2563   PKG_CHECK_MODULES(SWSCALE,[libswscale],
2564     [
2565       VLC_SAVE_FLAGS
2566       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2567       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2568       AC_CHECK_HEADERS(libswscale/swscale.h)
2569       AC_CHECK_HEADERS(libavutil/avutil.h)
2570       VLC_ADD_PLUGIN([swscale])
2571       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2572       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2573       AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2574         VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2575       ])
2576       VLC_RESTORE_FLAGS
2577     ],[
2578       AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2579   ])
2583 dnl  postproc plugin
2586 AC_ARG_ENABLE(postproc,
2587 [  --enable-postproc       libpostproc image post-processing (default auto)])
2588 if test "${enable_postproc}" != "no"
2589 then
2590   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2591     [
2592       VLC_SAVE_FLAGS
2593       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2594       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2595       AC_CHECK_HEADERS(postproc/postprocess.h)
2596       VLC_ADD_PLUGIN([postproc])
2597       VLC_RESTORE_FLAGS
2598     ],[
2599       AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2600   ])
2604 dnl  faad decoder plugin
2606 AC_ARG_ENABLE(faad,
2607 [  --enable-faad           faad codec (default auto)])
2608 have_faad="no"
2609 AS_IF([test "${enable_faad}" != "no"], [
2610   AC_CHECK_HEADERS([neaacdec.h], [
2611     AC_CHECK_LIB(faad, NeAACDecOpen, [have_faad="yes"],, [$LIBM])
2613     AS_IF([test "${have_faad}" = "yes"], [
2614       VLC_ADD_PLUGIN([faad])
2615       VLC_ADD_LIBS([faad],[-lfaad])
2616     ], [
2617       AS_IF([test "${enable_faad}" = "yes"], [
2618         AC_MSG_ERROR([cannot find FAAD library])
2619       ], [
2620         AC_MSG_WARN([cannot find FAAD library])
2621       ])
2622     ])
2623   ])
2627 dnl  AOM decoder plugin
2629 PKG_ENABLE_MODULES_VLC([AOM], [], [aom], [experimental AV1 codec (default auto)])
2632 dnl libvpx decoder plugin
2634 AC_ARG_ENABLE(vpx,
2635     AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 encoder and decoder (default auto)]))
2636 AS_IF([test "${enable_vpx}" != "no"],[
2637     PKG_CHECK_MODULES([VPX], [vpx >= 1.5.0], [
2638         VLC_ADD_PLUGIN([vpx])
2639         VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2640         VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2641         AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2642             VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2643         ], [], [${VPX_LIBS}])
2644         AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2645             VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2646         ], [], [${VPX_LIBS}])
2647         AC_CHECK_LIB([vpx],[vpx_codec_vp8_cx], [
2648             VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_ENCODER])
2649         ], [], [${VPX_LIBS}])
2650         AC_CHECK_LIB([vpx],[vpx_codec_vp9_cx], [
2651             VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_ENCODER])
2652         ], [], [${VPX_LIBS}])
2653     ], [
2654     AS_IF([test "${enable_vpx}" = "yes"],[
2655         AC_MSG_ERROR([libvpx 1.5.0 or higher was not found])
2656     ])])
2660 dnl twolame encoder plugin
2662 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2665 dnl fdk-aac encoder plugin
2667 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2671 dnl A52/AC3 decoder plugin
2673 AC_ARG_ENABLE(a52,
2674   [  --enable-a52            A/52 support with liba52 (default enabled)])
2675 if test "${enable_a52}" != "no"
2676 then
2677   AC_ARG_WITH(a52,
2678     [  --with-a52=PATH         a52 headers and libraries])
2679     if test -z "${with_a52}"
2680     then
2681       LDFLAGS_test=""
2682       CPPFLAGS_test=""
2683     else
2684       LDFLAGS_test="-L${with_a52}/lib"
2685       CPPFLAGS_test="-I${with_a52}/include"
2686     fi
2687     VLC_SAVE_FLAGS
2688     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52}"
2689     LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52}"
2690     AC_CHECK_HEADERS(a52dec/a52.h, [
2691       AC_CHECK_LIB(a52, a52_free, [
2692         VLC_ADD_PLUGIN([a52])
2693         VLC_ADD_LIBS([a52],[${LDFLAGS_test} -la52 $LIBM])
2694         VLC_ADD_CPPFLAGS([a52],[${CPPFLAGS_test}])
2695       ],[
2696         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.])
2697         ], [$LIBM])
2698     ],[
2699       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.])
2700     ])
2701     VLC_RESTORE_FLAGS
2705 dnl DTS Coherent Acoustics decoder plugin
2707 PKG_ENABLE_MODULES_VLC([DCA], [dca], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2710 dnl  Flac plugin
2712 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2715 dnl  Libmpeg2 plugin
2717 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2720 dnl  Vorbis plugin
2722 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2725 dnl  Tremor plugin
2727 AC_ARG_ENABLE(tremor,
2728   [  --enable-tremor         Tremor decoder support (default disabled)])
2729 if test "${enable_tremor}" = "yes"
2730 then
2731   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2732     VLC_ADD_PLUGIN([tremor])
2733    ],[])
2737 dnl  Speex plugins
2739 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2740 have_speexdsp="no"
2741 AS_IF([test "${enable_speex}" != "no"], [
2742   PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2743     have_speexdsp="yes"
2744   ], [
2745     AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2746   ])
2748 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2751 dnl  Opus plugin
2753 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2756 dnl  Ambisonic channel mixer and binauralizer plugin
2758 PKG_ENABLE_MODULES_VLC([SPATIALAUDIO], [], [spatialaudio], [Ambisonic channel mixer and binauralizer], [auto])
2761 dnl  theora decoder plugin
2763 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2766 dnl  OggSpots decoder plugin
2768 PKG_ENABLE_MODULES_VLC([OGGSPOTS], [], [ogg], [experimental OggSpots codec], [auto])
2771 dnl  Daala decoder plugin
2773 PKG_ENABLE_MODULES_VLC([DAALA], [], [daaladec daalaenc], [experimental daala codec], [disabled])
2776 dnl  schroedinger decoder plugin (for dirac format video)
2778 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2781 dnl  PNG decoder module
2783 AC_ARG_ENABLE(png,
2784   [  --enable-png            PNG support (default enabled)])
2785 AS_IF([test "${enable_png}" != "no"], [
2786 AC_CHECK_HEADERS(png.h, [
2787   VLC_SAVE_FLAGS
2788   LDFLAGS="${LDFLAGS} -lz $LIBM"
2789   AC_CHECK_LIB(png, png_set_alpha_mode, [
2790     VLC_ADD_PLUGIN([png])
2791   ], [], [-lz $LIBM])
2792   VLC_RESTORE_FLAGS
2793   ])
2797 dnl  JPEG decoder module
2799 AC_ARG_ENABLE(jpeg,
2800   [  --enable-jpeg           JPEG support (default enabled)])
2801 AS_IF([test "${enable_jpeg}" != "no"], [
2802 AC_CHECK_HEADERS(jpeglib.h, [
2803   VLC_ADD_PLUGIN([jpeg])
2804   ])
2808 dnl  BPG decoder module
2810 AC_ARG_ENABLE(bpg,
2811   [  --enable-bpg           BPG support (default disabled)])
2812 AS_IF([test "${enable_bpg}" != "no"], [
2813 AC_CHECK_HEADERS(libbpg.h, [
2814   VLC_ADD_PLUGIN([bpg])
2815   ])
2819 dnl H262 encoder plugin (lib262)
2821 AC_ARG_ENABLE(x262,
2822   [  --enable-x262           H262 encoding support with static libx262 (default disabled)])
2823 if test "${enable_x262}" != "no"; then
2824     PKG_CHECK_MODULES(X262, x262, [
2825         VLC_ADD_PLUGIN([x262])
2826         VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
2827         AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2828           VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
2829         ])
2830         VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
2831         if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
2832           VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
2833         fi
2834     ], [
2835        if test "${enable_x262}" = "yes"; then
2836         AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
2837        fi
2838     ])
2841 dnl x265 encoder
2842 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
2845 dnl H264 encoder plugin (10-bit lib264)
2847 AC_ARG_ENABLE(x26410b,
2848   [  --enable-x26410b           H264 10-bit encoding support with static libx264 (default disabled)])
2849 if test "${enable_x26410b}" != "no"; then
2850     PKG_CHECK_MODULES(X26410B, x26410b, [
2851         VLC_ADD_PLUGIN([x26410b])
2852         VLC_ADD_LIBS([x26410b],[${X26410B_LIBS}])
2853         AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2854           VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
2855         ])
2856         VLC_ADD_CFLAGS([x26410b],[${X26410B_CFLAGS}])
2857         if echo ${X26410B_LIBS} |grep -q 'pthreadGC2'; then
2858           VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
2859         fi
2860     ], [
2861        if test "${enable_x26410b}" = "yes"; then
2862         AC_MSG_ERROR([x26410b module doesn't work without staticly compiled libx264.a])
2863        fi
2864     ])
2869 dnl H264 encoder plugin (using libx264)
2871 AC_ARG_ENABLE(x264,
2872   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
2873 if test "${enable_x264}" != "no"; then
2874       PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2875         VLC_ADD_PLUGIN([x264])
2876         VLC_ADD_LIBS([x264],[${X264_LIBS}])
2878         AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2879           VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
2880         ])
2882         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2883         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2884           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2885         fi
2886       ],[
2887         if test "${enable_x264}" = "yes"; then
2888             AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2889           fi
2890       ])
2894 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
2896 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
2899 dnl libfluidsynth (MIDI synthetizer) plugin
2901 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
2902 PKG_ENABLE_MODULES_VLC([FLUIDLITE], [fluidsynth], [fluidlite], [MIDI synthetiser with libfluidsynth], [auto])
2903 AC_CHECK_HEADERS(fluidlite.h, [AC_SUBST([FLUIDSYNTH_LIBS], ${FLUIDLITE_LIBS})])
2906 dnl Teletext Modules
2907 dnl vbi decoder plugin (using libzbvi)
2908 dnl telx module
2909 dnl uncompatible
2911 AC_ARG_ENABLE(zvbi,
2912   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2913                   libzvbi (default enabled)]))
2914 AC_ARG_ENABLE(telx,
2915   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2916                   zvbi) (default enabled if zvbi is absent)]))
2918 AS_IF( [test "${enable_zvbi}" != "no"],[
2919     PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2920         [
2921           VLC_ADD_PLUGIN([zvbi])
2922           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2923           AS_IF( [test "${enable_telx}" = "yes"],[
2924                   AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2925                   ])
2926         ],[
2927           AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2928         ])
2929     ])
2930 AS_IF( [test "${enable_telx}" != "no" ],[
2931   VLC_ADD_PLUGIN([telx])
2932   ])
2935 dnl libass subtitle rendering module
2937 AC_ARG_ENABLE(libass,
2938   [  --enable-libass         Subtitle support using libass (default enabled)])
2939 AS_IF( [test "${enable_libass}" != "no"], [
2940   PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
2941       [
2942         VLC_ADD_PLUGIN([libass])
2944         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
2945           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
2946            VLC_ADD_LIBS([libass],[-lfontconfig])
2947        ])
2948       ],[
2949         AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
2950       ])
2951   ])
2954 dnl ARIB subtitles rendering module
2956 AC_ARG_ENABLE(aribsub,
2957   [  --enable-aribsub        ARIB Subtitles support (default enabled)])
2958 AS_IF( [test "${enable_aribsub}" != "no" ],[
2959   PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
2960       have_aribb24="yes"
2961       VLC_ADD_PLUGIN([aribsub])
2962       VLC_ADD_LIBS([aribsub],[-laribb24])
2963       AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
2964     ],[
2965       AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
2966       have_aribb24="no"
2967   ])
2969 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
2972 dnl ARIB B25
2974 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
2977 dnl  kate decoder plugin
2979 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
2982 dnl  tiger rendering for kate decoder plugin
2984 AC_ARG_ENABLE(tiger,
2985 [  --enable-tiger          Tiger rendering library for Kate streams (default auto)])
2986 AS_IF([test "${enable_tiger}" != "no"], [
2987   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
2988       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
2989         AS_IF([test -n "${enable_tiger}"], [
2990           AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
2991         ])
2992   ])
2996 dnl  check if we can build the css selector engine 
2998 AC_ARG_ENABLE(css,
2999 [  --enable-css            CSS selector engine (default auto)])
3000 AS_IF([test "${enable_css}" != "no"], [
3001   with_css="yes"
3002   AC_DEFINE(HAVE_CSS, 1, [Define if CSS engine is built])
3004 AM_CONDITIONAL([ENABLE_CSS], [test "${with_css}" = "yes"])
3008 dnl  Video plugins
3011 EXTEND_HELP_STRING([Video plugins:])
3014 dnl  OpenGL
3016 PKG_CHECK_MODULES([EGL], [egl], [
3017   have_egl="yes"
3018 ], [
3019   have_egl="no"
3021 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
3023 have_gl="no"
3024 PKG_CHECK_MODULES([GL], [gl], [
3025   have_gl="yes"
3026 ], [
3027   AC_MSG_CHECKING([for OpenGL])
3028   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3029 #ifdef _WIN32
3030 # include <GL/glew.h>
3031 #endif
3032 #include <GL/gl.h>
3033 ]], [
3034     [int t0 = GL_TEXTURE0;]])
3035   ], [
3036     GL_CFLAGS=""
3037     have_gl="yes"
3038     AS_IF([test "${SYS}" != "mingw32"], [
3039       GL_LIBS="-lGL"
3040     ], [
3041       GL_LIBS="-lopengl32"
3042     ])
3043   ])
3044   AC_MSG_RESULT([${have_gl}])
3046 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
3048 dnl OpenGL ES 2: depends on EGL 1.1
3049 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3052 dnl  Xlib
3055 AC_PATH_XTRA()
3056 AC_CHECK_HEADERS(X11/Xlib.h)
3059 dnl  X C Bindings modules
3061 AC_ARG_ENABLE(xcb,
3062   [  --enable-xcb            X11 support with XCB (default enabled)],, [
3063   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3064     enable_xcb="yes"
3065   ], [
3066     enable_xcb="no"
3067   ])
3069 AC_ARG_ENABLE(xvideo,
3070   [  --enable-xvideo         XVideo support (default enabled)],, [
3071     enable_xvideo="$enable_xcb"
3074 have_xcb="no"
3075 have_xcb_keysyms="no"
3076 have_xcb_randr="no"
3077 have_xcb_xvideo="no"
3078 AS_IF([test "${enable_xcb}" != "no"], [
3079   dnl libxcb
3080   PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
3081   have_xcb="yes"
3082   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3083   PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
3084   PKG_CHECK_MODULES(XPROTO, [xproto])
3086   AS_IF([test "${enable_xvideo}" != "no"], [
3087     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [have_xcb_xvideo="yes"])
3088   ])
3090   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [have_xcb_randr="yes"])
3092   dnl xcb-utils
3093   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [have_xcb_keysyms="yes"], [
3094     AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
3095   ])
3097 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3098 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3099 AM_CONDITIONAL([HAVE_XCB_RANDR], [test "${have_xcb_randr}" = "yes"])
3100 AM_CONDITIONAL([HAVE_XCB_XVIDEO], [test "${have_xcb_xvideo}" = "yes"])
3104 dnl VDPAU needs X11
3106 AC_ARG_ENABLE(vdpau,
3107   [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3108 have_vdpau="no"
3109 AS_IF([test "${enable_vdpau}" != "no"], [
3110   PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3111     have_vdpau="yes"
3112     AS_IF([test "${no_x}" = "yes"], [
3113       AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3114     ])
3115   ], [
3116     AS_IF([test -n "${enable_vdpau}"], [
3117       AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3118     ])
3119   ])
3121 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3123 have_avcodec_vdpau="no"
3124 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3125   case "${avfork}" in
3126     libav) av_vdpau_ver="56.10.0" ;;
3127     ffmpeg) av_vdpau_ver="56.19.100" ;;
3128   esac
3129   PKG_CHECK_EXISTS([libavcodec >= ${av_vdpau_ver}], [
3130     have_avcodec_vdpau="yes"
3131     AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3132   ], [
3133     AS_IF([test -n "${enable_vdpau}"], [
3134       AC_MSG_ERROR([libavcodec >= 56.10.0 is required for VDPAU decoding.])
3135     ], [
3136       AC_MSG_WARN([libavcodec >= 56.10.0 are required for VDPAU decoding.])
3137     ])
3138   ])
3140 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3144 dnl  Wayland
3146 AC_ARG_ENABLE(wayland,
3147   [AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)])])
3148 have_wayland="no"
3149 have_wayland_egl="no"
3151 AS_IF([test "${enable_wayland}" != "no"], [
3152   PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91], [
3153     AC_MSG_CHECKING([for the Wayland protocols])
3154     PKG_CHECK_EXISTS([wayland-protocols >= 1.4], [
3155       WAYLAND_PROTOCOLS="$(${PKG_CONFIG} wayland-protocols --variable pkgdatadir)"
3156       AC_MSG_RESULT([${WAYLAND_PROTOCOLS}])
3157     ], [
3158       AC_MSG_RESULT([not found])
3159       AC_MSG_ERROR([$(${PKG_CONFIG} --print-errors 'wayland-protocols >= 1.4')])
3160     ])
3162     AC_MSG_CHECKING([for the Wayland scanner])
3163     PKG_CHECK_EXISTS([wayland-scanner], [
3164       WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3165       AC_MSG_RESULT([${WAYLAND_SCANNER}])
3166     ], [
3167       AC_MSG_RESULT([not found])
3168       AC_MSG_ERROR([$(${PKG_CONFIG} --print-errors wayland-scanner)])
3169     ])
3171     have_wayland="yes"
3173     AS_IF([test "${have_egl}" = "yes"], [
3174       PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl], [
3175         have_wayland_egl="yes"
3176       ], [
3177         AC_MSG_ERROR([${WAYLAND_EGL_PKG_ERRORS}.])
3178       ])
3179     ])
3180   ], [
3181     AS_IF([test -n "${enable_wayland}"], [
3182       AC_MSG_ERROR([${WAYLAND_CLIENT_PKG_ERRORS}.])
3183     ])
3184   ])
3186 AC_SUBST([WAYLAND_PROTOCOLS])
3187 AC_SUBST([WAYLAND_SCANNER])
3188 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3189 AM_CONDITIONAL([HAVE_WAYLAND_EGL], [test "${have_wayland_egl}" = "yes"])
3193 dnl  SDL image decoder module
3195 AC_ARG_ENABLE(sdl-image,
3196   [  --enable-sdl-image      SDL image support (default enabled)])
3197 AS_IF([test "${enable_sdl_image}" != "no"],[
3198   PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3199     VLC_ADD_PLUGIN([sdl_image])
3200   ], [
3201     AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3202   ])
3206 dnl  freetype module
3208 AC_ARG_ENABLE(freetype,
3209   [  --enable-freetype       freetype support   (default auto)])
3210 AC_ARG_ENABLE(fribidi,
3211   [  --enable-fribidi        fribidi support    (default auto)])
3212 AC_ARG_ENABLE(harfbuzz,
3213   [  --enable-harfbuzz       harfbuzz support   (default auto)])
3214 AC_ARG_ENABLE(fontconfig,
3215   [  --enable-fontconfig     fontconfig support (default auto)])
3217 AC_ARG_WITH([default-font],
3218     AS_HELP_STRING([--with-default-font=PATH],
3219         [Path to the default font]),
3220         [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3221             "$withval", [Default font])])
3222 AC_ARG_WITH([default-monospace-font],
3223     AS_HELP_STRING([--with-default-monospace-font=PATH],
3224         [Path to the default font]),
3225         [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3226             "$withval", [Default monospace font])])
3228 AC_ARG_WITH([default-font-family],
3229     AS_HELP_STRING([--with-default-font-family=NAME],
3230         [Path to the default font family]),
3231         [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3232             "$withval", [Default font family])])
3233 AC_ARG_WITH([default-monospace-font-family],
3234     AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3235         [Path to the default font family]),
3236         [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3237             "$withval", [Default monospace font family])])
3239 have_freetype="no"
3240 have_fontconfig="no"
3241 have_fribidi="no"
3242 have_harfbuzz="no"
3244 if test "${enable_freetype}" != "no"; then
3245    PKG_CHECK_MODULES(FREETYPE, freetype2, [
3246       have_freetype="yes"
3247       VLC_ADD_CPPFLAGS([skins2],[${FREETYPE_CFLAGS}])
3248       VLC_ADD_LIBS([skins2],[${FREETYPE_LIBS}])
3250     dnl fontconfig support
3251     AS_IF([test "${enable_fontconfig}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3252       PKG_CHECK_MODULES(FONTCONFIG, [fontconfig >= 2.11], [
3253         have_fontconfig="yes"
3254       ], [
3255         AC_MSG_WARN([${FONTCONFIG_PKG_ERRORS}. Styles will be disabled in FreeType.])
3256       ])
3257     ])
3259       dnl fribidi support
3260       if test "${enable_fribidi}" != "no"; then
3261         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3262           have_fribidi="yes"
3263           VLC_ADD_CPPFLAGS([skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3264           VLC_ADD_LIBS([skins2], [${FRIBIDI_LIBS}])
3265         ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional text and complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3266       fi
3268       dnl harfbuzz support
3269       if test "${have_fribidi}" != "no"; then
3270         if test "${enable_harfbuzz}" != "no"; then
3271           PKG_CHECK_MODULES(HARFBUZZ, harfbuzz, [
3272             have_harfbuzz="yes"
3273             VLC_ADD_CPPFLAGS([skins2], [${HARFBUZZ_CFLAGS} -DHAVE_HARFBUZZ])
3274             VLC_ADD_LIBS([skins2], [${HARFBUZZ_LIBS}])
3275           ],[AC_MSG_WARN([${HARFBUZZ_PKG_ERRORS}. Support for complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3276         fi
3277       fi
3278   ],[
3279   AS_IF([test -n "${enable_freetype}"],[
3280     AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3281     ])
3282   ])
3285 AM_CONDITIONAL([HAVE_FREETYPE], [test "${have_freetype}" = "yes"])
3286 AM_CONDITIONAL([HAVE_FONTCONFIG], [test "${have_fontconfig}" = "yes"])
3287 AM_CONDITIONAL([HAVE_FRIBIDI], [test "${have_fribidi}" = "yes"])
3288 AM_CONDITIONAL([HAVE_HARFBUZZ], [test "${have_harfbuzz}" = "yes"])
3291 dnl SAPI (text to Speech renderer for Windows)
3293 AC_LANG_PUSH([C++])
3294 AC_CHECK_TYPES([ISpObjectToken],[
3295               have_sapi="yes"
3296             ],[AC_MSG_WARN([sapi.h not found. Text to Speech renderer for Windows disabled])],
3297               [#include <windows.h>
3298                #include <sapi.h>
3299                #include <sphelper.h>])
3300 AM_CONDITIONAL([HAVE_SAPI], [test "${have_sapi}" = "yes"])
3301 AC_LANG_POP([C++])
3304 dnl  SVG module (text rendering and image decoding)
3306 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3307 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3310 dnl  Windows DirectX module
3313 AC_ARG_ENABLE(directx,
3314   [AS_HELP_STRING([--enable-directx],
3315     [Microsoft DirectX support (default enabled on Windows)])],, [
3316   AS_IF([test "${SYS}" = "mingw32"], [
3317     enable_directx="yes"
3318   ], [
3319     enable_directx="no"
3320   ])
3322 AS_IF([test "${enable_directx}" != "no"], [
3323   dnl DirectDraw
3324   AC_CHECK_HEADERS(ddraw.h, [
3325     VLC_ADD_PLUGIN([directdraw])
3326   ])
3328   dnl OpenGL
3329   AC_CHECK_HEADERS(GL/wglew.h, [
3330     VLC_ADD_PLUGIN([glwin32 wgl])
3331   ],, [
3332     #include <windows.h>
3333     #include <GL/gl.h>
3334   ])
3336   dnl Direct3D11
3337   AC_CHECK_HEADERS(d3d11.h, [
3338     VLC_ADD_PLUGIN([direct3d11 direct3d11_filters])
3339   ])
3341   dnl Direct3D9
3342   AC_CHECK_HEADERS(d3d9.h, [
3343     VLC_ADD_PLUGIN([direct3d9])
3344     AC_CHECK_HEADERS(d3dx9effect.h)
3346     AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
3347         [[#define COBJMACROS
3348           #include <d3d9.h>
3349           #include <dxva2api.h>
3350           #ifndef IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids
3351           # error dxva2 too old
3352           #endif
3353         ]],[[;]])
3354       ],[
3355         VLC_ADD_PLUGIN([direct3d9_filters])
3356       ],
3357       [AC_MSG_WARN([Could not find required IDirectXVideoDecoder in dxva2api.h])])
3359   ])
3363 dnl  Linux framebuffer module
3365 AC_CHECK_HEADER([linux/fb.h], [
3366   VLC_ADD_PLUGIN([fb])
3370 dnl  libcaca plugin
3372 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3375 dnl  OS/2 KVA plugin
3377 AC_ARG_ENABLE(kva,
3378   [AS_HELP_STRING([--enable-kva],
3379     [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
3380   AS_IF([test "$SYS" = "os2"], [
3381     enable_kva="yes"
3382   ])
3384 have_kva="no"
3385 KVA_LIBS=""
3386 AS_IF([test "$enable_kva" != "no"], [
3387   AC_CHECK_HEADERS([kva.h], [
3388     have_kva="yes"
3389     AC_CHECK_LIB(kva, main, [
3390       KVA_LIBS="-lkva"
3391     ])
3392   ])
3394 AC_SUBST(KVA_LIBS)
3395 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3398 dnl MMAL plugin
3400 AC_ARG_ENABLE(mmal,
3401   AS_HELP_STRING([--enable-mmal],
3402     [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3403 if test "${enable_mmal}" != "no"; then
3404   VLC_SAVE_FLAGS
3405   LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
3406   CPPFLAGS="${CPPFLAGS} -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux"
3407   AC_CHECK_HEADERS(interface/mmal/mmal.h,
3408     [ AC_CHECK_LIB(bcm_host, vc_tv_unregister_callback_full, [
3409         have_mmal="yes"
3410         VLC_ADD_PLUGIN([mmal])
3411         VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3412         VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ])
3413         VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif ]) ], [
3414           AS_IF([test "${enable_mmal}" = "yes"],
3415             [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3416             [ AC_MSG_WARN([Cannot find bcm library...]) ])
3417           ],
3418         [])
3419     ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3420       [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3421       [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3422   VLC_RESTORE_FLAGS
3424 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3427 dnl  Audio plugins
3430 EXTEND_HELP_STRING([Audio plugins:])
3433 dnl  Pulseaudio module
3435 AC_ARG_ENABLE(pulse,
3436   [AS_HELP_STRING([--enable-pulse],
3437     [use the PulseAudio client library (default auto)])])
3438 have_pulse="no"
3439 AS_IF([test "${enable_pulse}" != "no"], [
3440   PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3441     have_pulse="yes"
3442   ], [
3443     AS_IF([test "x${enable_pulse}" != "x"], [
3444       AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3445     ])
3446   ])
3448 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3451 dnl  ALSA module
3453 AC_ARG_ENABLE(alsa,
3454   [AS_HELP_STRING([--enable-alsa],
3455     [support the Advanced Linux Sound Architecture (default auto)])],, [
3456   AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3457     enable_alsa="yes"
3458   ])
3460 have_alsa="no"
3461 AS_IF([test "${enable_alsa}" != "no"], [
3462   PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3463     have_alsa="yes"
3464   ], [
3465     AS_IF([test "x${enable_alsa}" != "x"], [
3466       AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required. Pass --disable-alsa to ignore this error.])
3467     ])
3468   ])
3470 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3473 dnl  Open Sound System module
3475 AC_ARG_ENABLE(oss,
3476   [AS_HELP_STRING([--enable-oss],
3477     [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)])],, [
3478   AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3479     enable_oss="no"
3480   ])
3482 have_oss="no"
3483 OSS_LIBS=""
3484 AS_IF([test "$enable_oss" != "no"], [
3485   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3486     have_oss="yes"
3487     AC_CHECK_LIB(ossaudio, main, [
3488       OSS_LIBS="-lossaudio"
3489     ])
3490   ])
3492 AC_SUBST(OSS_LIBS)
3493 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3496 dnl  OpenBSD sndio module
3498 AC_ARG_ENABLE([sndio],
3499   [AS_HELP_STRING([--disable-sndio],
3500     [support the OpenBSD sndio (default auto)])],, [
3501   AS_IF([test "$SYS" = "openbsd"], [
3502     enable_sndio="yes"
3503   ])
3505 have_sndio="no"
3506 AS_IF([test "$enable_sndio" != "no"], [
3507   AC_CHECK_HEADER([sndio.h], [
3508     have_sndio="yes"
3509   ])
3511 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3514 dnl  Windows Audio Session plugin
3516 AC_ARG_ENABLE([wasapi],
3517   [AS_HELP_STRING([--enable-wasapi],
3518     [use the Windows Audio Session API (default auto)])
3520 have_wasapi="no"
3521 AS_IF([test "$enable_wasapi" != "no"], [
3522   AC_CHECK_HEADER([audioclient.h], [
3523     have_wasapi="yes"
3524   ], [
3525     AS_IF([test "x${enable_wasapi}" != "x"], [
3526       AC_MSG_ERROR([Windows Audio Session API not found.])
3527     ])
3528   ])
3530 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3533 dnl  JACK modules
3535 AC_ARG_ENABLE(jack,
3536   [AS_HELP_STRING([--disable-jack],
3537     [do not use jack (default auto)])])
3538 have_jack="no"
3539 AS_IF([test "${enable_jack}" != "no"], [
3540     PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3541       [ have_jack=yes ],
3542       [
3543       AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3545       PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3546       [ have_jack=yes ],
3547       [
3548       AS_IF([test -n "${enable_jack}"],
3549          [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3550          [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3551       ])
3552     ])
3554 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3557 dnl  OpenSLES Android
3559 AC_ARG_ENABLE(opensles,
3560   [  --enable-opensles       Android OpenSL ES audio module (default disabled)])
3561 if test "${HAVE_ANDROID}" = "1"; then
3562   if test "${enable_opensles}" = "yes"; then
3563       AC_CHECK_HEADERS(SLES/OpenSLES.h,
3564         [ VLC_ADD_PLUGIN([opensles_android]) ],
3565         [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3566   fi
3570 dnl  Tizen audio
3572 AC_ARG_ENABLE(tizen_audio,
3573   [AS_HELP_STRING([--enable-tizen-audio],
3574     [Tizen audio module (default enabled on Tizen)])],, [
3575   AS_IF([test "$HAVE_TIZEN" = "1"], [
3576     enable_tizen_audio="yes"
3577   ])
3579 if test "${enable_tizen_audio}" = "yes"; then
3580   AC_CHECK_HEADERS(audio_io.h,
3581     [ VLC_ADD_PLUGIN([tizen_audio]) ],
3582     [ AC_MSG_ERROR([cannot find Tizen audio_io headers])] )
3586 dnl libsamplerate plugin
3588 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3591 dnl  soxr module
3593 PKG_ENABLE_MODULES_VLC([SOXR], [], [soxr >= 0.1.2], [SoX Resampler library], [auto])
3596 dnl  OS/2 KAI plugin
3598 AC_ARG_ENABLE(kai,
3599   [AS_HELP_STRING([--enable-kai],
3600     [support the K Audio Interface KAI (default enabled on OS/2)])],, [
3601   AS_IF([test "$SYS" = "os2"], [
3602     enable_kai="yes"
3603   ])
3605 have_kai="no"
3606 KAI_LIBS=""
3607 AS_IF([test "$enable_kai" != "no"], [
3608   AC_CHECK_HEADERS([kai.h], [
3609     have_kai="yes"
3610     AC_CHECK_LIB(kai, main, [
3611       KAI_LIBS="-lkai"
3612     ])
3613   ])
3615 AC_SUBST(KAI_LIBS)
3616 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3619 dnl  chromaprint audio track fingerprinter
3621 m4_pushdef([libchromaprint_version], 0.6.0)
3622 PKG_WITH_MODULES([CHROMAPRINT],[libchromaprint >= libchromaprint_version],
3623     VLC_ADD_PLUGIN([stream_out_chromaprint]),
3624     AS_IF([test "${enable_chromaprint}" = "yes"],
3625         [AC_MSG_ERROR(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)],
3626         [AC_MSG_WARN(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)]
3627          ),
3628     [(Chromaprint based audio fingerprinter)],[auto])
3629 m4_popdef([libchromaprint_version])
3632 dnl  Chromecast streaming support
3634 m4_pushdef([protobuf_lite_version], 2.5.0)
3635 AC_ARG_VAR(PROTOC, [protobuf compiler])
3636 AC_CHECK_PROGS(PROTOC, protoc, no)
3637 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3638     AS_IF([test "x${PROTOC}" != "xno"], [
3639         build_chromecast="yes"
3640     ], [
3641     AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3642     ])
3643 ], [
3644     AS_IF([test "${enable_chromecast}" = "yes"],
3645         AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3646         AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3647     )
3648     enable_chromecast="no"
3649 ], [(Chromecast streaming support)], [auto])
3650 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3651 m4_popdef([protobuf_lite_version])
3654 dnl  Interface plugins
3657 EXTEND_HELP_STRING([Interface plugins:])
3660 dnl QT
3662 AC_ARG_ENABLE(qt, [
3663   AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)])],, [
3664   AS_IF([test "${SYS}" = "darwin"], [
3665     enable_qt="no"
3666   ])
3668 have_qt5_x11="no"
3669 AS_IF([test "${enable_qt}" != "no"], [
3670   PKG_CHECK_MODULES([QT], [Qt5Core >= 5.5.0 Qt5Widgets Qt5Gui Qt5Svg], [
3671       PKG_CHECK_MODULES([QT5_X11], [Qt5X11Extras], [
3672           have_qt5_x11="yes"
3673       ],[
3674           AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3675       ])
3676       QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3677       QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3678       QT_VERSION="$(eval $PKG_CONFIG --modversion Qt5Gui)"
3679       AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3680       AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3681       AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3682     ], [
3683       AS_IF([test -n "${enable_qt}"],[
3684         AC_MSG_ERROR([${QT_PKG_ERRORS}.])
3685       ],[
3686         AC_MSG_WARN([${QT_PKG_ERRORS}.])
3687       ])
3688       enable_qt="no"
3689     ])
3692 AS_IF([test "${enable_qt}" != "no"], [
3693   ALIASES="${ALIASES} qvlc"
3695 AC_SUBST(QT_VERSION)
3696 AM_CONDITIONAL(ENABLE_QT, [test "$enable_qt" != "no"])
3697 AM_CONDITIONAL([HAVE_QT5_X11], [test "${have_qt5_x11}" = "yes"])
3700 dnl detect kde4-config patch (used for kde solids).
3702 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
3703 AS_IF([test "x$KDE4_CONFIG" = "x"], [
3704   KDE4_CONFIG="kde4-config"
3708 dnl Simple test for skins2 dependency
3710 AS_IF([test "$enable_qt" = "no"], [
3711   AS_IF([test "${enable_skins2}" = "yes"], [
3712     AC_MSG_ERROR([The skins2 module depends on the Qt 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 Qt development package or alternatively you can also configure with: --disable-qt --disable-skins2.])
3713   ], [
3714     enable_skins2="no"
3715     AC_MSG_WARN([The skins2 module depends on the Qt interface, Qt is not built so skins2 is disabled.])
3716   ])
3720 dnl Skins2 module
3722 AC_ARG_ENABLE(skins2,
3723   [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3724 AS_IF([test "${enable_skins2}" != "no"], [
3725   have_skins_deps="yes"
3727   dnl Win32
3728   AS_IF([test "${SYS}" = "mingw32"], [
3729     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3730     VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3731   dnl OS/2
3732   ], [test "${SYS}" = "os2"], [
3733     VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3734   dnl Linux/Unix
3735   ], [
3736     PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3737     PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3738     PKG_CHECK_MODULES([XCURSOR], [xcursor],, [have_skins_deps="no"])
3739     PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3740     VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3741     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} ${XCURSOR_LIBS} -lX11])
3742   ])
3744   dnl we need freetype
3745   AS_IF([test "${have_freetype}" != "yes"], [
3746     have_skins_deps="no"
3747   ])
3749   AS_IF([test "${have_skins_deps}" = "no"], [
3750     AS_IF([test "x${enable_skins2}" = "x"], [
3751       AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3752     ], [
3753       AC_MSG_ERROR([Skins2 interface requires FreeType, libxcursor, libxpm, libxext and libxinerama])
3754     ])
3755     enable_skins2="no"
3756   ], [
3757     ALIASES="${ALIASES} svlc"
3758     enable_skins2="yes"
3759   ])
3761 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3763 AC_ARG_ENABLE(libtar,
3764   [  --enable-libtar         libtar support for skins2 (default auto)])
3765 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3766   AC_CHECK_HEADERS(libtar.h, [
3767     VLC_ADD_LIBS([skins2],[-ltar])
3768   ])
3772 dnl  MacOS X gui module
3774 AC_ARG_ENABLE(macosx,
3775   [  --enable-macosx         Mac OS X gui support (default enabled on Mac OS X)])
3776 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3777 then
3779   dnl
3780   dnl If possible, use xcrun to find the right ibtool
3781   dnl
3783   AC_PATH_PROG([XCRUN], [xcrun], [no])
3784   AS_IF([test ! "x${XCRUN}" = "xno"], [
3785     AC_MSG_CHECKING([for ibtool (using xcrun)])
3786     XIB="$(eval $XCRUN -f ibtool 2>/dev/null || echo no)"
3787     AC_MSG_RESULT([${XIB}])
3788   ], [
3789     AC_MSG_WARN([Looking for tools without using xcrun])
3790   ])
3792   AS_IF([test "x${XIB}" = "xno"], [
3793     AC_PATH_PROG(XIB, [ibtool], [no])
3794     AS_IF([test "x${XIB}" = "xno"], [
3795       AC_MSG_ERROR([ibtool was not found, but is required for --enable-macosx])
3796     ])
3797   ])
3799 AM_CONDITIONAL(ENABLE_MACOSX_UI, [test "$enable_macosx" != "no" -a "${SYS}" = "darwin"])
3802 dnl  MacOS X sparkle update support
3804 AC_ARG_ENABLE(sparkle,
3805   [  --enable-sparkle        Sparkle update support for OS X (default enabled on Mac OS X)])
3806 if test "x${enable_sparkle}" != "xno" -a "${HAVE_OSX}" = "1"
3807 then
3808   if test ! -d ${CONTRIB_DIR}/Sparkle.framework -a ! -d ${CONTRIB_DIR}/Frameworks/Sparkle.framework
3809   then
3810     AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3811   fi
3813   AC_DEFINE([HAVE_SPARKLE], [1], [Define to 1 if sparkle is enabled.])
3815 AM_CONDITIONAL(HAVE_SPARKLE, [test "$enable_sparkle" != "no"])
3818 dnl  MacOS X breakpad creash reporter support
3820 AC_ARG_WITH([breakpad],
3821   AS_HELP_STRING([--with-breakpad=URL], [Enable Breakpad reporter using given URL]), [], [with_breakpad=no])
3823 AS_IF([test "$with_breakpad" != "no"], [
3825   AS_IF([test "$with_breakpad" = "yes"], [
3826     AC_MSG_ERROR([You need to supply the CrashDragon Server URL as value for --with-breakpad])
3827   ])
3829   AS_IF([test "$HAVE_OSX" = "1"], [
3830     AC_MSG_CHECKING([for Breakpad framework])
3831     AS_IF([test ! -d ${CONTRIB_DIR}/Breakpad.framework -a \
3832                 ! -d ${CONTRIB_DIR}/Frameworks/Breakpad.framework], [
3833       AC_MSG_RESULT([no])
3834       with_breakpad="no"
3835       AC_MSG_ERROR([Breakpad framework is required and was not found in ${CONTRIB_DIR}])
3836     ], [
3837       AC_MSG_RESULT([yes])
3838     ])
3839   ],[
3840     PKG_CHECK_MODULES([BREAKPAD], [breakpad-client], [
3841       LDFLAGS="${LDFLAGS} -Wl,--build-id"
3842     ], [
3843       AC_MSG_ERROR(["breakpad not found"])
3844     ])
3845   ])
3848 AM_CONDITIONAL(HAVE_BREAKPAD, [test "$with_breakpad" != "no"])
3849 AS_IF([test "$with_breakpad" != "no"], [
3850   AC_SUBST(BREAKPAD_URL, ["${with_breakpad}"])
3854 dnl  Minimal Mac OS X module
3856 AC_ARG_ENABLE(minimal-macosx,
3857   [  --enable-minimal-macosx Minimal Mac OS X support (default disabled)])
3858 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
3859 then
3860   VLC_ADD_PLUGIN([minimal_macosx])
3864 dnl Mac OS X fancy dmg build tool
3866 if test "${HAVE_OSX}" = "1"
3867 then
3868   AC_PATH_PROG(DMGBUILD, dmgbuild, no)
3869   AS_IF([test "x${DMGBUILD}" = "xno"], [
3870     AC_MSG_WARN([dmgbuild not found -- unable to build fancy DMGs])
3871   ])
3873 AM_CONDITIONAL(HAVE_DMGBUILD, [test "x$DMGBUILD" != "xno" -a "${HAVE_OSX}" = "1"])
3876 dnl  VideoToolbox plugins
3877 AC_CHECK_HEADERS(VideoToolbox/VideoToolbox.h, [
3878     VLC_ADD_PLUGIN([videotoolbox])
3879     VLC_ADD_PLUGIN([cvpx])
3880   ])
3883 dnl  AudioToolbox MIDI plugin
3884 AC_CHECK_HEADERS([AudioToolbox/AudioToolbox.h], [
3885   VLC_ADD_PLUGIN([audiotoolboxmidi])
3889 dnl  ncurses module
3891 AC_ARG_ENABLE(ncurses,
3892 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
3893 have_ncurses="no"
3894 AS_IF([test "${enable_ncurses}" != "no"] ,[
3895   PKG_CHECK_MODULES([NCURSES], [ncursesw], [
3896     have_ncurses="yes"
3897     ALIASES="${ALIASES} nvlc"
3898   ], [
3899     AS_IF([test -n "${enable_ncurses}"], [
3900       AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
3901     ])
3902   ])
3904 AM_CONDITIONAL([HAVE_NCURSES], [test "${have_ncurses}" = "yes"])
3907 dnl  Lirc plugin
3909 AC_ARG_ENABLE(lirc,
3910   [  --enable-lirc           lirc support (default disabled)])
3911 have_lirc="no"
3912 AS_IF([test "${enable_lirc}" = "yes"], [
3913   AC_CHECK_HEADER(lirc/lirc_client.h, [
3914     AC_CHECK_LIB(lirc_client, lirc_init, [
3915       have_lirc="yes"
3916     ])
3917   ])
3919 AM_CONDITIONAL([HAVE_LIRC], [test "${have_lirc}" = "yes"])
3922 dnl  SRT plugin
3924 PKG_ENABLE_MODULES_VLC([SRT], [access_srt access_output_srt], [srt >= 1.2.2], [SRT input/output plugin], [auto], [], [], [-DENABLE_SRT])
3926 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3928 dnl  goom visualization plugin
3930 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3933 dnl libprojectM visualization plugin
3935 AC_ARG_ENABLE(projectm,
3936   [  --enable-projectm       projectM visualization plugin (default enabled)])
3937 AS_IF([test "${enable_projectm}" != "no"],
3938   [
3939     PKG_CHECK_MODULES(PROJECTM, libprojectM,
3940     [
3941       VLC_ADD_PLUGIN([projectm])
3942       PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
3943         [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3944         [ AC_MSG_WARN( [Using libprojectM version 1] )
3945       ])
3946     ],[
3947       AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
3948     ])
3949   ])
3952 dnl Vovoid VSXu visualization plugin
3954 AC_ARG_ENABLE(vsxu,
3955   [  --enable-vsxu           Vovoid VSXu visualization plugin (default auto)])
3956 AS_IF([test "${enable_vsxu}" != "no"],
3957   [
3958     PKG_CHECK_MODULES(VSXU, libvsxu,
3959     [
3960       VLC_ADD_PLUGIN([vsxu])
3961     ],[
3962       AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
3963     ])
3964   ])
3966 EXTEND_HELP_STRING([Service Discovery plugins:])
3968 dnl  Avahi-Zeroconf services discovery
3969 PKG_ENABLE_MODULES_VLC([AVAHI], [], [avahi-client >= 0.6], [Zeroconf services discovery], [auto])
3972 dnl  libudev services discovery
3973 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
3976 dnl MTP devices services discovery
3977 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
3980 dnl UPnP Plugin (Intel SDK)
3982 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
3985 dnl mDNS using libmicrodns
3987 PKG_ENABLE_MODULES_VLC([MICRODNS], [], [microdns], [mDNS services discovery], [auto])
3990 EXTEND_HELP_STRING([Misc options:])
3993 dnl  libxml2 module
3995 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3999 dnl libgcrypt
4001 AC_ARG_ENABLE(libgcrypt,
4002   [  --disable-libgcrypt     gcrypt support (default enabled)])
4003 AC_ARG_VAR([GCRYPT_CFLAGS], [C compiler flags for gcrypt])
4004 AC_ARG_VAR([GCRYPT_LIBS], [linker flags flags for gcrypt])
4006 # require libgcrypt >= 1.6.0
4007 AS_IF([test "${enable_libgcrypt}" != "no"], [
4008   AC_CACHE_CHECK([for gcrypt 1.6.0 or later], [ac_cv_lib_gcrypt], [
4009     VLC_SAVE_FLAGS
4010     CFLAGS="${CFLAGS} ${GCRYPT_CFLAGS}"
4011     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
4012 [#include <gcrypt.h>
4013 #if GCRYPT_VERSION_NUMBER < 0x010600
4014 #error
4015 #endif]])], [
4016       ac_cv_lib_gcrypt=yes
4017     ], [
4018       ac_cv_lib_gcrypt=no
4019     ])
4020     VLC_RESTORE_FLAGS
4021   ])
4023   AS_IF([test "${ac_cv_lib_gcrypt}" = "yes"], [
4024     AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt])
4025   ], [
4026     AS_IF([test "${enable_libgcrypt}" = "yes"], [
4027       AC_MSG_ERROR([libgcrypt version 1.6.0 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
4028     ])
4029   ])
4032 AS_IF([test -z "$GCRYPT_LIBS"], [
4033   GCRYPT_LIBS="-lgcrypt -lgpg-error"
4036 AC_SUBST(GCRYPT_CFLAGS)
4037 AC_SUBST(GCRYPT_LIBS)
4038 AM_CONDITIONAL([HAVE_GCRYPT], [test "${ac_cv_lib_gcrypt}" = "yes"])
4041 dnl TLS/SSL
4043 AC_ARG_ENABLE(gnutls,
4044   [  --enable-gnutls         GNU TLS TLS/SSL support (default enabled)])
4045 AS_IF([test "${enable_gnutls}" != "no"], [
4046   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.3.6], [
4047     VLC_ADD_PLUGIN([gnutls])
4048   ], [
4049     AS_IF([test -n "${enable_gnutls}"], [
4050       AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4051     ])
4052   ])
4057 dnl Taglib plugin
4059 AC_ARG_ENABLE(taglib,
4060   [AS_HELP_STRING([--disable-taglib],
4061     [do not use TagLib (default enabled)])])
4062 AS_IF([test "${enable_taglib}" != "no"], [
4063   PKG_CHECK_MODULES(TAGLIB, taglib >= 1.9, [
4064     VLC_ADD_PLUGIN([taglib])
4065   ], [
4066     AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4070 dnl  libsecret
4072 PKG_ENABLE_MODULES_VLC([SECRET], [], [libsecret-1 >= 0.18], [use libsecret for keystore], [auto])
4075 dnl  kwallet
4077 AC_ARG_ENABLE(kwallet,
4078   [AS_HELP_STRING([--enable-kwallet],
4079     [use kwallet (via D-Bus) for keystore (default enabled)])])
4080 AS_IF([test "${enable_kwallet}" != "no" -a "${have_dbus}" = "yes"], [
4081   VLC_ADD_PLUGIN([kwallet])
4085 dnl update checking system
4087 AC_ARG_ENABLE(update-check,
4088   [  --enable-update-check   update checking system (default disabled)])
4089 if test "${enable_update_check}" = "yes"
4090 then
4091  AS_IF([test "${ac_cv_lib_gcrypt}" != "yes"],[
4092     AC_MSG_ERROR([libgcrypt is required for update checking system]) ])
4094 AM_CONDITIONAL(UPDATE_CHECK, [test "${enable_update_check}" = "yes"])
4097 dnl OS X notification plugin
4099 AC_ARG_ENABLE(osx_notifications,
4100   [  --enable-osx-notifications          osx notification plugin (default disabled)],,
4101   [enable_osx_notifications=no])
4102 AS_IF([test "${enable_osx_notifications}" != "no"], [
4103   if test -d ${CONTRIB_DIR}/Growl.framework -o -d ${CONTRIB_DIR}/Frameworks/Growl.framework
4104   then
4105       VLC_ADD_PLUGIN([osx_notifications])
4106       VLC_ADD_LIBS([osx_notifications], [-Wl,-framework,Growl,-framework,Foundation])
4107       VLC_ADD_OBJCFLAGS([osx_notifications], [-fobjc-exceptions] )
4108   fi
4112 dnl Libnotify notification plugin
4114 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-3.0], [libnotify notification], [auto])
4117 dnl  libplacebo support
4119 AC_ARG_ENABLE(libplacebo,
4120   [AS_HELP_STRING([--disable-libplacebo],
4121       [disable libplacebo support (default auto)])])
4123 AS_IF([test "$enable_libplacebo" != "no"], [
4124   PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 0.2.1], [
4125     AC_DEFINE([HAVE_LIBPLACEBO], [1], [Define to 1 if libplacebo is enabled.])
4126   ], [
4127     AS_IF([test -n "${enable_libplacebo}"], [
4128       AC_MSG_ERROR([${LIBPLACEBO_PKG_ERRORS}.])
4129     ])
4130     enable_libplacebo="no"
4131   ])
4133 AM_CONDITIONAL(HAVE_LIBPLACEBO, [test "$enable_libplacebo" != "no"])
4137 dnl  Endianness check
4139 AC_C_BIGENDIAN
4140 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4141   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4142 ], [
4143   DEFS_BIGENDIAN=""
4145 AC_SUBST(DEFS_BIGENDIAN)
4148 dnl Where to install KDE solid .desktop
4150 AC_ARG_WITH(kde-solid,
4151   AS_HELP_STRING([--with-kde-solid=PATH],
4152                  [KDE Solid actions directory (auto)]),, [
4154 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" ; then
4155   with_kde_solid="yes"
4158 soliddatadir=""
4159 AS_IF([test "${with_kde_solid}" != "no"], [
4160   AS_IF([test "${with_kde_solid}" = "yes"], [
4161     kde4datadir="`${KDE4_CONFIG} --install data`"
4162     AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4163     soliddatadir="${kde4datadir}/solid/actions"
4164   ], [
4165     soliddatadir="${with_kde_solid}"
4166   ])
4168 AC_SUBST(soliddatadir)
4169 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4172 dnl Check wether we have the PROCESS_MITIGATION_IMAGE_LOAD_POLICY 
4173 dnl It should only be available when building for win10, but some SDKs define it unconditionnaly
4175 if test "${SYS}" = "mingw32"; then
4176     AC_CHECK_TYPES([PROCESS_MITIGATION_IMAGE_LOAD_POLICY],,,[#include <windows.h>])
4179 EXTEND_HELP_STRING([Components:])
4182 dnl  the VLC binary
4184 AC_ARG_ENABLE(vlc,
4185   [  --enable-vlc            build the VLC media player (default enabled)])
4186 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4189 dnl Fuzzer (at the end in order to don't mess dependencies FLAGS)
4191 AS_VAR_IF(with_libfuzzer, no, [], [
4192     LIBS="-lstdc++ ${LIBM} ${LIBPTHREAD} -L${with_libfuzzer} -lFuzzer"
4193     AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc-guard, [
4194         AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard])
4195         AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard], [CXXFLAGS])
4196         AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp])
4197         AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp], [CXXFLAGS])
4198     ], [
4199         AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc, [
4200             AX_APPEND_FLAG([-fsanitize-coverage=trace-pc])
4201             AX_APPEND_FLAG([-fsanitize-coverage=trace-pc], [CXXFLAGS])
4202         ], [
4203             AC_MSG_ERROR([Sanitizer coverage not supported by your compiler])
4204         ])
4205     ])
4209 dnl  Stuff used by the program
4211 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4212 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4213 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4214 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4215 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4216 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4217 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4218 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4219 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4220 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4221 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4222 AC_SUBST(COPYRIGHT_MESSAGE)
4223 AC_SUBST(VERSION_MESSAGE)
4224 AC_SUBST(VERSION_MAJOR)
4225 AC_SUBST(VERSION_MINOR)
4226 AC_SUBST(VERSION_REVISION)
4227 AC_SUBST(VERSION_EXTRA)
4228 AC_SUBST(COPYRIGHT_YEARS)
4229 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4230 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4231 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4233 dnl  Handle substvars that use $(top_srcdir)
4235 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4238 dnl  Configuration is finished
4240 AC_SUBST(SYS)
4241 AC_SUBST(ARCH)
4242 AC_SUBST(ALIASES)
4243 AC_SUBST(ASM)
4244 AC_SUBST(MOC)
4245 AC_SUBST(RCC)
4246 AC_SUBST(UIC)
4247 AC_SUBST(WINDRES)
4248 AC_SUBST(WINE_SDK_PATH)
4249 AC_SUBST(LIBEXT)
4250 AC_SUBST(AM_CPPFLAGS)
4251 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4252 AC_SUBST(FILE_LIBVLCCORE_DLL)
4253 AC_SUBST(FILE_LIBVLC_DLL)
4255 AC_CONFIG_FILES([
4256   Makefile
4257   doc/Makefile
4258   modules/Makefile
4259   m4/Makefile
4260   po/Makefile.in
4261   share/Makefile
4262   compat/Makefile
4263   src/Makefile
4264   lib/Makefile
4265   bin/Makefile
4266   test/Makefile
4267   modules/hw/mmal/Makefile
4268   share/vlc.appdata.xml.in
4271 AM_COND_IF([HAVE_WIN32], [
4272   AC_CONFIG_FILES([
4273     extras/package/win32/NSIS/spad.nsi
4274     extras/package/win32/NSIS/vlc.win32.nsi
4275     extras/package/win32/msi/config.wxi
4276   ])
4279 AM_COND_IF([HAVE_DARWIN], [
4280   AC_CONFIG_FILES([
4281     modules/gui/macosx/UI/InfoPlist.strings:modules/gui/macosx/Resources/InfoPlist.strings.in
4282     share/macosx/Info.plist:share/Info.plist.in
4283   ])
4286 dnl Generate makefiles
4287 AC_OUTPUT
4289 dnl Do we have to use make or gmake ?
4290 if make --version 2>&1|grep -q GNU
4291 then
4292     # GNU make, all seems good
4293     MAKE=make
4294 else
4295     # Known GNU make alias (on BSD)
4296     MAKE=gmake
4298 dnl Shortcut to nice compile message
4299 if test -n $SHELL; then
4300   SHELL=${CONFIG_SHELL-/bin/sh}
4302 rm -f compile
4303 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4304 echo "#! $SHELL
4305 rm -f .error\$\$
4306 ERROR=0
4307 export PATH=\"$PATH\" LANG=C
4308 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4309 test -f .error\$\$ && ERROR=1
4310 rm -f .error\$\$
4311 exit \$ERROR" >compile
4312 chmod a+x compile
4314 echo "
4315 libvlc configuration
4316 --------------------
4317 version               : ${VERSION}
4318 system                : ${SYS}
4319 architecture          : ${ARCH}
4320 optimizations         : ${enable_optimizations}"
4321 if test "${enable_vlc}" != "no"; then
4322 echo "vlc aliases           :${ALIASES}"
4323 else
4324 echo "build vlc executable  : no"
4326 echo "
4327 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."