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