]> git.sesse.net Git - vlc/blob - configure.ac
Remove ZPL demuxer
[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([libvlccore],[-lwinmm])
520     ])
521   ])
522 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
523 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
524
525
526 dnl
527 dnl Buggy glibc prevention. Purposedly not cached.
528 dnl See sourceware.org bugs 5058 and 5443.
529 dnl Ubuntu alone has 20 bug numbers for this...
530 dnl
531 AC_MSG_CHECKING(for buggy GNU/libc versions)
532 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
533 #include <limits.h>
534 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
535   && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
536 # error GNU/libc with dcgettext killer bug!
537 #endif
538 ])], [
539   AC_MSG_RESULT([not present])
540 ], [
541   AC_MSG_RESULT([found])
542   AS_IF([test "x${enable_nls}" != "xno"], [
543     AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
544 work-around for this. Check with your distribution vendor on how to update the
545 glibc run-time. Alternatively, build with --disable-nls.])
546   ])
547 ])
548
549 dnl Plugin compilation stuff
550
551 VLC_LIBRARY_SUFFIX
552
553 dnl Check for system libs needed
554 need_libc=false
555
556 dnl Check for usual libc functions
557 AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
558 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])
559 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])
560 AC_CHECK_FUNCS(fdatasync,,
561   [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
562 ])
563
564 dnl mingw64 implements those as static inline, not functions with C linkage
565 AC_LINK_IFELSE([
566     AC_LANG_PROGRAM([#include <stdio.h>], [
567         char *c;
568         if (asprintf(&c, "%s %d", "string", 1) == -1)
569             c = NULL;
570     ])],[AC_DEFINE([HAVE_ASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([asprintf])])
571 AC_LINK_IFELSE([
572     AC_LANG_PROGRAM([#include <stdio.h>
573                      #include <stdarg.h>], [
574         char *c;
575         va_list ap;
576         if (vasprintf(&c, "%s %d", ap) == -1)
577             c = NULL;
578     ])],[AC_DEFINE([HAVE_VASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([vasprintf])])
579
580 dnl C11 static_assert()
581 AC_MSG_CHECKING([for static_assert in assert.h])
582 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
583 static_assert(1, "The impossible happened.");
584 ])], [
585   AC_MSG_RESULT([yes])
586   AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
587 ], [
588   AC_MSG_RESULT([no])
589 ])
590
591 # Windows CE does not have strcoll()
592 AC_FUNC_STRCOLL
593
594 dnl Check for non-standard system calls
595 case "$SYS" in
596   "linux")
597     AC_CHECK_FUNCS([accept4 pipe2 eventfd vmsplice sched_getaffinity])
598     ;;
599   "mingw32")
600     AC_CHECK_FUNCS([_lock_file])
601     ;;
602 esac
603
604 AH_BOTTOM([#include <vlc_fixups.h>])
605
606 dnl Check for struct pollfd
607 AC_CHECK_TYPES([struct pollfd],,,
608 [#include <sys/types.h>
609 #if HAVE_POLL
610 # include <poll.h>
611 #elif defined (_WIN32)
612 # include <winsock2.h>
613 #endif
614 ])
615
616 dnl Checks for socket stuff
617 VLC_SAVE_FLAGS
618 SOCKET_LIBS=""
619 AC_SEARCH_LIBS(connect, [socket], [
620   AS_IF([test "$ac_cv_search_connect" != "none required"], [
621     SOCKET_LIBS="$ac_cv_search_connect"
622   ])
623 ], [
624   AS_IF([test "${SYS}" = "mingw32"], [
625     SOCKET_LIBS="-lws2_32"
626   ])
627 ])
628
629 AC_SEARCH_LIBS([inet_pton], [nsl], [
630  AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
631     SOCKET_LIBS="$ac_cv_search_inet_pton $SOCKET_LIBS"
632   ])
633 ],, [${SOCKET_LIBS}])
634
635 LIBS="${LIBS} ${SOCKET_LIBS}"
636 AC_LINK_IFELSE([
637     AC_LANG_PROGRAM([#ifdef _WIN32
638         # if _WIN32_WINNT < 0x600
639         #  error Needs vista+
640         # endif
641         #include <ws2tcpip.h>
642         #else
643         #include <sys/socket.h>
644         #include <arpa/inet.h>
645         #endif], [
646         char dst[[sizeof(struct in_addr)]];
647         inet_pton(AF_INET, "127.0.0.1", dst);
648     ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
649 AC_CHECK_FUNCS([if_nameindex if_nametoindex])
650 VLC_RESTORE_FLAGS
651 AC_SUBST(SOCKET_LIBS)
652
653 dnl Check for socklen_t
654 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
655 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
656 ac_cv_type_socklen_t,
657 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
658 [#include <sys/types.h>
659 #ifdef _WIN32
660 # include <winsock2.h>
661 # include <ws2tcpip.h>
662 #else
663 # include <sys/socket.h>
664 #endif]], [[socklen_t len; len = 0;]])],
665 ac_cv_type_socklen_t=yes,
666 ac_cv_type_socklen_t=no)])
667 AS_IF([test "$ac_cv_type_socklen_t" = no],
668  [AC_DEFINE(socklen_t, int)])
669
670 dnl Check for struct sockaddr_storage
671 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
672 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
673 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
674   [AC_TRY_COMPILE(
675     [#include <sys/types.h>
676      #if defined( _WIN32 )
677      # include <winsock2.h>
678      #else
679      # include <sys/socket.h>
680      #endif], [struct sockaddr_storage addr;],
681      ac_cv_struct_sockaddr_storage=yes,
682      ac_cv_struct_sockaddr_storage=no)])
683 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
684   AC_DEFINE(sockaddr_storage, sockaddr)
685   AC_DEFINE(ss_family, sa_family)
686 ])
687
688 dnl FreeBSD has a gnugetopt library for this:
689 GNUGETOPT_LIBS=""
690 AC_CHECK_FUNC(getopt_long,, [
691   AC_CHECK_LIB([gnugetopt],[getopt_long], [
692     GNUGETOPT_LIBS="-lgnugetopt"
693   ])
694 ])
695 AC_SUBST(GNUGETOPT_LIBS)
696
697 AC_CHECK_LIB(m,cos,[
698   LIBM="-lm"
699 ], [
700   LIBM=""
701 ])
702 AC_SUBST(LIBM)
703
704 AC_CHECK_LIB(m,lrintf, [
705   AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
706   VLC_ADD_LIBS([skins2],[-lm])
707 ])
708 AC_CHECK_LIB(m,nanf,
709   AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
710 )
711
712 dnl Check for dynamic plugins
713 LIBDL=""
714 have_dynamic_objects="no"
715 VLC_SAVE_FLAGS
716 AC_SEARCH_LIBS(dlsym, [dl svld], [
717   AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
718     LIBDL="$ac_cv_search_dlsym"
719   ])
720   have_dynamic_objects="yes"
721 ])
722 VLC_RESTORE_FLAGS
723
724 # Windows
725 AS_IF([test "${SYS}" = "mingw32"], [
726   LIBDL=""
727   have_dynamic_objects="yes" #assume we can use shared objects
728 ])
729
730 AS_IF([test "${enable_shared}" = "no"], [
731   have_dynamic_objects=no
732 ])
733 AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])
734
735 AC_SUBST(LIBDL)
736
737 dnl Check for thread library
738 LIBPTHREAD=""
739 AS_IF([test "${SYS}" != "mingw32"], [
740   VLC_SAVE_FLAGS
741   LIBS=""
742   AC_SEARCH_LIBS(pthread_rwlock_init, pthread pthreads c_r, [
743     AS_IF([test "$ac_cv_search_pthread_rwlock_init" != "none required"], [
744       LIBPTHREAD="$ac_cv_search_pthread_rwlock_init"
745     ])
746   ])
747   VLC_RESTORE_FLAGS
748
749   AC_CHECK_LIB(rt, clock_nanosleep, [
750     VLC_ADD_LIBS([libvlccore],[-lrt])
751   ], [
752     AC_CHECK_FUNC(nanosleep,,[
753       AC_CHECK_LIB(rt,nanosleep, [
754         VLC_ADD_LIBS([libvlccore],[-lrt])
755       ], [
756         AC_CHECK_LIB(posix4,nanosleep, [
757           VLC_ADD_LIBS([libvlccore],[-lposix4])
758         ])
759       ])
760     ])
761     dnl HP/UX port
762     AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
763   ])
764 ])
765 AC_SUBST(LIBPTHREAD)
766
767 dnl
768 dnl Check for headers
769 dnl
770
771 dnl  POSIX
772 AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h sys/shm.h sys/socket.h])
773 AC_CHECK_HEADERS([net/if.h], [], [],
774 [
775 #include <sys/types.h>
776 #include <sys/socket.h>
777 ])
778 AC_CHECK_HEADER([syslog.h], [have_syslog="yes"], [have_syslog="no"])
779 AM_CONDITIONAL([HAVE_SYSLOG], [test "$have_syslog" = "yes"])
780
781 dnl  BSD
782 AC_CHECK_HEADERS([netinet/udplite.h sys/param.h sys/mount.h])
783
784 dnl  GNU/Linux
785 AC_CHECK_HEADERS([getopt.h linux/dccp.h linux/magic.h mntent.h sys/eventfd.h])
786
787 dnl  MacOS
788 AC_CHECK_HEADERS([xlocale.h])
789
790 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
791 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
792 AC_CHECK_TYPE(ssize_t,, [
793   AC_DEFINE(ssize_t, int)
794 ])
795
796 dnl It seems that autoconf detects pkg-config only during the first
797 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
798 dnl it is nested within a conditional block, so it was not working right.
799 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
800 AC_ARG_VAR(PKG_CONFIG_PATH,
801        [Paths where to find .pc not at the default location])
802 PKG_PROG_PKG_CONFIG()
803
804 dnl On some OS we need static linking
805 AS_IF([test -n "${PKG_CONFIG}" ],[
806     AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
807         PKG_CONFIG="${PKG_CONFIG} --static"
808     ])
809 ])
810
811
812 dnl
813 dnl Check for zlib.h and -lz along with system -lminizip if available
814 dnl
815 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
816 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
817 if test "${have_zlib}" = "yes"
818 then
819   VLC_ADD_LIBS([skins2 sap unzip zip],[-lz])
820   PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
821     AC_CHECK_HEADERS([unzip.h], [
822       have_minizip=yes
823       MINIZIP_LIBS="-lminizip -lz"
824     ], [
825       VLC_ADD_CPPFLAGS([skins2], [-I\\\$(top_srcdir)/modules/access/zip/unzip])
826       VLC_ADD_LIBS([skins2], [\\\$(top_builddir)/modules/libunzip.la])
827       have_minizip=no
828     ])
829   ])
830   VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
831   VLC_ADD_LIBS([skins2],[$MINIZIP_LIBS])
832 fi
833 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
834
835
836 dnl
837 dnl Domain name i18n support via GNU libidn
838 dnl
839 PKG_CHECK_MODULES([IDN], [libidn], [
840   have_libidn="yes"
841   AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
842 ], [
843   have_libidn="no"
844 ])
845
846
847 dnl Check for dbus
848 AC_ARG_ENABLE(dbus,
849   [AS_HELP_STRING([--enable-dbus],
850     [compile D-Bus message bus support (default enabled)])])
851 have_dbus="no"
852 AS_IF([test "${enable_dbus}" != "no"], [
853   PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
854     have_dbus="yes"
855   ], [
856     AS_IF([test -n "${enable_dbus}"], [
857       AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
858     ], [
859       AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
860     ])
861   ])
862 ])
863 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
864
865
866 dnl Check for systemd
867 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
868   have_systemd="yes"
869 ], [
870   AC_MSG_WARN([${SYSTEMD_PKG_ERRORS}.])
871 ])
872 AM_CONDITIONAL([HAVE_SYSTEMD], [test "${have_systemd}" = "yes"])
873
874
875 dnl Check for ntohl, etc.
876 VLC_SAVE_FLAGS
877 CFLAGS="${CFLAGS} -Wall -Werror"
878 AC_CACHE_CHECK([for ntohl in sys/param.h],
879     [ac_cv_c_ntohl_sys_param_h],
880     [     AC_TRY_COMPILE([#include <sys/param.h>],
881         [int meuh; ntohl(meuh);],
882         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
883 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
884     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
885 fi
886 VLC_RESTORE_FLAGS
887
888 EXTEND_HELP_STRING([Optimization options:])
889 dnl
890 dnl  Compiler warnings
891 dnl
892
893 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])
894 RDC_PROG_CC_FLAGS([-pipe])
895 AC_LANG_PUSH([C++])
896 RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
897 AC_LANG_POP([C++])
898
899 dnl
900 dnl  Debugging mode
901 dnl
902 AC_ARG_ENABLE(debug,
903   [AS_HELP_STRING([--enable-debug],
904     [build with run-time assertions (default disabled)])],,
905   [enable_debug="no"])
906 AH_TEMPLATE(NDEBUG,
907             [Define to 1 if debug code should NOT be compiled])
908 AS_IF([test "${enable_debug}" != "no"], [
909   AC_CHECK_HEADERS([valgrind/valgrind.h])
910 ], [
911   AC_DEFINE(NDEBUG)
912 ])
913
914 dnl
915 dnl  Profiling
916 dnl
917 AC_ARG_ENABLE(gprof,
918   [AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)])],,
919   [enable_gprof="no"])
920 AS_IF([test "${enable_gprof}" != "no"], [
921   CFLAGS="${CFLAGS} -pg"
922   CXXFLAGS="${CXXFLAGS} -pg"
923   OBJCFLAGS="${OBJCFLAGS} -pg"
924   LDFLAGS="${LDFLAGS} -pg"
925 ])
926
927 AC_ARG_ENABLE(cprof,
928   [AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)])],,
929   [enable_cprof="no"])
930 AS_IF([test "${enable_gprof}" != "no"], [
931   CFLAGS="${CFLAGS} -finstrument-functions"
932   CXXFLAGS="${CXXFLAGS} -finstrument-functions"
933   OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
934   LDFLAGS="${LDFLAGS} -finstrument-functions"
935 ])
936
937 dnl
938 dnl  Test coverage
939 dnl
940 AC_ARG_ENABLE(coverage,
941   [AS_HELP_STRING([--enable-coverage],
942     [build for test coverage (default disabled)])],,
943   [enable_coverage="no"])
944 AS_IF([test "${enable_coverage}" != "no"], [
945   CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
946   CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
947   LDFLAGS="-lgcov ${LDFLAGS}"
948 ])
949
950 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
951   VLC_SAVE_FLAGS
952   CFLAGS="${CFLAGS} -fvisibility=hidden"
953   CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
954   OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
955   AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
956                  [ac_cv_c_visibility_hidden], [
957     AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
958       ac_cv_c_visibility_hidden=yes
959     ], [
960       ac_cv_c_visibility_hidden=no
961     ])
962   ])
963   AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
964 ])
965
966
967 dnl
968 dnl  Enable/disable optimizations
969 dnl
970 AC_ARG_ENABLE(optimizations,
971   [AS_HELP_STRING([--disable-optimizations],
972     [disable compiler optimizations (default enabled)])],,
973   [enable_optimizations="yes"])
974
975 dnl Check for various optimization flags
976 AS_IF([test "${enable_optimizations}" != "no"], [
977
978   dnl -O3 only in production builds
979   AS_IF([test "${enable_debug}" = "no"], [
980     VLC_SAVE_FLAGS
981     CFLAGS="${CFLAGS} -O3"
982     CXXFLAGS="${CXXFLAGS} -O3"
983     OBJCFLAGS="${OBJCFLAGS} -O3"
984     AC_CACHE_CHECK([if $CC accepts -O3],  [ac_cv_c_o3], [
985       AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
986         ac_cv_c_o3=yes
987       ], [
988         ac_cv_c_o3=no
989       ])
990     ])
991     AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
992   ])
993
994   dnl Check for -ffast-math
995   VLC_SAVE_FLAGS
996   CFLAGS="${CFLAGS} -ffast-math"
997   CXXFLAGS="${CXXFLAGS} -ffast-math"
998   OBJCFLAGS="${OBJCFLAGS} -ffast-math"
999   AC_CACHE_CHECK([if $CC accepts -ffast-math], [ac_cv_c_fast_math], [
1000     AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1001       ac_cv_c_fast_math=yes
1002     ], [
1003       ac_cv_c_fast_math=no
1004     ])
1005   ])
1006   AS_IF([test "${ac_cv_c_fast_math}" = "no"], [VLC_RESTORE_FLAGS])
1007   AH_BOTTOM([
1008 #ifndef __FAST_MATH__
1009 # ifndef _MSC_VER
1010 #  pragma STDC FENV_ACCESS OFF
1011 #  pragma STDC FP_CONTRACT ON
1012 # else
1013 #  pragma fenv_access(off)
1014 #  pragma fp_contract(on)
1015 # endif
1016 #endif
1017 ])
1018
1019   dnl Check for -funroll-loops
1020   VLC_SAVE_FLAGS
1021   CFLAGS="${CFLAGS} -funroll-loops"
1022   CXXFLAGS="${CXXFLAGS} -funroll-loops"
1023   OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1024   AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1025     AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1026       ac_cv_c_unroll_loops=yes
1027     ], [
1028       ac_cv_c_unroll_loops=no
1029     ])
1030   ])
1031   AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1032
1033   AS_IF([test "$enable_debug" = "no"], [
1034     dnl Check for -fomit-frame-pointer
1035     VLC_SAVE_FLAGS
1036     CFLAGS="${CFLAGS} -fomit-frame-pointer"
1037     CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1038     OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1039     AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1040       [ac_cv_c_omit_frame_pointer], [
1041       AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1042         ac_cv_c_omit_frame_pointer=yes
1043       ], [
1044         ac_cv_c_omit_frame_pointer=no
1045       ])
1046     ])
1047     AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1048   ])
1049 ])
1050
1051 VLC_SAVE_FLAGS
1052 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1053 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1054   AC_TRY_LINK([],, [
1055     ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1056   ], [
1057     ac_cv_ld_bsymbolic=""
1058   ])
1059 ])
1060 VLC_RESTORE_FLAGS
1061 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1062 AC_SUBST(SYMBOLIC_LDFLAGS)
1063
1064 dnl Checks for __attribute__(aligned()) directive
1065 VLC_SAVE_FLAGS
1066 CFLAGS="${CFLAGS} -Werror"
1067 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1068     [ac_cv_c_attribute_aligned],
1069     [ac_cv_c_attribute_aligned=0
1070     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1071         AC_TRY_COMPILE([],
1072         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1073         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1074     done])
1075 VLC_RESTORE_FLAGS
1076 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1077     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1078         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1079 fi
1080
1081 dnl Check for __attribute__((packed))
1082 AC_CACHE_CHECK([for __attribute__((packed))],
1083   [ac_cv_c_attribute_packed],
1084   [ac_cv_c_attribute_packed=no
1085    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1086                     [ac_cv_c_attribute_packed=yes])])
1087 if test "${ac_cv_c_attribute_packed}" != "no"; then
1088   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1089 fi
1090
1091 dnl
1092 dnl  Check the CPU
1093 dnl
1094 case "${host_cpu}" in
1095   "")
1096     ARCH=unknown
1097     ;;
1098   *)
1099     ARCH="${host_cpu}"
1100     ;;
1101 esac
1102
1103 dnl Check for backtrace() support
1104 AC_CHECK_HEADERS(execinfo.h)
1105 AC_CHECK_FUNCS(backtrace)
1106
1107 dnl
1108 dnl  default modules
1109 dnl
1110 ALIASES="${ALIASES} cvlc rvlc"
1111
1112 dnl
1113 dnl  Accelerated modules
1114 dnl
1115
1116 dnl  Check for fully working MMX intrinsics
1117 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1118 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1119 AC_ARG_ENABLE(mmx,
1120   [AS_HELP_STRING([--disable-mmx],
1121     [disable MMX optimizations (default auto)])],,[
1122   case "${host_cpu}" in
1123     i?86|x86_64)
1124       enable_mmx="yes"
1125       ;;
1126     *)
1127       enable_mmx="no"
1128       ;;
1129   esac
1130 ])
1131 have_mmx="no"
1132 have_mmxext="no"
1133 AS_IF([test "${enable_mmx}" != "no"], [
1134   ARCH="${ARCH} mmx"
1135   VLC_SAVE_FLAGS
1136   CFLAGS="${CFLAGS} -mmmx"
1137   AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1138     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1139 [#include <mmintrin.h>
1140 #include <stdint.h>
1141 uint64_t frobzor;]], [
1142 [__m64 a, b, c;
1143 a = b = c = (__m64)frobzor;
1144 a = _mm_slli_pi16(a, 3);
1145 a = _mm_adds_pi16(a, b);
1146 c = _mm_srli_pi16(c, 8);
1147 c = _mm_slli_pi16(c, 3);
1148 b = _mm_adds_pi16(b, c);
1149 a = _mm_unpacklo_pi8(a, b);
1150 frobzor = (uint64_t)a;]])], [
1151       ac_cv_c_mmx_intrinsics=yes
1152     ], [
1153       ac_cv_c_mmx_intrinsics=no
1154     ])
1155   ])
1156   VLC_RESTORE_FLAGS
1157   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1158     AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1159   ])
1160
1161   VLC_SAVE_FLAGS
1162   CFLAGS="${CFLAGS} -mmmx"
1163   AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1164     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1165 void *p;
1166 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1167 ]])
1168     ], [
1169       ac_cv_mmx_inline=yes
1170     ], [
1171       ac_cv_mmx_inline=no
1172     ])
1173   ])
1174   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1175     AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1176     have_mmx="yes"
1177   ])
1178
1179   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1180                  [ac_cv_mmxext_inline], [
1181     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1182 void *p;
1183 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1184 ]])
1185     ], [
1186       ac_cv_mmxext_inline=yes
1187     ], [
1188       ac_cv_mmxext_inline=no
1189     ])
1190   ])
1191   VLC_RESTORE_FLAGS
1192   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1193     AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1194     have_mmxext="yes"
1195   ])
1196 ])
1197 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1198 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1199
1200 dnl  Check for fully workin SSE2 intrinsics
1201 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1202 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1203 AC_ARG_ENABLE(sse,
1204   [AS_HELP_STRING([--disable-sse],
1205     [disable SSE (1-4) optimizations (default auto)])],, [
1206   case "${host_cpu}" in
1207     i?86|x86_64)
1208       enable_sse=yes
1209       ;;
1210     *)
1211       enable_sse=no
1212       ;;
1213   esac
1214 ])
1215 have_sse2="no"
1216 AS_IF([test "${enable_sse}" != "no"], [
1217   ARCH="${ARCH} sse sse2"
1218
1219   VLC_SAVE_FLAGS
1220   CFLAGS="${CFLAGS} -msse2"
1221   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1222     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1223 [#include <emmintrin.h>
1224 #include <stdint.h>
1225 uint64_t frobzor;]], [
1226 [__m128i a, b, c;
1227 a = b = c = _mm_set1_epi64((__m64)frobzor);
1228 a = _mm_slli_epi16(a, 3);
1229 a = _mm_adds_epi16(a, b);
1230 c = _mm_srli_epi16(c, 8);
1231 c = _mm_slli_epi16(c, 3);
1232 b = _mm_adds_epi16(b, c);
1233 a = _mm_unpacklo_epi8(a, b);
1234 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1235       ac_cv_c_sse2_intrinsics=yes
1236     ], [
1237       ac_cv_c_sse2_intrinsics=no
1238     ])
1239   ])
1240   VLC_RESTORE_FLAGS
1241   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1242     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1243   ])
1244
1245   VLC_SAVE_FLAGS
1246   CFLAGS="${CFLAGS} -msse"
1247   AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1248     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1249 void *p;
1250 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1251 ]])
1252     ], [
1253       ac_cv_sse_inline=yes
1254     ], [
1255       ac_cv_sse_inline=no
1256     ])
1257   ])
1258
1259   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1260     AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1261   ])
1262
1263   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1264     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1265 void *p;
1266 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1267 ]])
1268     ], [
1269       ac_cv_sse2_inline=yes
1270     ], [
1271       ac_cv_sse2_inline=no
1272     ])
1273   ])
1274   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1275     AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1276     have_sse2="yes"
1277   ])
1278
1279   # SSE3
1280   AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1281     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1282 void *p;
1283 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1284 ]])
1285     ], [
1286       ac_cv_sse3_inline=yes
1287     ], [
1288       ac_cv_sse3_inline=no
1289     ])
1290   ])
1291
1292   AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1293     AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1294   # SSSE3
1295   AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1296     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1297 void *p;
1298 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1299 ]])
1300     ], [
1301       ac_cv_ssse3_inline=yes
1302     ], [
1303       ac_cv_ssse3_inline=no
1304     ])
1305   ])
1306
1307   AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1308     AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1309
1310   # SSE4.1
1311   AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1312                  [ac_cv_sse4_1_inline], [
1313     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1314 void *p;
1315 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1316 ]])
1317     ], [
1318       ac_cv_sse4_1_inline=yes
1319     ], [
1320       ac_cv_sse4_1_inline=no
1321     ])
1322   ])
1323
1324   AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1325     AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1326
1327   # SSE4.2
1328   AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1329                  [ac_cv_sse4_2_inline], [
1330     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1331 void *p;
1332 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1333 ]])
1334     ], [
1335       ac_cv_sse4_2_inline=yes
1336     ], [
1337       ac_cv_sse4_2_inline=no
1338     ])
1339   ])
1340
1341   AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1342     AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1343
1344   # SSE4A
1345   AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1346     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1347 void *p;
1348 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1349 ]])
1350     ], [
1351       ac_cv_sse4a_inline=yes
1352     ], [
1353       ac_cv_sse4a_inline=no
1354     ])
1355   ])
1356   VLC_RESTORE_FLAGS
1357   AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1358     AC_DEFINE(CAN_COMPILE_SSE4A, 1, [Define to 1 if SSE4A inline assembly is available.]) ])
1359 ])
1360 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1361
1362 VLC_SAVE_FLAGS
1363 CFLAGS="${CFLAGS} -mmmx"
1364 have_3dnow="no"
1365 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1366   AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1367 void *p;
1368 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1369 ]])
1370   ], [
1371     ac_cv_3dnow_inline=yes
1372   ], [
1373     ac_cv_3dnow_inline=no
1374   ])
1375 ])
1376 VLC_RESTORE_FLAGS
1377 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1378   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1379             [Define to 1 if 3D Now! inline assembly is available.])
1380   have_3dnow="yes"
1381 ])
1382 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1383
1384
1385 AC_ARG_ENABLE(neon,
1386   [AS_HELP_STRING([--disable-neon],
1387     [disable NEON optimizations (default auto)])],, [
1388   AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1389 ])
1390 AS_IF([test "${enable_neon}" != "no"], [
1391   VLC_SAVE_FLAGS
1392   CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1393   AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1394     AC_COMPILE_IFELSE([
1395       AC_LANG_PROGRAM(,[[
1396 asm volatile("vqmovun.s64 d0, q1":::"d0");
1397 ]])
1398     ], [
1399       ac_cv_arm_neon="yes"
1400     ], [
1401       ac_cv_arm_neon="no"
1402     ])
1403   ])
1404   VLC_RESTORE_FLAGS
1405 ])
1406 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_arm_neon}" = "yes"])
1407
1408
1409 AC_ARG_ENABLE(altivec,
1410   [AS_HELP_STRING([--disable-altivec],
1411     [disable AltiVec optimizations (default auto)])],, [
1412   AS_CASE("${host_cpu}", [powerpc*],
1413         [enable_altivec=yes], [enable_altivec=no])
1414 ])
1415 have_altivec="no"
1416 ALTIVEC_CFLAGS=""
1417 AS_IF([test "${enable_altivec}" = "yes"], [
1418   ARCH="${ARCH} altivec";
1419   VLC_SAVE_FLAGS
1420   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1421     [ac_cv_altivec_inline],
1422     [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1423          ac_cv_altivec_inline="yes",
1424          [CFLAGS="${CFLAGS} -Wa,-maltivec"
1425           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1426             [ac_cv_altivec_inline="-Wa,-maltivec"],
1427             ac_cv_altivec_inline=no)
1428          ])])
1429   VLC_RESTORE_FLAGS
1430   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1431     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1432               [Define to 1 if AltiVec inline assembly is available.])
1433     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1434       ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1435       VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1436     ])
1437     have_altivec="yes"
1438   ])
1439
1440   VLC_SAVE_FLAGS
1441   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1442   [ac_cv_c_altivec], [
1443     CFLAGS="${CFLAGS} -maltivec"
1444     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1445 [#include <altivec.h>]], [
1446 [vec_ld(0, (unsigned char *)0);]])], [
1447       ac_cv_c_altivec="-maltivec"
1448     ], [
1449       ac_cv_c_altivec="no"
1450     ])
1451   ])
1452   VLC_RESTORE_FLAGS
1453   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1454     CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1455     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1456     VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1457     ALTIVEC_CFLAGS="$ALTIVEC_FLAGS ${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}"
1458     VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1459     have_altivec="yes"
1460   ])
1461   AC_CHECK_HEADERS(altivec.h)
1462
1463   VLC_SAVE_FLAGS
1464   LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1465   AC_CACHE_CHECK([if linker needs -framework vecLib],
1466     [ac_cv_ld_altivec],
1467     [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1468   VLC_RESTORE_FLAGS
1469   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1470     VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1471   ])
1472 ])
1473 AC_SUBST(ALTIVEC_CFLAGS)
1474 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1475
1476 dnl
1477 dnl  Memory usage
1478 dnl
1479 AC_ARG_ENABLE(optimize-memory,
1480   [AS_HELP_STRING([--enable-optimize-memory],
1481     [optimize memory usage over performance])])
1482 if test "${enable_optimize_memory}" = "yes"; then
1483   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1484 fi
1485
1486 dnl
1487 dnl Allow running as root (useful for people running on embedded platforms)
1488 dnl
1489 AC_ARG_ENABLE(run-as-root,
1490   [AS_HELP_STRING([--enable-run-as-root],
1491     [allow running VLC as root (default disabled)])])
1492 AS_IF([test "${enable_run_as_root}" = "yes"],[
1493     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1494               [Define to 1 to allow running VLC as root (uid 0).])
1495 ])
1496
1497 dnl
1498 dnl Stream output
1499 dnl
1500 AC_ARG_ENABLE(sout,
1501   [AS_HELP_STRING([--disable-sout],
1502     [disable streaming output (default enabled)])])
1503 AS_IF([test "${enable_sout}" != "no"], [
1504   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1505 ])
1506 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1507
1508 dnl Lua modules
1509 AC_ARG_ENABLE(lua,
1510   [AS_HELP_STRING([--disable-lua],
1511     [disable LUA scripting support (default enabled)])])
1512 if test "${enable_lua}" != "no"
1513 then
1514   PKG_CHECK_MODULES(LUA, lua5.2,
1515     [ have_lua=yes ],
1516     [
1517     AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1518
1519     PKG_CHECK_MODULES(LUA, lua5.1,
1520       [ have_lua=yes ],
1521       [
1522       AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1523       PKG_CHECK_MODULES(LUA, lua >= 5.1,
1524         [ have_lua=yes ],
1525         [
1526           AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1527           have_lua=yes
1528           AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1529             [],
1530             [ have_lua=no ] )
1531           AC_CHECK_LIB(  lua5.2 , luaL_newstate,
1532             [LUA_LIBS="-llua5.2"],
1533           AC_CHECK_LIB( lua5.1 , luaL_newstate,
1534             [LUA_LIBS="-llua5.1"],
1535             AC_CHECK_LIB( lua51 , luaL_newstate,
1536               [LUA_LIBS="-llua51"],
1537               AC_CHECK_LIB( lua , luaL_newstate,
1538                 [LUA_LIBS="-llua"],
1539                 [ have_lua=no
1540                 ], [-lm])
1541             )))
1542         ])
1543       ])
1544     ])
1545   if test "x${have_lua}" != "xyes" ;  then
1546       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.])
1547   fi
1548   AC_ARG_VAR([LUAC], [LUA byte compiler])
1549   AC_PATH_PROGS(LUAC,[${LUAC} luac], [false])
1550   AS_IF([test "${LUAC}" = "false"], [
1551     AC_MSG_ERROR([Could not find the LUA byte compiler.])
1552   ])
1553   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], [
1554     AC_MSG_ERROR([You need 32-bits luac when using using lua from contrib.])
1555   ])
1556 fi
1557 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1558
1559
1560 dnl
1561 dnl HTTP daemon
1562 dnl
1563 AC_ARG_ENABLE(httpd,
1564   [AS_HELP_STRING([--disable-httpd],
1565     [disable the built-in HTTP server (default enabled)])])
1566 if test "${enable_httpd}" != "no"
1567 then
1568   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP daemon support)
1569 fi
1570 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1571
1572
1573 dnl
1574 dnl VideoLAN manager
1575 dnl
1576 AC_ARG_ENABLE(vlm,
1577   [AS_HELP_STRING([--disable-vlm],
1578     [disable the stream manager (default enabled)])],,
1579   [enable_vlm="${enable_sout}"])
1580 AS_IF([test "${enable_vlm}" != "no"], [
1581   AS_IF([test "${enable_sout}" = "no"], [
1582     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1583   ])
1584   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1585 ])
1586 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1587
1588
1589 dnl
1590 dnl Addons manager storage and repositories modules
1591 dnl
1592 AC_ARG_ENABLE(addonmanagermodules,
1593   [AS_HELP_STRING([--disable-addonmanagermodules],
1594     [disable the addons manager modules (default enabled)])])
1595 if test "${enable_addonmanagermodules}" != "no"
1596 then
1597   AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1598 fi
1599 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1600
1601
1602 dnl
1603 dnl  Input plugins
1604 dnl
1605
1606 EXTEND_HELP_STRING([Input plugins:])
1607
1608 dnl
1609 dnl  libarchive access module
1610 dnl
1611 PKG_ENABLE_MODULES_VLC([ARCHIVE], [access_archive], [libarchive >= 3.1.0], (libarchive support), [auto])
1612
1613 dnl
1614 dnl  live555 input
1615 dnl
1616 AC_ARG_ENABLE(live555,
1617   [AS_HELP_STRING([--enable-live555],
1618     [enable RTSP input through live555 (default enabled)])])
1619
1620 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1621   PKG_CHECK_MODULES(LIVE555, live555, [
1622     VLC_ADD_PLUGIN([live555])
1623     VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1624     VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1625   ], [
1626     AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1627
1628     AC_LANG_PUSH(C++)
1629     VLC_SAVE_FLAGS
1630
1631     dnl detect include paths
1632     AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment.hh"], [
1633       CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1634     ], [
1635       AS_IF([test "${SYS}" != "os2"], [
1636         LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1637         CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1638       ], [
1639         LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1640         CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1641         LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1642       ])
1643     ])
1644
1645     dnl CPP Flags
1646     AS_IF([test "${SYS}" = "solaris"], [
1647       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1648     ])
1649     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1650     LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1651
1652     dnl version check
1653     AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1654       AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1655 [#include <liveMedia_version.hh>
1656 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1657 # error BOOM
1658 #endif]])
1659       ], [
1660         ac_cv_live555="yes"
1661       ], [
1662         ac_cv_live555="no"
1663       ])
1664     ])
1665
1666     AS_IF([test "$ac_cv_live555" = "no"], [
1667       AC_MSG_WARN([live555 is missing or its installed version is too old:
1668 Version 2011.12.23 or later is required to proceed.
1669 You can get an updated one from http://www.live555.com/liveMedia .])
1670       AS_IF([test -n "${enable_live555}"], [
1671         AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1672       ])
1673     ], [
1674       other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1675       other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1676       AS_IF([test "${SYS}" = "mingw32"], [
1677         # add ws2_32 for closesocket, select, recv
1678         other_libs="$other_libs -lws2_32"
1679       ])
1680
1681       dnl We need to check for pic because live555 don't provide shared libs
1682       dnl and we want to build a plugins so we need -fPIC on some arch.
1683       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1684       VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1685       AC_CHECK_LIB(liveMedia_pic, main, [
1686         VLC_ADD_PLUGIN([live555])
1687         VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1688       ],[
1689         AC_CHECK_LIB(liveMedia, main, [
1690           VLC_ADD_PLUGIN([live555])
1691           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1692         ],[],[${other_libs}])
1693       ],[${other_libs_pic}])
1694     ])
1695     VLC_RESTORE_FLAGS
1696     AC_LANG_POP(C++)
1697   ])
1698 ])
1699
1700 dnl
1701 dnl IIDC and DV FireWire input modules
1702 dnl
1703 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1704 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1705
1706 dnl
1707 dnl - linsys modules: access module check for libzvbi
1708 dnl
1709 AC_ARG_ENABLE(linsys,
1710   [AS_HELP_STRING([--enable-linsys],
1711     [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
1712 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
1713   VLC_ADD_PLUGIN([linsys_hdsdi])
1714   PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
1715     VLC_ADD_PLUGIN([linsys_sdi])
1716   ], [
1717     AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
1718   ])
1719 ])
1720
1721 dnl
1722 dnl dvdread module: check for libdvdread
1723 dnl
1724 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 4.9.0], [dvdread input module], [auto])
1725
1726 dnl
1727 dnl libdvdnav plugin
1728 dnl
1729 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav > 4.9.0], [DVD with navigation input module (dvdnav)], [auto])
1730
1731 dnl
1732 dnl  Blu-ray Disc Support with libbluray
1733 dnl
1734 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.5.0], (libbluray for Blu-ray disc support ) )
1735
1736 dnl
1737 dnl  OpenCV wrapper and example filters
1738 dnl
1739 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
1740
1741
1742 dnl
1743 dnl  libsmbclient plugin
1744 dnl
1745 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smb], [smbclient], (SMB/CIFS support), [auto])
1746 AS_IF([test "${SYS}" = "mingw32"], [ VLC_ADD_PLUGIN([smb]) ])
1747
1748 dnl
1749 dnl  liBDSM access module
1750 dnl
1751 PKG_ENABLE_MODULES_VLC([DSM], [dsm], [libdsm >= 0.0.4], [libdsm SMB/CIFS access/sd module], [auto])
1752
1753 dnl
1754 dnl sftp access support
1755 dnl
1756 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
1757
1758 dnl
1759 dnl  Video4Linux 2
1760 dnl
1761 AC_ARG_ENABLE(v4l2, [AS_HELP_STRING([--disable-v4l2],
1762   [disable Video4Linux version 2 (default auto)])])
1763 have_v4l2="no"
1764 AS_IF([test "$enable_v4l2" != "no"], [
1765   AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h], [
1766     have_v4l2="yes"
1767   ])
1768 ])
1769 AM_CONDITIONAL(HAVE_V4L2, [test "${have_v4l2}" != "no"])
1770
1771 dnl
1772 dnl special access module for Blackmagic SDI cards
1773 dnl
1774 AC_ARG_ENABLE(decklink,
1775   [AS_HELP_STRING([--disable-decklink],
1776     [disable Blackmagic DeckLink SDI input (default auto)])])
1777 AC_ARG_WITH(decklink_sdk,
1778   [AS_HELP_STRING[--with-decklink-sdk=DIR],
1779     [                        location of Blackmagic DeckLink SDI SDK])])
1780 have_decklink=no
1781 if test "${enable_decklink}" != "no"
1782 then
1783   if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1784   then
1785     VLC_ADD_CPPFLAGS([decklink decklinkoutput],[-I${with_decklink_sdk}/include])
1786   fi
1787   VLC_SAVE_FLAGS
1788   CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1789   AC_LANG_PUSH(C++)
1790   AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
1791       have_decklink=yes
1792   ], [
1793       AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)
1794   ])
1795   AC_LANG_POP(C++)
1796   VLC_RESTORE_FLAGS
1797 fi
1798 AM_CONDITIONAL(HAVE_DECKLINK, [ test "${have_decklink}" != "no" ])
1799
1800
1801 dnl
1802 dnl  gnomeVFS access module
1803 dnl
1804 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
1805
1806 dnl
1807 dnl  VCDX modules
1808 dnl
1809 PKG_ENABLE_MODULES_VLC([VCDX], [vcdx], [libcdio >= 0.78.2 libiso9660 >= 0.72 libvcdinfo >= 0.7.22], [navigate VCD with libvcdinfo], [no])
1810
1811 dnl
1812 dnl  Built-in CD-DA and VCD module
1813 dnl
1814 AC_ARG_ENABLE(vcd,
1815   [AS_HELP_STRING([--disable-vcd],
1816     [disable built-in VCD and CD-DA support (default enabled)])])
1817
1818 AC_ARG_ENABLE(libcddb,
1819   [AS_HELP_STRING([--disable-libcddb],
1820     [disable CDDB for Audio CD (default enabled)])])
1821
1822 if test "${enable_vcd}" != "no"
1823 then
1824   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1825   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1826     AC_MSG_RESULT(yes)
1827     VLC_ADD_PLUGIN([vcd cdda])
1828   ],[
1829     AC_MSG_RESULT(no)
1830   ])
1831
1832   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1833   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1834     AC_MSG_RESULT(yes)
1835     VLC_ADD_PLUGIN([vcd cdda])
1836     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1837   ],[
1838     AC_MSG_RESULT(no)
1839   ])
1840
1841   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1842   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1843     AC_MSG_RESULT(yes)
1844     VLC_ADD_PLUGIN([vcd cdda])
1845     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1846   ],[
1847     AC_MSG_RESULT(no)
1848   ])
1849
1850   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
1851   then
1852     VLC_ADD_PLUGIN([vcd cdda])
1853   fi
1854
1855   if test "$enable_libcddb" != "no"; then
1856     PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
1857       HAVE_LIBCDDB=yes
1858       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
1859       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
1860       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
1861       ],:
1862       [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
1863       HAVE_LIBCDDB=no])
1864   fi
1865 fi
1866
1867 dnl
1868 dnl Linux DVB
1869 dnl
1870 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
1871   AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1872 [#include <linux/dvb/version.h>
1873 #if (DVB_API_VERSION < 5)
1874 # error Linux DVB API v3.2 and older are not supported.
1875 #endif
1876 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
1877 # error Linux DVB API v5.0 is unsupported. Please update.
1878 #endif
1879 ]])], [
1880   ac_cv_linux_dvb_5_1=yes
1881 ], [
1882   ac_cv_linux_dvb_5_1=no
1883 ])])
1884 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
1885
1886 dnl
1887 dnl  Screen capture module
1888 dnl
1889 AC_ARG_ENABLE(screen,
1890   [AS_HELP_STRING([--enable-screen],
1891     [disable screen capture (default enabled)])])
1892 if test "${enable_screen}" != "no"; then
1893   if test "${SYS}" = "darwin"; then
1894     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
1895       VLC_ADD_PLUGIN([screen])
1896     ])
1897   fi
1898 fi
1899 AM_CONDITIONAL(HAVE_MAC_SCREEN, [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
1900
1901 dnl
1902 dnl  VNC/RFB access module
1903 dnl
1904 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
1905
1906 dnl  RDP/Remote Desktop access module
1907 dnl
1908 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
1909
1910 dnl
1911 dnl  Real RTSP plugin
1912 dnl
1913 AC_ARG_ENABLE(realrtsp,
1914   [  --enable-realrtsp       Real RTSP module (default disabled)])
1915 if test "${enable_realrtsp}" = "yes"; then
1916   VLC_ADD_PLUGIN([access_realrtsp])
1917 fi
1918
1919 dnl
1920 dnl MacOS eyeTV
1921 AC_ARG_ENABLE(macosx-eyetv,
1922   [  --enable-macosx-eyetv   Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
1923 if test "x${enable_macosx_eyetv}" != "xno" &&
1924   (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
1925 then
1926   VLC_ADD_PLUGIN([access_eyetv])
1927 fi
1928
1929 dnl
1930 dnl QTKit
1931 AC_ARG_ENABLE(macosx-qtkit,
1932   [  --enable-macosx-qtkit Mac OS X qtcapture (video) and qtsound (audio) module (default enabled on Mac OS X)])
1933 if test "x${enable_macosx_qtkit}" != "xno" &&
1934   (test "${SYS}" = "darwin" || test "${enable_macosx_qtkit}" = "yes")
1935 then
1936   VLC_ADD_PLUGIN([qtcapture])
1937   VLC_ADD_PLUGIN([qtsound])
1938 fi
1939 AM_CONDITIONAL(HAVE_QTKIT, [test "${SYS}" = "darwin" -a "x${enable_macosx_qtkit}" != "xno"])
1940
1941 dnl
1942 dnl AVFoundation
1943 AC_SUBST(have_avfoundation, ["no"])
1944 AC_ARG_ENABLE(macosx-avfoundation,
1945   [  --enable-macosx-avfoundation Mac OS X avcapture (video) module (default enabled on Mac OS X)])
1946 if test "x${enable_macosx_avfoundation}" != "xno" &&
1947   (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
1948 then
1949   SAVED_LIBS="${LIBS}"
1950   LIBS="-framework AVFoundation"
1951   AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
1952   LIBS="${SAVED_LIBS}"
1953   if test "${have_avfoundation}" != "no"
1954   then
1955     VLC_ADD_PLUGIN([avcapture])
1956   fi
1957 fi
1958 AM_CONDITIONAL(HAVE_AVFOUNDATION, [test "${have_avfoundation}" != "no"])
1959
1960 dnl
1961 dnl  DCP plugin (using asdcplib)
1962 dnl
1963 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
1964 AM_CONDITIONAL(HAVE_ASDCP, [test "${have_asdcp}" = "yes"])
1965
1966 dnl
1967 dnl  Demux plugins
1968 dnl
1969
1970 EXTEND_HELP_STRING([Mux/Demux plugins:])
1971
1972 dnl
1973 dnl  libdvbpsi check for ts mux/demux
1974 dnl
1975 have_dvbpsi="no"
1976 PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.0.0], [have_dvbpsi="yes"])
1977 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
1978
1979
1980 dnl
1981 dnl  GME demux plugin
1982 dnl
1983 AC_ARG_ENABLE(gme,
1984   [AS_HELP_STRING([--enable-gme],
1985     [use Game Music Emu (default auto)])])
1986 AS_IF([test "${enable_gme}" != "no"], [
1987   AC_CHECK_HEADER([gme/gme.h], [
1988     VLC_ADD_LIBS([gme], [-lgme])
1989     VLC_ADD_PLUGIN([gme])
1990   ], [
1991     AS_IF([test "x${enable_gme}" != "x"], [
1992       AC_MSG_ERROR([GME cannot be found. Please install the development files.])
1993     ])
1994   ])
1995 ])
1996
1997
1998 dnl
1999 dnl  SIDPlay plugin
2000 dnl
2001 AC_ARG_ENABLE(sid,
2002     [AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)])])
2003 AS_IF([test "${enable_sid}" != "no"], [
2004     PKG_CHECK_MODULES(SID, [libsidplay2], [
2005         AC_LANG_PUSH(C++)
2006         oldCPPFLAGS="$CPPFLAGS"
2007         CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2008         AC_CHECK_HEADER([sidplay/builders/resid.h], [
2009             VLC_ADD_PLUGIN([sid])
2010             VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2011             VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2012         ], [
2013             AS_IF([test -n "${enable_sid}"],
2014                 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2015                 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2016                 )
2017         ])
2018         CPPFLAGS="$oldCPPFLAGS"
2019         AC_LANG_POP(C++)
2020     ], [
2021         AS_IF([test "x${enable_sid}" = "xyes"],
2022             [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2023             [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2024             )
2025     ])
2026 ])
2027
2028
2029 dnl
2030 dnl  ogg demux plugin
2031 dnl
2032 PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
2033 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2034     AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2035 ],[true])
2036 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2037 if test "${enable_sout}" != "no"; then
2038 dnl Check for libshout
2039     PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2040 fi
2041
2042 dnl
2043 dnl  matroska demux plugin
2044 dnl
2045 AC_ARG_ENABLE(mkv,
2046   [AS_HELP_STRING([--disable-mkv],
2047     [do not use libmatroska (default auto)])])
2048 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2049   AC_LANG_PUSH(C++)
2050   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2051     AC_MSG_CHECKING(for libebml version >= 1.0.0)
2052     AC_EGREP_CPP(yes,
2053       [#include <ebml/EbmlVersion.h>
2054        #ifdef LIBEBML_VERSION
2055        #if LIBEBML_VERSION >= 0x010000
2056        yes
2057        #endif
2058        #endif],
2059       [AC_MSG_RESULT([yes])
2060         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2061           AC_MSG_CHECKING(for libmatroska version >= 1.0.0)
2062           AC_EGREP_CPP(yes,
2063             [#include <matroska/KaxVersion.h>
2064              #ifdef LIBMATROSKA_VERSION
2065              #if LIBMATROSKA_VERSION >= 0x010000
2066              yes
2067              #endif
2068              #endif],
2069             [AC_MSG_RESULT([yes])
2070               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2071               AC_CHECK_LIB(ebml_pic, main, [
2072                 VLC_ADD_PLUGIN([mkv])
2073                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2074               ],[
2075                 AC_CHECK_LIB(ebml, main, [
2076                   VLC_ADD_PLUGIN([mkv])
2077                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2078                 ])
2079               ])
2080             ], [
2081               AC_MSG_RESULT([no])
2082               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.])
2083           ])
2084         ])
2085       ],
2086       [AC_MSG_RESULT([no])
2087         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.])
2088     ])
2089   ])
2090   AC_LANG_POP(C++)
2091 fi
2092
2093 dnl
2094 dnl  modplug demux plugin
2095 dnl
2096 AC_ARG_ENABLE(mod,
2097   [AS_HELP_STRING([--disable-mod],
2098     [do not use libmodplug (default auto)])])
2099 if test "${enable_mod}" != "no" ; then
2100     PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2101           VLC_ADD_PLUGIN([mod])
2102           VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2103           VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2104           VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2105     ],[
2106        AS_IF([test -n "${enable_mod}"],
2107          [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2108          [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2109     ])
2110 fi
2111
2112 dnl
2113 dnl  mpc demux plugin
2114 dnl
2115 AC_ARG_ENABLE(mpc,
2116   [AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)])])
2117 if test "${enable_mpc}" != "no"
2118 then
2119   AC_CHECK_HEADERS([mpc/mpcdec.h], [
2120     VLC_ADD_PLUGIN([mpc])
2121     VLC_ADD_LIBS([mpc],[-lmpcdec])],
2122     [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2123     VLC_ADD_PLUGIN([mpc])
2124     VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2125 fi
2126
2127 dnl
2128 dnl  Codec plugins
2129 dnl
2130
2131 EXTEND_HELP_STRING([Codec plugins:])
2132
2133 dnl
2134 dnl wmafixed plugin
2135 dnl
2136 AC_ARG_ENABLE(wma-fixed,
2137   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2138 if test "${enable_wma_fixed}" = "yes"
2139 then
2140   VLC_ADD_PLUGIN([wma_fixed])
2141 fi
2142
2143 dnl
2144 dnl shine encoder plugin
2145 dnl
2146 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2147
2148
2149 dnl
2150 dnl openmax il codec plugin
2151 dnl
2152 AC_ARG_ENABLE(omxil,
2153   [  --enable-omxil          openmax il codec module (default disabled)])
2154 if test "${enable_omxil}" = "yes"
2155 then
2156   VLC_ADD_PLUGIN([omxil])
2157 fi
2158
2159 dnl
2160 dnl openmax il vout plugin
2161 dnl
2162 AC_ARG_ENABLE(omxil-vout,
2163   [  --enable-omxil-vout     openmax il video output module (default disabled)])
2164 if test "${enable_omxil_vout}" = "yes"
2165 then
2166   VLC_ADD_PLUGIN([omxil_vout])
2167 fi
2168
2169 dnl
2170 dnl raspberry pi openmax il configuration
2171 dnl
2172 AC_ARG_ENABLE(rpi-omxil,
2173   [  --enable-rpi-omxil     openmax il configured for raspberry pi (default disabled)])
2174 if test "${enable_rpi_omxil}" = "yes"
2175 then
2176   VLC_ADD_PLUGIN([omxil omxil_vout])
2177   VLC_ADD_CFLAGS([omxil omxil_vout],[-DRPI_OMX])
2178 fi
2179
2180 dnl
2181 dnl CrystalHD codec plugin
2182 dnl
2183 AC_ARG_ENABLE(crystalhd,
2184   [  --enable-crystalhd      crystalhd codec plugin (default auto)])
2185 if test "${enable_crystalhd}" != "no"; then
2186     AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2187       VLC_ADD_PLUGIN([crystalhd])
2188       VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2189     ],[
2190       if test "${SYS}" = "mingw32" ; then
2191         AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2192           VLC_ADD_PLUGIN([crystalhd])
2193           AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2194             VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2195             ])
2196         ],[
2197           AS_IF([test x"${enable_crystalhd}" = "xyes"],
2198                 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2199                 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2200         ],[#define __LINUX_USER__
2201                #include <libcrystalhd/bc_dts_types.h>
2202         ])
2203       fi
2204     ],[
2205        #include <libcrystalhd/bc_dts_types.h>
2206       ])
2207 fi
2208
2209 dnl
2210 dnl  mad plugin
2211 dnl
2212 have_mad="no"
2213 MAD_CFLAGS=""
2214 MAD_LIBS=""
2215
2216 AC_ARG_WITH(mad, [  --with-mad=PATH         path to libmad], [
2217   enable_mad="yes"
2218 ], [
2219   with_mad="no"
2220 ])
2221 AS_IF([test "${with_mad}" != "no"], [
2222   MAD_CFLAGS="-I${with_mad}/include"
2223   MAD_LIBS="-L${with_mad}/lib"
2224 ])
2225
2226 AC_ARG_ENABLE(mad,
2227   [  --enable-mad            libmad module (default enabled)])
2228 AS_IF([test "${enable_mad}" != "no"], [
2229   VLC_SAVE_FLAGS
2230   CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
2231   LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
2232   AC_CHECK_HEADERS(mad.h, [
2233     AC_CHECK_LIB(mad, mad_bit_init, [
2234       have_mad="yes"
2235       MAD_LIBS="${MAD_LIBS} -lmad"
2236     ])
2237   ])
2238   VLC_RESTORE_FLAGS
2239   AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
2240     AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
2241   ])
2242 ])
2243 AC_SUBST(MAD_CFLAGS)
2244 AC_SUBST(MAD_LIBS)
2245 AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
2246
2247 dnl  mpg123 plugin
2248 dnl
2249 dnl
2250 PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])
2251
2252
2253 AC_ARG_ENABLE(merge-ffmpeg,
2254 [  --enable-merge-ffmpeg   merge FFmpeg-based plugins (default disabled)],, [
2255   enable_merge_ffmpeg="no"
2256 ])
2257 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2258
2259 AC_MSG_CHECKING([for libavutil variant])
2260 PKG_CHECK_EXISTS([libavutil], [
2261   libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2262   libavutil_micro="${libavutil_version##*.}"
2263   AS_IF([test ${libavutil_micro} -le 99], [
2264     avfork="libav"
2265   ], [
2266     avfork="ffmpeg"
2267   ])
2268 ], [
2269   avfork="none"
2270 ])
2271 AC_MSG_RESULT([${avfork}])
2272
2273 dnl
2274 dnl gstreamer stuff
2275 dnl
2276 AC_ARG_ENABLE(gst-decode,
2277   [  --enable-gst-decode     GStreamer based decoding support (currently supports only video decoding) (default auto)])
2278
2279 have_gst_decode="no"
2280 AS_IF([test "${enable_gst_decode}" != "no"], [
2281   PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2282     PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2283       have_gst_decode="yes"
2284     ], [
2285       AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2286     ])
2287   ], [
2288     AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2289   ])
2290 ])
2291 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2292
2293 dnl
2294 dnl  avcodec decoder/encoder plugin
2295 dnl
2296 AC_ARG_ENABLE(avcodec,
2297 [  --enable-avcodec        libavcodec codec (default enabled)])
2298 AS_IF([test "${enable_avcodec}" != "no"], [
2299   PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 54.25.0 libavutil >= 52.0.0], [
2300     dnl PKG_CHECK_EXISTS([libavcodec < 56],, [
2301     dnl   AC_MSG_ERROR([libavcodec versions 56 and later are not supported yet.])
2302     dnl ])
2303     VLC_SAVE_FLAGS
2304     CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2305     CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2306     AC_CHECK_HEADERS(libavcodec/avcodec.h)
2307     AC_CHECK_HEADERS(libavutil/avutil.h)
2308     VLC_RESTORE_FLAGS
2309     have_avcodec="yes"
2310   ],[
2311     AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2312   ])
2313 ], [
2314   have_avcodec="no"
2315 ])
2316 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2317
2318 dnl
2319 dnl libva needs avcodec
2320 dnl
2321 AC_ARG_ENABLE(libva,
2322   [  --enable-libva          VAAPI GPU decoding support (libVA) (default auto)])
2323
2324 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2325   AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2326 ])
2327
2328 have_vaapi="no"
2329 have_vaapi_drm="no"
2330 have_vaapi_x11="no"
2331 AS_IF([test "${enable_libva}" != "no"], [
2332   PKG_CHECK_EXISTS([libva], [
2333     have_vaapi="yes"
2334   ], [
2335     AS_IF([test -n "${enable_libva}"], [
2336       AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2337     ], [
2338       AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2339     ])
2340   ])
2341   PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2342     have_vaapi_drm="yes"
2343   ], [
2344     AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2345   ])
2346   PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2347     have_vaapi_x11="yes"
2348   ], [
2349     AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2350   ])
2351 ])
2352 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2353 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2354
2355 have_avcodec_vaapi="no"
2356 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2357   VLC_SAVE_FLAGS
2358   CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2359   CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2360   AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2361     AC_MSG_NOTICE([VAAPI acceleration activated])
2362     have_avcodec_vaapi="yes"
2363   ],[
2364     AS_IF([test -n "${enable_libva}"], [
2365       AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2366     ], [
2367       AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2368     ])
2369   ])
2370   VLC_RESTORE_FLAGS
2371 ])
2372 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2373
2374 dnl
2375 dnl dxva2 needs avcodec
2376 dnl
2377 AC_ARG_ENABLE(dxva2,
2378   [  --enable-dxva2          DxVA2 GPU decoding support (default auto)])
2379
2380 have_avcodec_dxva2="no"
2381 AS_IF([test "${enable_dxva2}" != "no"], [
2382   if test "${SYS}" = "mingw32"; then
2383   AS_IF([test "x${have_avcodec}" = "xyes"], [
2384     AC_CHECK_HEADERS(dxva2api.h,
2385       [
2386         AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2387            AC_MSG_NOTICE([DxVA2 acceleration activated])
2388            have_avcodec_dxva2="yes"
2389         ],[
2390     AS_IF([test "${enable_dxva2}" = "yes"],
2391           [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2392               [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2393         ], [#undef _WIN32_WINNT
2394             /* DXVA2 is only available in Vista and above */
2395             #define _WIN32_WINNT 0x600])
2396       ],[
2397     AS_IF([test "${enable_dxva2}" = "yes"],
2398               [AC_MSG_ERROR([Could not find required dxva2api.h])],
2399               [AC_MSG_WARN([dxva2api.h not found])])
2400       ])
2401   ],[
2402     AS_IF([test "x${enable_dxva2}" != "x"], [
2403       AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2404     ])
2405   ])
2406   fi
2407 ])
2408 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2409
2410 dnl
2411 dnl vda needs avcodec
2412 dnl
2413 AC_ARG_ENABLE(vda,
2414   [  --enable-vda          VDA  support (default auto)])
2415
2416 have_avcodec_vda="no"
2417 AS_IF([test "${enable_vda}" != "no"], [
2418   if test "${SYS}" = "darwin"; then
2419   AS_IF([test "x${have_avcodec}" = "xyes"], [
2420     AC_CHECK_HEADERS(VideoDecodeAcceleration/VDADecoder.h,
2421       [
2422         AC_CHECK_HEADERS(libavcodec/vda.h, [
2423            have_avcodec_vda="yes"
2424         ],[
2425         AS_IF([test "${enable_vda}" = "yes"],
2426               [AC_MSG_ERROR([vda is present but libavcodec/vda.h is missing])],
2427               [AC_MSG_WARN([vda is present but libavcodec/vda.h is missing ])])
2428         ])
2429   ],[
2430         AS_IF([test "${enable_vda}" = "yes"],
2431               [AC_MSG_ERROR([Could not find required VideoDecodeAcceleration/VDADecoder.h])],
2432               [AC_MSG_WARN([VideoDecodeAcceleration/VDADecoder.h not found])])
2433       ])
2434   ],[
2435     AS_IF([test "x${enable_vda}" != "x"], [
2436       AC_MSG_ERROR([--enable-vda and --disable-avcodec options are mutually exclusive.])
2437     ])
2438  ])
2439  AS_IF([test "${have_avcodec_vda}" = "yes"], [
2440      SAVE_LIBS=$LIBS
2441      LIBS="$LIBS $AVCODEC_LIBS"
2442      AC_CHECK_FUNCS([av_vda_alloc_context])
2443      LIBS=$SAVE_LIBS
2444  ])
2445  fi
2446 ])
2447 AM_CONDITIONAL([HAVE_AVCODEC_VDA], [test "${have_avcodec_vda}" = "yes"])
2448
2449 dnl
2450 dnl  avformat demuxer/muxer plugin
2451 dnl
2452
2453 AC_ARG_ENABLE(avformat,
2454 [  --enable-avformat       libavformat containers (default enabled)],, [
2455   enable_avformat="${have_avcodec}"
2456 ])
2457 have_avformat="no"
2458 AS_IF([test "${enable_avformat}" != "no"], [
2459   PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2460       have_avformat="yes"
2461       VLC_SAVE_FLAGS
2462       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2463       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2464       AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2465       AC_CHECK_HEADERS(libavcodec/avcodec.h)
2466       AC_CHECK_HEADERS(libavutil/avutil.h)
2467       AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2468         have_avformat="no"
2469       ])
2470       VLC_RESTORE_FLAGS
2471     ],[
2472       AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2473   ])
2474 ])
2475 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2476
2477 dnl
2478 dnl  swscale image scaling and conversion plugin
2479 dnl
2480
2481 AC_ARG_ENABLE(swscale,
2482   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2483           (default enabled)]))
2484 if test "${enable_swscale}" != "no"
2485 then
2486   PKG_CHECK_MODULES(SWSCALE,[libswscale],
2487     [
2488       VLC_SAVE_FLAGS
2489       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2490       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2491       AC_CHECK_HEADERS(libswscale/swscale.h)
2492       AC_CHECK_HEADERS(libavutil/avutil.h)
2493       VLC_ADD_PLUGIN([swscale])
2494       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2495       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2496       AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2497         VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2498       ])
2499       VLC_RESTORE_FLAGS
2500     ],[
2501       AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2502   ])
2503 fi
2504
2505 dnl
2506 dnl  postproc plugin
2507 dnl
2508
2509 AC_ARG_ENABLE(postproc,
2510 [  --enable-postproc       libpostproc image post-processing (default auto)])
2511 if test "${enable_postproc}" != "no"
2512 then
2513   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2514     [
2515       VLC_SAVE_FLAGS
2516       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2517       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2518       AC_CHECK_HEADERS(postproc/postprocess.h)
2519       VLC_ADD_PLUGIN([postproc])
2520       VLC_RESTORE_FLAGS
2521     ],[
2522       AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2523   ])
2524 fi
2525
2526 dnl
2527 dnl  faad decoder plugin
2528 dnl
2529 AC_ARG_ENABLE(faad,
2530 [  --enable-faad           faad codec (default auto)])
2531 have_faad="no"
2532 AS_IF([test "${enable_faad}" != "no"], [
2533   AC_CHECK_HEADERS([faad.h], [
2534     AC_CHECK_LIB(faad, faacDecOpen, [have_faad="yes"],, [$LIBM])
2535     AC_CHECK_LIB(faad, NeAACDecOpen, [have_faad="yes"],, [$LIBM])
2536
2537     AS_IF([test "${have_faad}" = "yes"], [
2538       VLC_ADD_PLUGIN([faad])
2539       VLC_ADD_LIBS([faad],[-lfaad])
2540     ], [
2541       AS_IF([test "${enable_faad}" = "yes"], [
2542         AC_MSG_ERROR([cannot find FAAD library])
2543       ], [
2544         AC_MSG_WARN([cannot find FAAD library])
2545       ])
2546     ])
2547   ])
2548 ])
2549
2550 dnl
2551 dnl libvpx decoder plugin
2552 dnl
2553 AC_ARG_ENABLE(vpx,
2554     AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 decoder (default auto)]))
2555 AS_IF([test "${enable_vpx}" != "no"],[
2556     PKG_CHECK_MODULES([VPX], [vpx] , [
2557         VLC_ADD_PLUGIN([vpx])
2558         VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2559         VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2560         AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2561             VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2562         ], [], [${VPX_LIBS}])
2563         AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2564             VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2565         ], [], [${VPX_LIBS}])
2566     ], [
2567     AS_IF([test "${enable_vpx}" = "yes"],[
2568         AC_MSG_ERROR([libvpx was not found])
2569     ])])
2570 ])
2571
2572 dnl
2573 dnl twolame encoder plugin
2574 dnl
2575 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2576
2577 dnl
2578 dnl fdk-aac encoder plugin
2579 dnl
2580 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2581
2582 dnl
2583 dnl  QuickTime plugin
2584 dnl
2585 AC_ARG_ENABLE(quicktime,
2586   [  --enable-quicktime      QuickTime module (deprecated)])
2587 if test "${enable_quicktime}" = "yes"; then
2588   if test "${SYS}" = "mingw32"; then
2589     VLC_ADD_PLUGIN([quicktime])
2590   else
2591   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2592     [ VLC_ADD_PLUGIN([quicktime])
2593       VLC_ADD_LIBS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2594     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2595   fi
2596 fi
2597
2598 dnl
2599 dnl A52/AC3 decoder plugin
2600 dnl
2601 AC_ARG_ENABLE(a52,
2602   [  --enable-a52            A/52 support with liba52 (default enabled)])
2603 if test "${enable_a52}" != "no"
2604 then
2605   AC_ARG_WITH(a52,
2606     [  --with-a52=PATH         a52 headers and libraries])
2607     if test -z "${with_a52}"
2608     then
2609       LDFLAGS_test=""
2610       CPPFLAGS_test=""
2611     else
2612       LDFLAGS_test="-L${with_a52}/lib"
2613       CPPFLAGS_test="-I${with_a52}/include"
2614     fi
2615     VLC_SAVE_FLAGS
2616     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2617     LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2618     AC_CHECK_HEADERS(a52dec/a52.h, [
2619       AC_CHECK_LIB(a52, a52_free, [
2620         VLC_ADD_PLUGIN([a52tofloat32])
2621         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2622         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2623       ],[
2624         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.])
2625         ], [$LIBM])
2626     ],[
2627       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.])
2628     ])
2629     VLC_RESTORE_FLAGS
2630 fi
2631
2632 dnl
2633 dnl DTS Coherent Acoustics decoder plugin
2634 dnl
2635 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2636
2637 dnl
2638 dnl  Flac plugin
2639 dnl
2640 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2641
2642 dnl
2643 dnl  Libmpeg2 plugin
2644 dnl
2645 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2646
2647 dnl
2648 dnl  Vorbis plugin
2649 dnl
2650 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2651
2652 dnl
2653 dnl  Tremor plugin
2654 dnl
2655 AC_ARG_ENABLE(tremor,
2656   [  --enable-tremor         Tremor decoder support (default disabled)])
2657 if test "${enable_tremor}" = "yes"
2658 then
2659   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2660     VLC_ADD_PLUGIN([tremor])
2661    ],[])
2662 fi
2663
2664 dnl
2665 dnl  Speex plugins
2666 dnl
2667 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2668 have_speexdsp="no"
2669 AS_IF([test "${enable_speex}" != "no"], [
2670   PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2671     have_speexdsp="yes"
2672   ], [
2673     AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2674   ])
2675 ])
2676 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2677
2678 dnl
2679 dnl  Opus plugin
2680 dnl
2681 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2682
2683 dnl
2684 dnl  theora decoder plugin
2685 dnl
2686 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2687
2688 dnl
2689 dnl  Daala decoder plugin
2690 dnl
2691 PKG_ENABLE_MODULES_VLC([DAALA], [], [ogg daaladec daalaenc], [experimental daala codec], [disabled])
2692
2693 dnl
2694 dnl  schroedinger decoder plugin (for dirac format video)
2695 dnl
2696 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2697
2698 dnl
2699 dnl  PNG decoder module
2700 dnl
2701 AC_ARG_ENABLE(png,
2702   [  --enable-png            PNG support (default enabled)])
2703 AS_IF([test "${enable_png}" != "no"], [
2704 AC_CHECK_HEADERS(png.h, [
2705   VLC_SAVE_FLAGS
2706   LDFLAGS="${LDFLAGS} -lz $LIBM"
2707   AC_CHECK_LIB(png, png_set_rows, [
2708     VLC_ADD_PLUGIN([png])
2709   ], [], [-lz $LIBM])
2710   VLC_RESTORE_FLAGS
2711   ])
2712 ])
2713
2714 dnl
2715 dnl  JPEG decoder module
2716 dnl
2717 AC_ARG_ENABLE(jpeg,
2718   [  --enable-jpeg           JPEG support (default enabled)])
2719 AS_IF([test "${enable_jpeg}" != "no"], [
2720 AC_CHECK_HEADERS(jpeglib.h, [
2721   VLC_ADD_PLUGIN([jpeg])
2722   ])
2723 ])
2724
2725 dnl
2726 dnl  BPG decoder module
2727 dnl
2728 AC_ARG_ENABLE(bpg,
2729   [  --enable-bpg           BPG support (default disabled)])
2730 AS_IF([test "${enable_bpg}" != "no"], [
2731 AC_CHECK_HEADERS(libbpg.h, [
2732   VLC_ADD_PLUGIN([bpg])
2733   ])
2734 ])
2735
2736 dnl
2737 dnl H262 encoder plugin (lib262)
2738 dnl
2739 AC_ARG_ENABLE(x262,
2740   [  --enable-x262           H262 encoding support with static libx262 (default disabled)])
2741 if test "${enable_x262}" != "no"; then
2742     PKG_CHECK_MODULES(X262, x262, [
2743         VLC_ADD_PLUGIN([x262])
2744         VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
2745         AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2746           VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
2747         ])
2748         VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
2749         if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
2750           VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
2751         fi
2752     ], [
2753        if test "${enable_x262}" = "yes"; then
2754         AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
2755        fi
2756     ])
2757 fi
2758
2759 dnl x265 encoder
2760 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
2761
2762 dnl
2763 dnl H264 encoder plugin (10-bit lib264)
2764 dnl
2765 AC_ARG_ENABLE(x26410b,
2766   [  --enable-x26410b           H264 10-bit encoding support with static libx264 (default disabled)])
2767 if test "${enable_x26410b}" != "no"; then
2768     PKG_CHECK_MODULES(X26410B, x26410b, [
2769         VLC_ADD_PLUGIN([x26410b])
2770         VLC_ADD_LIBS([x26410b],[${X26410B_LIBS}])
2771         AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2772           VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
2773         ])
2774         VLC_ADD_CFLAGS([x26410b],[${X26410B_CFLAGS}])
2775         if echo ${X26410B_LIBS} |grep -q 'pthreadGC2'; then
2776           VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
2777         fi
2778     ], [
2779        if test "${enable_x26410b}" = "yes"; then
2780         AC_MSG_ERROR([x26410b module doesn't work without staticly compiled libx264.a])
2781        fi
2782     ])
2783 fi
2784
2785
2786 dnl
2787 dnl H264 encoder plugin (using libx264)
2788 dnl
2789 AC_ARG_ENABLE(x264,
2790   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
2791 if test "${enable_x264}" != "no"; then
2792       PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2793         VLC_ADD_PLUGIN([x264])
2794         VLC_ADD_LIBS([x264],[${X264_LIBS}])
2795
2796         AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2797           VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
2798         ])
2799
2800         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2801         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2802           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2803         fi
2804       ],[
2805         if test "${enable_x264}" = "yes"; then
2806             AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2807           fi
2808       ])
2809 fi
2810
2811 dnl
2812 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
2813 dnl
2814 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
2815
2816 dnl
2817 dnl libfluidsynth (MIDI synthetizer) plugin
2818 dnl
2819 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
2820
2821 dnl
2822 dnl Teletext Modules
2823 dnl vbi decoder plugin (using libzbvi)
2824 dnl telx module
2825 dnl uncompatible
2826 dnl
2827 AC_ARG_ENABLE(zvbi,
2828   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2829                   libzvbi (default enabled)]))
2830 AC_ARG_ENABLE(telx,
2831   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2832                   zvbi) (default enabled if zvbi is absent)]))
2833
2834 AS_IF( [test "${enable_zvbi}" != "no"],[
2835     PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2836         [
2837           VLC_ADD_PLUGIN([zvbi])
2838           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2839           AS_IF( [test "${enable_telx}" = "yes"],[
2840                   AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2841                   ])
2842         ],[
2843           AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2844         ])
2845     ])
2846 AS_IF( [test "${enable_telx}" != "no" ],[
2847   VLC_ADD_PLUGIN([telx])
2848   ])
2849
2850 dnl
2851 dnl libass subtitle rendering module
2852 dnl
2853 AC_ARG_ENABLE(libass,
2854   [  --enable-libass         Subtitle support using libass (default enabled)])
2855 AS_IF( [test "${enable_libass}" != "no"], [
2856   PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
2857       [
2858         VLC_ADD_PLUGIN([libass])
2859
2860         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
2861           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
2862            VLC_ADD_LIBS([libass],[-lfontconfig])
2863        ])
2864       ],[
2865         AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
2866       ])
2867   ])
2868
2869 dnl
2870 dnl ARIB subtitles rendering module
2871 dnl
2872 AC_ARG_ENABLE(aribsub,
2873   [  --enable-aribsub        ARIB Subtitles support (default enabled)])
2874 AS_IF( [test "${enable_aribsub}" != "no" ],[
2875   PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
2876       have_aribb24="yes"
2877       VLC_ADD_PLUGIN([aribsub])
2878       VLC_ADD_LIBS([aribsub],[-laribb24])
2879       AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
2880     ],[
2881       AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
2882       have_aribb24="no"
2883   ])
2884 ])
2885 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
2886
2887 dnl
2888 dnl ARIB B25
2889 dnl
2890 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
2891
2892 dnl
2893 dnl  kate decoder plugin
2894 dnl
2895 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
2896
2897 dnl
2898 dnl  tiger rendering for kate decoder plugin
2899 dnl
2900 AC_ARG_ENABLE(tiger,
2901 [  --enable-tiger          Tiger rendering library for Kate streams (default auto)])
2902 AS_IF([test "${enable_tiger}" != "no"], [
2903   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
2904       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
2905         AS_IF([test -n "${enable_tiger}"], [
2906           AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
2907         ])
2908   ])
2909 ])
2910
2911
2912 dnl
2913 dnl  Video plugins
2914 dnl
2915
2916 EXTEND_HELP_STRING([Video plugins:])
2917
2918 dnl
2919 dnl  OpenGL
2920 dnl
2921 PKG_CHECK_MODULES([EGL], [egl], [
2922   have_egl="yes"
2923 ], [
2924   have_egl="no"
2925 ])
2926 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
2927
2928 have_gl="no"
2929 PKG_CHECK_MODULES([GL], [gl], [
2930   have_gl="yes"
2931 ], [
2932   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
2933 #ifdef _WIN32
2934 # include <GL/glew.h>
2935 #endif
2936 #include <GL/gl.h>
2937 ]], [
2938     [int t0 = GL_TEXTURE0;]])
2939   ], [
2940     GL_CFLAGS=""
2941     have_gl="yes"
2942     AS_IF([test "${SYS}" != "mingw32"], [
2943       GL_LIBS="-lGL"
2944     ], [
2945       GL_LIBS="-lopengl32"
2946     ])
2947   ])
2948 ])
2949 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
2950
2951 dnl OpenGL ES 2: depends on EGL 1.1
2952 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
2953 dnl OpenGL ES 1: depends on EGL 1.0
2954 PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [disabled])
2955
2956 dnl
2957 dnl  Xlib
2958 dnl
2959
2960 AC_PATH_XTRA()
2961 AC_CHECK_HEADERS(X11/Xlib.h)
2962
2963 dnl
2964 dnl  X C Bindings modules
2965 dnl
2966 AC_ARG_ENABLE(xcb,
2967   [  --enable-xcb            X11 support with XCB (default enabled)],, [
2968   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
2969     enable_xcb="yes"
2970   ], [
2971     enable_xcb="no"
2972   ])
2973 ])
2974 AC_ARG_ENABLE(xvideo,
2975   [  --enable-xvideo         XVideo support (default enabled)],, [
2976     enable_xvideo="$enable_xcb"
2977 ])
2978
2979 have_xcb="no"
2980 have_xcb_keysyms="no"
2981 have_xcb_randr="no"
2982 have_xcb_xvideo="no"
2983 AS_IF([test "${enable_xcb}" != "no"], [
2984   dnl libxcb
2985   PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
2986   have_xcb="yes"
2987   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
2988   PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
2989   PKG_CHECK_MODULES(XPROTO, [xproto])
2990
2991   AS_IF([test "${enable_xvideo}" != "no"], [
2992     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [have_xcb_xvideo="yes"])
2993   ])
2994
2995   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [have_xcb_randr="yes"])
2996
2997   dnl xcb-utils
2998   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [have_xcb_keysyms="yes"], [
2999     AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
3000   ])
3001 ])
3002 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3003 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3004 AM_CONDITIONAL([HAVE_XCB_RANDR], [test "${have_xcb_randr}" = "yes"])
3005 AM_CONDITIONAL([HAVE_XCB_XVIDEO], [test "${have_xcb_xvideo}" = "yes"])
3006
3007
3008 dnl
3009 dnl VDPAU needs X11
3010 dnl
3011 AC_ARG_ENABLE(vdpau,
3012   [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3013 have_vdpau="no"
3014 AS_IF([test "${enable_vdpau}" != "no"], [
3015   PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3016     have_vdpau="yes"
3017     AS_IF([test "${no_x}" = "yes"], [
3018       AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3019     ])
3020   ], [
3021     AS_IF([test -n "${enable_vdpau}"], [
3022       AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3023     ])
3024   ])
3025 ])
3026 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3027
3028 have_avcodec_vdpau="no"
3029 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3030   case "${avfork}" in
3031     libav) av_vdpau_ver="55.26.0" ;;
3032     ffmpeg) av_vdpau_ver="55.42.100" ;;
3033   esac
3034   PKG_CHECK_EXISTS([libavutil >= 52.4.0 libavcodec >= ${av_vdpau_ver}], [
3035     have_avcodec_vdpau="yes"
3036     AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3037   ], [
3038     AS_IF([test -n "${enable_vdpau}"], [
3039       AC_MSG_ERROR([libav libavutil >= 52.4.0 and libavcodec >= 55.26.0 are required for VDPAU decoding.])
3040     ], [
3041       AC_MSG_WARN([libav libavutil >= 52.4.0 and libavcodec >= 55.26.0 are required for VDPAU decoding.])
3042     ])
3043   ])
3044 ])
3045 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3046
3047
3048 dnl
3049 dnl  Wayland
3050 dnl
3051 AC_ARG_ENABLE(wayland,
3052   [AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)])])
3053 have_wayland="no"
3054 AC_ARG_VAR([WAYLAND_SCANNER], [Wayland scanner utility])
3055
3056 AS_IF([test "${enable_wayland}" != "no"], [
3057   AC_MSG_CHECKING([for the Wayland scanner])
3058   AS_IF([test -z "$WAYLAND_SCANNER"], [
3059     PKG_CHECK_EXISTS([wayland-scanner], [
3060       WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3061     ], [
3062       WAYLAND_SCANNER="wayland-scanner"
3063     ])
3064   ])
3065   AC_MSG_RESULT([$WAYLAND_SCANNER])
3066
3067   PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91], [
3068     have_wayland="yes"
3069   ], [
3070     AS_IF([test -n "${enable_wayland}"], [
3071       AC_MSG_ERROR([${WAYLAND_CLIENT_PKG_ERRORS}.])
3072     ])
3073   ])
3074
3075   AS_IF([test "${have_egl}" = "yes"], [
3076     PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl], [
3077       have_wayland_egl="yes"
3078     ], [
3079       AS_IF([test -n "${enable_wayland}"], [
3080         AC_MSG_ERROR([${WAYLAND_EGL_PKG_ERRORS}.])
3081       ])
3082     ])
3083   ])
3084 ])
3085 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3086 AM_CONDITIONAL([HAVE_WAYLAND_EGL], [test "${have_wayland_egl}" = "yes"])
3087
3088
3089 dnl
3090 dnl  SDL module
3091 dnl
3092 AC_ARG_ENABLE(sdl,
3093   [  --enable-sdl            SDL support (default enabled)])
3094 AC_ARG_ENABLE(sdl-image,
3095   [  --enable-sdl-image      SDL image support (default enabled)])
3096 if test "${enable_sdl}" != "no"
3097 then
3098    PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3099       # SDL on Darwin is heavily patched and can only run SDL_image
3100       if test "${SYS}" != "darwin"; then
3101         VLC_ADD_PLUGIN([vout_sdl])
3102       fi
3103
3104       # SDL_image
3105       AS_IF([ test "${enable_sdl_image}" != "no"],[
3106         PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3107           VLC_ADD_PLUGIN([sdl_image])],
3108           [ AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3109           ])
3110       ])
3111    ],[
3112      AC_MSG_WARN([${SDL_PKG_ERRORS}.])
3113    ])
3114 fi
3115
3116 dnl
3117 dnl  freetype module
3118 dnl
3119 AC_ARG_ENABLE(freetype,
3120   [  --enable-freetype       freetype support   (default auto)])
3121 AC_ARG_ENABLE(fribidi,
3122   [  --enable-fribidi        fribidi support    (default auto)])
3123 AC_ARG_ENABLE(fontconfig,
3124   [  --enable-fontconfig     fontconfig support (default auto)])
3125
3126 AC_ARG_WITH([default-font],
3127     AS_HELP_STRING([--with-default-font=PATH],
3128         [Path to the default font]),
3129         [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3130             "$withval", [Default font])])
3131 AC_ARG_WITH([default-monospace-font],
3132     AS_HELP_STRING([--with-default-monospace-font=PATH],
3133         [Path to the default font]),
3134         [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3135             "$withval", [Default monospace font])])
3136
3137 AC_ARG_WITH([default-font-family],
3138     AS_HELP_STRING([--with-default-font-family=NAME],
3139         [Path to the default font family]),
3140         [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3141             "$withval", [Default font family])])
3142 AC_ARG_WITH([default-monospace-font-family],
3143     AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3144         [Path to the default font family]),
3145         [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3146             "$withval", [Default monospace font family])])
3147
3148 have_freetype="no"
3149 have_fontconfig="no"
3150 have_fribidi="no"
3151
3152 if test "${enable_freetype}" != "no"; then
3153    PKG_CHECK_MODULES(FREETYPE, freetype2, [
3154       have_freetype="yes"
3155       VLC_ADD_CPPFLAGS([skins2],[${FREETYPE_CFLAGS}])
3156       VLC_ADD_LIBS([skins2],[${FREETYPE_LIBS}])
3157
3158       dnl fontconfig support
3159       if test "${SYS}" != "mingw32"; then
3160           if test "${enable_fontconfig}" != "no"; then
3161             AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3162               have_fontconfig="yes"
3163             ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3164           fi
3165       fi
3166
3167       dnl fribidi support
3168       if test "${enable_fribidi}" != "no"; then
3169         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3170           have_fribidi="yes"
3171           VLC_ADD_CPPFLAGS([skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3172           VLC_ADD_LIBS([skins2], [${FRIBIDI_LIBS}])
3173         ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional support will be disabled in FreeType.])])
3174       fi
3175   ],[
3176   AS_IF([test -n "${enable_freetype}"],[
3177     AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3178     ])
3179   ])
3180 fi
3181
3182 AM_CONDITIONAL([HAVE_FREETYPE], [test "${have_freetype}" = "yes"])
3183 AM_CONDITIONAL([HAVE_FONTCONFIG], [test "${have_fontconfig}" = "yes"])
3184 AM_CONDITIONAL([HAVE_FRIBIDI], [test "${have_fribidi}" = "yes"])
3185
3186
3187 dnl
3188 dnl  QuartzText vout module (iOS/Mac OS)
3189 dnl
3190 AC_ARG_ENABLE(macosx-quartztext,
3191   [  --enable-macosx-quartztext   Mac OS X quartz text module (default enabled on Mac OS X)])
3192 if test "x${enable_macosx_quartztext}" != "xno" &&
3193   (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3194 then
3195   VLC_ADD_PLUGIN([quartztext])
3196 fi
3197
3198 dnl
3199 dnl  SVG module (text rendering and image decoding)
3200 dnl
3201 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3202 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3203
3204 dnl
3205 dnl  android surface module
3206 dnl
3207 AC_ARG_ENABLE(android-surface,
3208   [  --enable-android-surface   Android Surface video output module (default disabled)])
3209 if test "${enable_android_surface}" = "yes"; then
3210      VLC_ADD_PLUGIN([android_surface])
3211      VLC_ADD_PLUGIN([android_window])
3212 fi
3213
3214 dnl
3215 dnl  Windows DirectX module
3216 dnl
3217
3218 AC_ARG_ENABLE(directx,
3219   [AS_HELP_STRING([--enable-directx],
3220     [Microsoft DirectX support (default enabled on Windows)])],, [
3221   AS_IF([test "${SYS}" = "mingw32"], [
3222     enable_directx="yes"
3223   ], [
3224     enable_directx="no"
3225   ])
3226 ])
3227 have_directx="no"
3228 AS_IF([test "${enable_directx}" != "no"], [
3229   dnl DirectDraw
3230   AC_CHECK_HEADERS(ddraw.h, [
3231     have_directx="yes"
3232   ], [
3233     AC_MSG_ERROR([Cannot find DirectX headers!])
3234   ])
3235
3236   dnl OpenGL
3237   AC_CHECK_HEADERS(GL/wglew.h, [
3238     VLC_ADD_PLUGIN([glwin32])
3239   ],, [
3240     #include <windows.h>
3241     #include <GL/gl.h>
3242   ])
3243
3244   dnl Direct3D11
3245   AC_CHECK_HEADERS(d3d11.h, [
3246     VLC_ADD_PLUGIN([direct3d11])
3247   ])
3248
3249   dnl Direct3D9
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     AS_IF([test "${enable_chromaprint}" = "yes"],
3592         [AC_MSG_ERROR(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)],
3593         [AC_MSG_WARN(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)]
3594          ),
3595     [(Chromaprint based audio fingerprinter)],[auto])
3596 m4_popdef([libchromaprint_version])
3597
3598 dnl
3599 dnl  Chromecast streaming support
3600 dnl
3601 m4_pushdef([protobuf_lite_version], 2.5.0)
3602 AC_ARG_VAR(PROTOC, [protobuf compiler])
3603 AC_PATH_PROGS(PROTOC, protoc, no)
3604 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3605     AS_IF([test "x${PROTOC}" != "xno"], [
3606         build_chromecast="yes"
3607     ], [
3608     AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3609     ])
3610 ], [
3611     AS_IF([test "${enable_chromecast}" = "yes"],
3612         AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3613         AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3614     )
3615     enable_chromecast="no"
3616 ], [(Chromecast streaming support)], [auto])
3617 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3618 m4_popdef([protobuf_lite_version])
3619
3620 dnl
3621 dnl  Interface plugins
3622 dnl
3623
3624 EXTEND_HELP_STRING([Interface plugins:])
3625
3626 dnl
3627 dnl QT
3628 dnl
3629 AC_ARG_ENABLE(qt, [
3630   AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)])],, [
3631   AS_IF([test "${SYS}" = "darwin"], [
3632     enable_qt="no"
3633   ])
3634 ])
3635 AS_IF([test "${enable_qt}" != "no"], [
3636   PKG_CHECK_MODULES([QT], [Qt5Core >= 5.1.0 Qt5Widgets Qt5Gui], [
3637       PKG_CHECK_MODULES([QTX11], [Qt5X11Extras], [
3638           VLC_ADD_LIBS([qt4],[${QTX11_LIBS}])
3639           VLC_ADD_CXXFLAGS([qt4],[${QTX11_CFLAGS} -DQT5_HAS_X11])
3640       ],[
3641           AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3642       ])
3643       QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3644       QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3645       AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3646       AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3647       AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3648     ], [
3649       PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [
3650         AS_IF([test -n "${enable_qt}"],[
3651           AC_MSG_ERROR([${QT_PKG_ERRORS}.])
3652         ],[
3653           AC_MSG_WARN([${QT_PKG_ERRORS}.])
3654         ])
3655         enable_qt="no"
3656       ])
3657       QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)"
3658       AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3659       AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3660       AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3661     ])
3662 ])
3663 AS_IF([test "${enable_qt}" != "no"], [
3664   VLC_ADD_PLUGIN([qt4])
3665   ALIASES="${ALIASES} qvlc"
3666 ])
3667 AM_CONDITIONAL(ENABLE_QT4, [test "$enable_qt" != "no"])
3668
3669 dnl
3670 dnl Simple test for skins2 dependency
3671 dnl
3672 AS_IF([test "$enable_qt" = "no"], [
3673   AS_IF([test "${enable_skins2}" = "yes"], [
3674     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.])
3675   ], [
3676     enable_skins2="no"
3677     AC_MSG_WARN([The skins2 module depends on the Qt4 interface, Qt4 is not built so skins2 is disabled.])
3678   ])
3679 ])
3680
3681 dnl
3682 dnl Skins2 module
3683 dnl
3684 AC_ARG_ENABLE(skins2,
3685   [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3686 AS_IF([test "${enable_skins2}" != "no"], [
3687   have_skins_deps="yes"
3688
3689   dnl Win32
3690   AS_IF([test "${SYS}" = "mingw32"], [
3691     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3692     VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3693   dnl MacOS
3694   ], [test "${SYS}" = "darwin"], [
3695     VLC_ADD_CPPFLAGS([skins2],[ -DMACOSX_SKINS])
3696     VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
3697   dnl OS/2
3698   ], [test "${SYS}" = "os2"], [
3699     VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3700   dnl Linux/Unix
3701   ], [
3702     PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3703     PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3704     PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3705     VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3706     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3707   ])
3708
3709   dnl for All OSes
3710   VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3711
3712   dnl we need freetype
3713   AS_IF([test "${have_freetype}" != "yes"], [
3714     have_skins_deps="no"
3715   ])
3716
3717   AS_IF([test "${have_skins_deps}" = "no"], [
3718     AS_IF([test "x${enable_skins2}" = "x"], [
3719       AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3720     ], [
3721       AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
3722     ])
3723     enable_skins2="no"
3724   ], [
3725     VLC_ADD_PLUGIN([skins2])
3726     ALIASES="${ALIASES} svlc"
3727     enable_skins2="yes"
3728   ])
3729 ])
3730 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3731
3732 AC_ARG_ENABLE(libtar,
3733   [  --enable-libtar         libtar support for skins2 (default auto)])
3734 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3735   AC_CHECK_HEADERS(libtar.h, [
3736     VLC_ADD_LIBS([skins2],[-ltar])
3737   ])
3738 ])
3739
3740 dnl
3741 dnl  MacOS X gui module
3742 dnl
3743 AC_ARG_ENABLE(macosx,
3744   [  --enable-macosx         Mac OS X gui support (default enabled on Mac OS X)])
3745 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3746 then
3747   VLC_ADD_LIBS([macosx], [-Wl,-framework,Cocoa -Wl,-framework,Carbon -Wl,-framework,CoreServices])
3748   VLC_ADD_OBJCFLAGS([macosx], [-fobjc-exceptions] )
3749   VLC_ADD_PLUGIN([macosx])
3750
3751   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])
3752
3753   if test ! -d ${CONTRIB_DIR}/Sparkle.framework
3754   then
3755     AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3756   fi
3757   VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle])
3758   VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3759
3760   if test ! -d ${CONTRIB_DIR}/BGHUDAppKit.framework
3761   then
3762     AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}])
3763   fi
3764   VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,BGHUDAppKit])
3765   VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3766 fi
3767 AM_CONDITIONAL(ENABLE_MACOSX_UI, [test "$enable_macosx" != "no"])
3768
3769 dnl
3770 dnl  Minimal Mac OS X module
3771 dnl
3772 AC_ARG_ENABLE(minimal-macosx,
3773   [  --enable-minimal-macosx Minimal Mac OS X support (default disabled)])
3774 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
3775 then
3776   VLC_ADD_LIBS([minimal_macosx], [-Wl,-framework,Cocoa])
3777   VLC_ADD_OBJCFLAGS([minimal_macosx], [-fobjc-exceptions] )
3778   VLC_ADD_PLUGIN([minimal_macosx])
3779 fi
3780 AM_CONDITIONAL(ENABLE_MINIMAL_MACOSX, [test "$enable_minimal_macosx" != "no"])
3781
3782 dnl
3783 dnl  MacOS X dialog provider
3784 dnl
3785 AC_ARG_ENABLE(macosx-dialog-provider,
3786   [  --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3787 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3788   (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3789 then
3790   VLC_ADD_LIBS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3791   VLC_ADD_PLUGIN([macosx_dialog_provider])
3792 fi
3793 AM_CONDITIONAL(ENABLE_MACOSX_DIALOG_PROVIDER, [test "$enable_macosx_dialog_provider" != "no"])
3794
3795 dnl
3796 dnl  ncurses module
3797 dnl
3798 AC_ARG_ENABLE(ncurses,
3799 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
3800 have_ncurses="no"
3801 AS_IF([test "${enable_ncurses}" != "no"] ,[
3802   PKG_CHECK_MODULES([NCURSES], [ncursesw], [
3803     have_ncurses="yes"
3804     ALIASES="${ALIASES} nvlc"
3805   ], [
3806     AS_IF([test -n "${enable_ncurses}"], [
3807       AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
3808     ])
3809   ])
3810 ])
3811 AM_CONDITIONAL([HAVE_NCURSES], [test "${have_ncurses}" = "yes"])
3812
3813 dnl
3814 dnl  Lirc plugin
3815 dnl
3816 AC_ARG_ENABLE(lirc,
3817   [  --enable-lirc           lirc support (default disabled)])
3818 have_lirc="no"
3819 AS_IF([test "${enable_lirc}" = "yes"], [
3820   AC_CHECK_HEADER(lirc/lirc_client.h, [
3821     AC_CHECK_LIB(lirc_client, lirc_init, [
3822       have_lirc="true"
3823     ])
3824   ])
3825 ])
3826 AM_CONDITIONAL([HAVE_LIRC], [test "${have_lirc}" = "yes"])
3827
3828 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3829 dnl
3830 dnl  goom visualization plugin
3831 dnl
3832 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3833
3834 dnl
3835 dnl libprojectM visualization plugin
3836 dnl
3837 AC_ARG_ENABLE(projectm,
3838   [  --enable-projectm       projectM visualization plugin (default enabled)])
3839 AS_IF([test "${enable_projectm}" != "no"],
3840   [
3841     PKG_CHECK_MODULES(PROJECTM, libprojectM,
3842     [
3843       VLC_ADD_PLUGIN([projectm])
3844       PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
3845         [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3846         [ AC_MSG_WARN( [Using libprojectM version 1] )
3847       ])
3848     ],[
3849       AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
3850     ])
3851   ])
3852
3853 dnl
3854 dnl Vovoid VSXu visualization plugin
3855 dnl
3856 AC_ARG_ENABLE(vsxu,
3857   [  --enable-vsxu           Vovoid VSXu visualization plugin (default auto)])
3858 AS_IF([test "${enable_vsxu}" != "no"],
3859   [
3860     PKG_CHECK_MODULES(VSXU, libvsxu,
3861     [
3862       VLC_ADD_PLUGIN([vsxu])
3863     ],[
3864       AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
3865     ])
3866   ])
3867
3868 dnl
3869 dnl  AtmoLight (homemade Philips Ambilight clone)
3870 dnl
3871 AC_ARG_ENABLE(atmo,
3872 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
3873                 (default enabled)]),, [enable_atmo="yes"])
3874 AS_IF([test "${enable_atmo}" != no], [
3875   AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
3876     VLC_ADD_PLUGIN([atmo])
3877   ])
3878 ])
3879
3880 EXTEND_HELP_STRING([Service Discovery plugins:])
3881 dnl
3882 dnl  Bonjour services discovery
3883 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
3884
3885 dnl
3886 dnl  libudev services discovery
3887 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
3888
3889 dnl
3890 dnl MTP devices services discovery
3891 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
3892
3893 dnl
3894 dnl UPnP Plugin (Intel SDK)
3895 dnl
3896 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
3897
3898 EXTEND_HELP_STRING([Misc options:])
3899
3900 dnl
3901 dnl  libxml2 module
3902 dnl
3903 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3904
3905
3906 dnl
3907 dnl libgcrypt
3908 dnl
3909 AC_ARG_ENABLE(libgcrypt,
3910   [  --disable-libgcrypt     gcrypt support (default enabled)])
3911 AS_IF([test "${enable_libgcrypt}" != "no"], [
3912   AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
3913     libgcrypt-config --version >/dev/null || \
3914         AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
3915     AC_CHECK_LIB(gcrypt, gcry_control, [
3916       have_libgcrypt="yes"
3917       GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
3918       GCRYPT_LIBS="`libgcrypt-config --libs`"
3919     ], [
3920       AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or pass --disable-libgcrypt.])
3921     ], [`libgcrypt-config --libs`])
3922   ], [
3923     AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
3924   ], [#include <gcrypt.h>]
3925   )
3926 ])
3927
3928 AC_SUBST(GCRYPT_CFLAGS)
3929 AC_SUBST(GCRYPT_LIBS)
3930 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
3931
3932 dnl
3933 dnl TLS/SSL
3934 dnl
3935 AC_ARG_ENABLE(gnutls,
3936   [  --enable-gnutls         GNU TLS TLS/SSL support (default enabled)])
3937 AS_IF([test "${enable_gnutls}" != "no"], [
3938   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.2.0], [
3939     VLC_ADD_PLUGIN([gnutls])
3940   ], [
3941     AS_IF([test -n "${enable_gnutls}"], [
3942       AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
3943     ])
3944   ])
3945 ])
3946
3947
3948 dnl
3949 dnl Taglib plugin
3950 dnl
3951 AC_ARG_ENABLE(taglib,
3952   [AS_HELP_STRING([--disable-taglib],
3953     [do not use TagLib (default enabled)])])
3954 AS_IF([test "${enable_taglib}" != "no"], [
3955   PKG_CHECK_MODULES(TAGLIB, taglib >= 1.9, [
3956     VLC_ADD_PLUGIN([taglib])
3957   ], [
3958     AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
3959 ])
3960
3961
3962 dnl
3963 dnl update checking system
3964 dnl
3965 AC_ARG_ENABLE(update-check,
3966   [  --enable-update-check   update checking system (default disabled)])
3967 if test "${enable_update_check}" = "yes"
3968 then
3969   if test "${have_libgcrypt}" != "yes"
3970   then
3971     AC_MSG_ERROR([libgcrypt is required for update checking system])
3972   fi
3973   VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
3974   VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
3975   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
3976 fi
3977
3978 dnl
3979 dnl Growl notification plugin
3980 dnl
3981 AC_ARG_ENABLE(growl,
3982   [  --enable-growl          growl notification plugin (default disabled)],,
3983   [enable_growl=no])
3984 AS_IF([test "${enable_growl}" != "no"], [
3985     AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl.framework/Versions/A/Headers/Growl.h, [
3986       VLC_ADD_PLUGIN([growl])
3987       VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR} -Wl,-framework,Growl,-framework,Foundation])
3988       VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}])
3989       VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
3990     ])
3991   ]
3992 )
3993
3994 dnl
3995 dnl Libnotify notification plugin
3996 dnl
3997 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
3998
3999 dnl
4000 dnl  Endianness check
4001 dnl
4002 AC_C_BIGENDIAN
4003 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4004   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4005 ], [
4006   DEFS_BIGENDIAN=""
4007 ])
4008 AC_SUBST(DEFS_BIGENDIAN)
4009
4010 dnl
4011 dnl Where to install KDE solid .desktop
4012 dnl
4013 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4014 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4015   KDE4_CONFIG="kde4-config"
4016 ])
4017
4018 AC_ARG_WITH(kde-solid,
4019   AS_HELP_STRING([--with-kde-solid=PATH],
4020                  [KDE Solid actions directory (auto)]),, [
4021
4022 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" ; then
4023   with_kde_solid="yes"
4024 fi
4025 ])
4026 soliddatadir=""
4027 AS_IF([test "${with_kde_solid}" != "no"], [
4028   AS_IF([test "${with_kde_solid}" = "yes"], [
4029     kde4datadir="`${KDE4_CONFIG} --install data`"
4030     AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4031     soliddatadir="${kde4datadir}/solid/actions"
4032   ], [
4033     soliddatadir="${with_kde_solid}"
4034   ])
4035 ])
4036 AC_SUBST(soliddatadir)
4037 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4038
4039 EXTEND_HELP_STRING([Components:])
4040
4041 dnl
4042 dnl  the VLC binary
4043 dnl
4044 AC_ARG_ENABLE(vlc,
4045   [  --enable-vlc            build the VLC media player (default enabled)])
4046 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4047
4048 AC_ARG_ENABLE(macosx-vlc-app,
4049   [  --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4050 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4051     (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4052
4053 dnl
4054 dnl  Stuff used by the program
4055 dnl
4056 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4057 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4058 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4059 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4060 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4061 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4062 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4063 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4064 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4065 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4066 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4067 AC_SUBST(COPYRIGHT_MESSAGE)
4068 AC_SUBST(VERSION_MESSAGE)
4069 AC_SUBST(VERSION_MAJOR)
4070 AC_SUBST(VERSION_MINOR)
4071 AC_SUBST(VERSION_REVISION)
4072 AC_SUBST(VERSION_EXTRA)
4073 AC_SUBST(COPYRIGHT_YEARS)
4074 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4075 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4076 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4077 dnl
4078 dnl  Handle substvars that use $(top_srcdir)
4079 dnl
4080 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4081
4082 dnl
4083 dnl  Configuration is finished
4084 dnl
4085 AC_SUBST(SYS)
4086 AC_SUBST(ARCH)
4087 AC_SUBST(ALIASES)
4088 AC_SUBST(ASM)
4089 AC_SUBST(MOC)
4090 AC_SUBST(RCC)
4091 AC_SUBST(UIC)
4092 AC_SUBST(WINDRES)
4093 AC_SUBST(WINE_SDK_PATH)
4094 AC_SUBST(LIBEXT)
4095 AC_SUBST(AM_CPPFLAGS)
4096 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4097 AC_SUBST(FILE_LIBVLCCORE_DLL)
4098 AC_SUBST(FILE_LIBVLC_DLL)
4099
4100 AC_CONFIG_FILES([
4101   Makefile
4102   doc/Makefile
4103   modules/Makefile
4104   m4/Makefile
4105   po/Makefile.in
4106   share/Makefile
4107   compat/Makefile
4108   src/Makefile
4109   lib/Makefile
4110   bin/Makefile
4111   test/Makefile
4112   modules/gui/ios_dialog_provider/Makefile
4113   modules/gui/macosx/Makefile
4114   modules/gui/minimal_macosx/Makefile
4115   modules/gui/macosx_dialog_provider/Makefile
4116   modules/gui/qt4/Makefile
4117   modules/gui/skins2/Makefile
4118   modules/hw/mmal/Makefile
4119 ])
4120
4121 AM_COND_IF([HAVE_WIN32], [
4122   AC_CONFIG_FILES([
4123     extras/package/win32/NSIS/spad.nsi
4124     extras/package/win32/NSIS/vlc.win32.nsi
4125     extras/package/win32/msi/config.wxi
4126   ])
4127 ])
4128
4129 AM_COND_IF([HAVE_DARWIN], [
4130   AC_CONFIG_FILES([
4131     extras/package/macosx/Info.plist
4132     extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4133   ])
4134 ])
4135
4136 dnl Generate makefiles
4137 AC_OUTPUT
4138
4139 dnl Do we have to use make or gmake ?
4140 if make --version 2>&1|grep -q GNU
4141 then
4142     # GNU make, all seems good
4143     MAKE=make
4144 else
4145     # Known GNU make alias (on BSD)
4146     MAKE=gmake
4147 fi
4148 dnl Shortcut to nice compile message
4149 if test -n $SHELL; then
4150   SHELL=${CONFIG_SHELL-/bin/sh}
4151 fi
4152 rm -f compile
4153 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4154 echo "#! $SHELL
4155 rm -f .error\$\$
4156 ERROR=0
4157 export PATH=\"$PATH\" LANG=C
4158 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4159 test -f .error\$\$ && ERROR=1
4160 rm -f .error\$\$
4161 exit \$ERROR" >compile
4162 chmod a+x compile
4163
4164 echo "
4165 libvlc configuration
4166 --------------------
4167 version               : ${VERSION}
4168 system                : ${SYS}
4169 architecture          : ${ARCH}
4170 optimizations         : ${enable_optimizations}"
4171 if test "${enable_vlc}" != "no"; then
4172 echo "vlc aliases           :${ALIASES}"
4173 else
4174 echo "build vlc executable  : no"
4175 fi
4176 echo "
4177 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."