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