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