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