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