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