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