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