]> git.sesse.net Git - vlc/blob - configure.ac
avcodec: use automake conditionals for hardware acceleration
[vlc] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_COPYRIGHT([Copyright 2002-2012 VLC authors and VideoLAN])
4
5 AC_INIT(vlc, 2.1.0-git)
6 VERSION_MAJOR=2
7 VERSION_MINOR=1
8 VERSION_REVISION=0
9 VERSION_EXTRA=0
10 VERSION_DEV=git
11
12 PKGDIR="vlc"
13 AC_SUBST(PKGDIR)
14
15 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
16 CODENAME="Rincewind"
17 COPYRIGHT_YEARS="1996-2012"
18
19 AC_CONFIG_SRCDIR(src/libvlc.c)
20 AC_CONFIG_AUX_DIR(autotools)
21 AC_CONFIG_MACRO_DIR(m4)
22 AC_CONFIG_LIBOBJ_DIR(compat)
23 AC_CANONICAL_BUILD
24 AC_CANONICAL_HOST
25 AC_PRESERVE_HELP_ORDER
26
27 AM_INIT_AUTOMAKE(tar-ustar color-tests foreign)
28 AM_CONFIG_HEADER(config.h)
29
30 # Disable with "./configure --disable-silent-rules" or "make V=1"
31 AM_SILENT_RULES([yes])
32
33 dnl Too many people are not aware of maintainer mode:
34 dnl If you want to use it, you definitely know what you are doing, so
35 dnl you can specify "--disable-maintainer-mode". But if you want the default
36 dnl automake behavior, you've likely never heard of maintainer mode, so we
37 dnl can't expect you to enable it manually.
38 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
39     [enable_maintainer_mode="yes"])
40 AM_MAINTAINER_MODE
41
42 dnl
43 dnl Directories
44 dnl
45 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
46 dnl AC_SUBST(vlcincludedir)
47 vlcdatadir="\${datadir}/\${PKGDIR}"
48 AC_SUBST(vlcdatadir)
49 vlclibdir="\${libdir}/\${PKGDIR}"
50 AC_SUBST(vlclibdir)
51
52 dnl
53 dnl Check for tools
54 dnl
55 AC_PROG_CC_C99
56 AC_USE_SYSTEM_EXTENSIONS
57 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to 2 to get glibc warnings.])
58 AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
59 AC_DEFINE([_REENTRANT],, [Define to expose reentrant functions.])
60 AC_DEFINE([_THREAD_SAFE],, [Same as _REENTANT for some other OSes.])
61 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
62 AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of <windows.h>.])
63
64 AM_PROG_CC_C_O
65 AC_PROG_CXX
66 AC_PROG_CPP
67 AC_PROG_OBJC
68 _AM_DEPENDENCIES([OBJC])
69 AC_PROG_EGREP
70 AC_PROG_MAKE_SET
71 AC_PROG_INSTALL
72 AM_PROG_AS
73
74 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
75 AC_CHECK_PROGS(DESKTOP_FILE_VALIDATE, [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
76
77 dnl Check for compiler properties
78 AC_C_CONST
79 AC_C_INLINE
80 AC_C_RESTRICT
81
82 dnl Extend the --help string at the current spot.
83 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
84
85 dnl Allow binary package maintainer to pass a custom string to avoid
86 dnl cache problem
87 AC_ARG_WITH(binary-version,
88     AS_HELP_STRING([--with-binary-version=STRING],
89          [To avoid plugins cache problem between binary version]),[],[])
90 AS_IF([test -n "${with_binary_version}"],[
91     AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
92          [Binary specific version])
93 ])
94
95 dnl
96 dnl  Check the operating system
97 dnl
98 HAVE_WIN64="0"
99 case "${host_os}" in
100   "")
101     SYS=unknown
102     ;;
103   linux*)
104     SYS=linux
105     ;;
106   bsdi*)
107     SYS=bsdi
108     CFLAGS="${CFLAGS} -pthread"
109     VLC_ADD_LIBS([vcd cdda vcdx],[-ldvd])
110     ;;
111   freebsd*)
112     SYS=freebsd
113     CFLAGS="${CFLAGS} -pthread"
114     CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
115     LDFLAGS="${LDFLAGS} -L/usr/local/lib"
116     ;;
117   openbsd*)
118     SYS=openbsd
119     CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
120     LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
121     ;;
122   netbsd*)
123     SYS=netbsd
124     ;;
125   dragonfly*)
126     SYS=dragonfly
127     ;;
128   darwin*)
129
130     dnl Force gcc "-arch" flag
131     ARCH_flag=""
132     case "${host}" in
133       i?86*)
134         ARCH_flag="-arch i386"
135       ;;
136       ppc64*)
137         ARCH_flag="-arch ppc64"
138       ;;
139       ppc*)
140         ARCH_flag="-arch ppc"
141       ;;
142       x86_64*)
143         ARCH_flag="-arch x86_64"
144       ;;
145       arm*)
146         ARCH_flag="-arch armv7"
147         ac_cv_c_bigendian="no"
148         ac_cv_c_attribute_packed="no"
149       ;;
150     esac
151
152     SYS=darwin
153     CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
154     CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
155     CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
156     OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"
157     LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
158     VLC_ADD_LIBS([motion rotate], [-Wl,-framework,IOKit,-framework,CoreFoundation])
159     VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
160     VLC_ADD_LIBS([avcodec access_avio swscale postproc i420_rgb_mmx x264 x26410b],[-Wl,-read_only_relocs,suppress])
161     VLC_ADD_CFLAGS([motion rotate],[-fconstant-cfstrings])
162     VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation])
163
164     dnl Allow binaries created on Lion to run on earlier releases
165     AC_EGREP_CPP(yes,
166            [#import <Cocoa/Cocoa.h>
167             #ifdef MAC_OS_X_VERSION_10_7
168             yes
169             #endif],
170             [AC_MSG_RESULT([yes])
171             AC_LIBOBJ([getdelim])
172             AC_LIBOBJ([strndup])
173             AC_LIBOBJ([strnlen])],)
174
175     dnl
176     dnl  Handle Mac OS X SDK flags
177     dnl
178     AC_ARG_WITH(macosx-sdk,
179       [AS_HELP_STRING([--with-macosx-sdk=DIR],
180         [compile using the SDK in DIR])])
181     if test "${with_macosx_sdk}" != "" ; then
182         test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
183         CPP="${CPP} -isysroot ${with_macosx_sdk}"
184         CC="${CC} -isysroot ${with_macosx_sdk}"
185         CXX="${CXX} -isysroot ${with_macosx_sdk}"
186         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
187         LD="${LD} -syslibroot ${with_macosx_sdk}"
188     fi
189     AC_ARG_WITH(macosx-version-min,
190       [AS_HELP_STRING([--with-macosx-version-min=VERSION],
191         [compile for Mac OS X VERSION and above])])
192     if test "${with_macosx_version_min}" != "" ; then
193         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
194         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
195         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
196         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
197         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
198         LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
199         CFLAGS="${CFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
200         CXXFLAGS="${CXXFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
201         OBJCFLAGS="${OBJCFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
202         export MACOSX_DEPLOYMENT_TARGET
203     fi
204     ;;
205   *mingw32* | *cygwin* | *wince* | *mingwce*)
206     AC_CHECK_TOOL(WINDRES, windres, :)
207     AC_CHECK_TOOL(OBJCOPY, objcopy, :)
208     AC_DEFINE([_WIN32_WINNT], 0x0502, [Define to '0x0502' for Windows XP SP2 APIs.])
209     AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
210
211     case "${host_os}" in
212       *mingw32*)
213         SYS=mingw32
214         ;;
215       *cygwin*)
216         dnl Check if we are using the mno-cygwin mode in which case we are
217         dnl actually dealing with a mingw32 compiler.
218         AC_EGREP_CPP(yes,
219             [#ifdef WIN32
220              yes
221              #endif],
222             SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
223         ;;
224     esac
225
226     if test "${SYS}" = "mingw32"; then
227         VLC_ADD_LIBS([libvlccore],[-lwinmm])
228         VLC_ADD_LDFLAGS([vlc],[-mwindows])
229         VLC_ADD_LIBS([win32text],[-lgdi32])
230         VLC_ADD_LIBS([vcdx],[-lwinmm])
231         AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
232         ac_default_prefix="`pwd`/_win32"
233         DESTDIR="`pwd`/_win32/"
234
235         dnl
236         dnl NSIS Installer prefix and WIN64
237         dnl
238         case "${host}" in
239             amd64*|x86_64*)
240                 HAVE_WIN64="1"
241                 PROGRAMFILES="PROGRAMFILES64"
242             ;;
243             *)
244                 PROGRAMFILES="PROGRAMFILES"
245             ;;
246         esac
247         AC_SUBST(PROGRAMFILES)
248
249     fi
250     ;;
251   *nto*)
252     SYS=nto
253     ;;
254   solaris*)
255     SYS=solaris
256     ;;
257   hpux*)
258     SYS=hpux
259     ;;
260   symbian*)
261     SYS=symbian
262     ;;
263   *os2*)
264     SYS=os2
265     LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild"
266     ;;
267   *)
268     SYS="${host_os}"
269     ;;
270 esac
271 AM_CONDITIONAL(HAVE_DARWIN,  test "${SYS}" = "darwin")
272 AM_CONDITIONAL(HAVE_LINUX,   test "${SYS}" = "linux")
273 AM_CONDITIONAL(HAVE_OS2,     test "${SYS}" = "os2")
274 AM_CONDITIONAL(HAVE_WIN32,   test "${SYS}" = "mingw32")
275 AM_CONDITIONAL(HAVE_WIN64,   test "${HAVE_WIN64}" = "1")
276 AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
277
278 dnl
279 dnl Sadly autoconf does not think about testing foo.exe when ask to test
280 dnl for program foo on win32
281 case "${build_os}" in
282     cygwin|msys)
283         ac_executable_extensions=".exe"
284     ;;
285     *)
286     ;;
287 esac
288
289 dnl Android is linux, but a bit different
290 AS_IF([test "$SYS" = linux],[
291     AC_MSG_CHECKING([for an Android system])
292     AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
293         [[#ifndef __ANDROID__
294          # error Not Android
295          #endif
296         ]],[[;]])
297     ],[
298       HAVE_ANDROID="1"
299       AC_MSG_RESULT([yes])
300     ],[
301       AC_MSG_RESULT([no])
302     ])
303 ])
304 AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")
305
306
307 dnl
308 dnl  Check for the contrib directory
309 dnl
310 AC_ARG_WITH(contrib,
311   [AS_HELP_STRING([--with-contrib[=DIR]],
312     [search for 3rd party libraries in DIR/include and DIR/lib])
313 ])
314 AC_MSG_CHECKING([for 3rd party libraries path])
315 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
316   CONTRIB_DIR="${srcdir}/contrib/${host}"
317   AS_IF([test ! -d "${CONTRIB_DIR}"], [
318     echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
319     CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
320     AS_IF([test ! -d "${CONTRIB_DIR}"], [
321       echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
322       CONTRIB_DIR="${srcdir}/extras/contrib/hosts/${host}"
323       AS_IF([test ! -d "${CONTRIB_DIR}"], [
324         echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
325         CONTRIB_DIR="${srcdir}/extras/contrib/hosts/`$CC -dumpmachine`"
326         AS_IF([test ! -d "${CONTRIB_DIR}"], [
327           echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
328           CONTRIB_DIR=""
329           AC_MSG_RESULT([not found])
330         ])
331       ])
332     ])
333   ])
334 ], [
335   AS_IF([test "${with_contrib}" != "no"], [
336     CONTRIB_DIR="${with_contrib}"
337   ], [
338     CONTRIB_DIR=""
339     AC_MSG_RESULT([disabled])
340   ])
341 ])
342 AS_IF([test -n "${CONTRIB_DIR}"], [
343   AS_IF([test -d "${CONTRIB_DIR}/lib"],[
344     CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
345   ], [
346     echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
347     CONTRIB_DIR=""
348     AC_MSG_RESULT([not usable])
349   ])
350
351 ])
352 AS_IF([test -n "${CONTRIB_DIR}"], [
353   AC_MSG_RESULT([${CONTRIB_DIR}])
354   export PATH=${CONTRIB_DIR}/bin:$PATH
355   CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
356   CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
357   CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
358   OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
359   AS_IF([test "$build" = "$host" -o "$PKG_CONFIG_LIBDIR"], [
360     export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
361   ], [
362     export PKG_CONFIG_LIBDIR="${CONTRIB_DIR}/lib/pkgconfig"
363   ])
364   LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
365
366   AS_IF([test "${SYS}" = "darwin"], [
367     export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
368     export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
369   ])
370 ], [
371   AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
372     AC_MSG_ERROR([Third party libraries not found!])
373   ])
374 ])
375 AC_SUBST(CONTRIB_DIR)
376
377 dnl
378 dnl  Libtool
379 dnl  It's very bad, but our former custom system was worst
380 dnl  -- Courmisch
381 dnl
382
383 dnl override platform specific check for dependent libraries
384 dnl otherwise libtool linking of shared libraries will
385 dnl fail on anything other than pass_all.
386 AC_CACHE_VAL(lt_cv_deplibs_check_method,
387     [lt_cv_deplibs_check_method=pass_all])
388
389 LT_INIT([dlopen win32-dll shared disable-static])
390 LT_LANG([C++])
391 LT_LANG([Windows Resource])
392
393 DOLT
394
395 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
396 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
397
398 lt_cv_deplibs_check_method=pass_all
399
400 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
401   AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
402 ])
403
404 dnl
405 dnl Gettext stuff
406 dnl
407 AM_GNU_GETTEXT_VERSION([0.18.1])
408 AM_GNU_GETTEXT([external], [need-ngettext])
409
410 dnl
411 dnl Iconv stuff
412 dnl
413 AM_ICONV
414
415 dnl
416 dnl checks for mingw
417 AS_IF([test "${SYS}" = "mingw32"], [
418 dnl Check for broken versions of mingw-runtime compatability library
419     AC_MSG_CHECKING(for broken mingw-runtime)
420     AC_PREPROC_IFELSE([AC_LANG_SOURCE([
421 #include <_mingw.h>
422 #if defined(__MINGW64_VERSION_MAJOR)
423 # if __MINGW64_VERSION_MAJOR < 3
424 #  error Attempting to use mingw-runtime with broken vsnprintf and direct2d support
425 # endif
426 #elif __MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION < 15
427 # error Attempting to use mingw-runtime with broken vsnprintf support
428 #endif
429     ])], [
430         AC_MSG_RESULT([ok])
431     ], [
432         AC_MSG_RESULT([present])
433         AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher, or mingw-w64 version 3.0 or higher!])
434     ])
435     dnl force use of mingw provided c99 *printf over msvcrt
436     CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
437
438 dnl Check for the need to include the mingwex lib for mingw32
439     AC_CHECK_LIB(mingwex,opendir,
440         AC_CHECK_LIB(mingw32,opendir,,
441             [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
442     )
443
444 dnl Check for fnative-struct or mms-bitfields support for mingw32
445     VLC_SAVE_FLAGS
446     CFLAGS="${CFLAGS} -mms-bitfields"
447     CXXFLAGS="${CXXFLAGS} -mms-bitfields"
448     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
449         [ac_cv_c_mms_bitfields],
450         [AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
451     if test "${ac_cv_c_mms_bitfields}" = "no"; then
452         VLC_RESTORE_FLAGS
453         CFLAGS="${CFLAGS} -fnative-struct"
454         CXXFLAGS="${CXXFLAGS} -fnative-struct"
455         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
456             [ac_cv_c_fnative_struct],
457             [AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
458         "${ac_cv_c_fnative_struct}" = "no" && VLC_RESTORE_FLAGS
459     fi
460 ])
461
462 dnl
463 dnl Buggy glibc prevention. Purposedly not cached.
464 dnl See sourceware.org bugs 5058 and 5443.
465 dnl Ubuntu alone has 20 bug numbers for this...
466 dnl
467 AC_MSG_CHECKING(for buggy GNU/libc versions)
468 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
469 #include <limits.h>
470 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
471   && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
472 # error GNU/libc with dcgettext killer bug!
473 #endif
474 ])], [
475   AC_MSG_RESULT([not present])
476 ], [
477   AC_MSG_RESULT([found])
478   AS_IF([test "x${enable_nls}" != "xno"], [
479     AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
480 work-around for this. Check with your distribution vendor on how to update the
481 glibc run-time. Alternatively, build with --disable-nls.])
482   ])
483 ])
484
485 dnl Plugin compilation stuff
486
487 VLC_LIBRARY_SUFFIX
488
489 dnl Check for system libs needed
490 need_libc=false
491
492 dnl Check for usual libc functions
493 AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
494 AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r isatty lstat memalign mmap openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale])
495 AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r inet_pton lldiv localtime_r nrand48 poll posix_memalign rewind setenv strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab tdestroy strverscmp])
496 AC_CHECK_FUNCS(fdatasync,,
497   [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
498 ])
499
500 dnl mingw64 implements those as static inline, not functions with C linkage
501 AC_LINK_IFELSE([
502     AC_LANG_PROGRAM([#include <stdio.h>], [
503         char *c;
504         if (asprintf(&c, "%s %d", "string", 1) == -1)
505             c = NULL;
506     ])],[AC_DEFINE([HAVE_ASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([asprintf])])
507 AC_LINK_IFELSE([
508     AC_LANG_PROGRAM([#include <stdio.h>
509                      #include <stdarg.h>], [
510         char *c;
511         va_list ap;
512         if (vasprintf(&c, "%s %d", ap) == -1)
513             c = NULL;
514     ])],[AC_DEFINE([HAVE_VASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([vasprintf])])
515
516 dnl C11 static_assert()
517 AC_MSG_CHECKING([for static_assert in assert.h])
518 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
519 #include <assert.h>
520 #ifndef static_assert
521 # error BOOM!
522 #endif
523 ])], [
524   AC_MSG_RESULT([yes])
525   AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
526 ], [
527   AC_MSG_RESULT([no])
528 ])
529
530 # Windows CE does not have strcoll()
531 AC_FUNC_STRCOLL
532
533 dnl Check for non-standard system calls
534 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 CrystalHD codec plugin
2098 dnl
2099 AC_ARG_ENABLE(crystalhd,
2100   [  --enable-crystalhd      crystalhd codec plugin (default auto)])
2101 if test "${enable_crystalhd}" != "no"; then
2102     AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2103       VLC_ADD_PLUGIN([crystalhd])
2104       VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2105     ],[
2106       if test "${SYS}" = "mingw32" ; then
2107         AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2108           VLC_ADD_PLUGIN([crystalhd])
2109           AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2110             VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2111             ])
2112         ],[
2113           AS_IF([test x"${enable_crystalhd}" = "xyes"],
2114                 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2115                 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2116         ],[#define __LINUX_USER__
2117                #include <libcrystalhd/bc_dts_types.h>
2118         ])
2119       fi
2120     ],[
2121        #include <libcrystalhd/bc_dts_types.h>
2122       ])
2123 fi
2124
2125 dnl
2126 dnl  mad plugin
2127 dnl
2128 AC_ARG_ENABLE(mad,
2129   [  --enable-mad            libmad module (default enabled)])
2130 if test "${enable_mad}" != "no"
2131 then
2132   AC_ARG_WITH(mad,
2133     [  --with-mad=PATH         path to libmad],[],[])
2134   if test "${with_mad}" != "no" -a -n "${with_mad}"
2135   then
2136     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2137     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2138   fi
2139
2140   AC_ARG_WITH(mad-tree,
2141     [  --with-mad-tree=PATH    mad tree for static linking],[],[])
2142   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2143   then
2144     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2145     if test -z "${real_mad_tree}"
2146     then
2147       dnl  The given directory can't be found
2148       AC_MSG_RESULT(no)
2149       AC_MSG_ERROR([${with_mad_tree} directory does not exist])
2150     fi
2151     dnl  Use a custom libmad
2152     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2153     if test -f ${real_mad_tree}/mad.h
2154     then
2155       AC_MSG_RESULT(yes)
2156       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2157       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2158       VLC_SAVE_FLAGS
2159       LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2160       AC_CHECK_LIB(mad, mad_bit_init, [
2161         VLC_ADD_PLUGIN([mpgatofixed32])
2162         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2163         ],[ AC_MSG_ERROR([the specified tree has not been compiled ])
2164       ],[])
2165       VLC_RESTORE_FLAGS
2166     else
2167       AC_MSG_RESULT(no)
2168       AC_MSG_ERROR([the specified tree does not have mad.h])
2169     fi
2170   else
2171     VLC_SAVE_FLAGS
2172     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_mpgatofixed32}"
2173     LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2174     AC_CHECK_HEADERS(mad.h, ,
2175       [ 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.]) ])
2176     AC_CHECK_LIB(mad, mad_bit_init, [
2177       VLC_ADD_PLUGIN([mpgatofixed32])
2178       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2179       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2180     VLC_RESTORE_FLAGS
2181   fi
2182 fi
2183
2184
2185 AC_ARG_ENABLE(merge-ffmpeg,
2186 [  --enable-merge-ffmpeg   merge FFmpeg-based plugins (default disabled)],, [
2187   enable_merge_ffmpeg="no"
2188 ])
2189 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2190
2191 VLC_SAVE_FLAGS
2192 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
2193 AC_CACHE_CHECK([if linker supports -Bsymbolic],
2194   [ac_cv_ld_bsymbolic],
2195   [AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)])
2196 VLC_RESTORE_FLAGS
2197
2198 dnl
2199 dnl  avcodec decoder/encoder plugin
2200 dnl
2201 AC_ARG_ENABLE(avcodec,
2202 [  --enable-avcodec        libavcodec codec (default enabled)])
2203 AS_IF([test "${enable_avcodec}" != "no"], [
2204   PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 52.25.0 libavutil >= 49.5.0],
2205     [
2206       VLC_SAVE_FLAGS
2207       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2208       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2209       AC_CHECK_HEADERS(libavcodec/avcodec.h)
2210       AC_CHECK_HEADERS(libavutil/avutil.h)
2211       VLC_ADD_PLUGIN([avcodec])
2212       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2213       AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2214         VLC_ADD_LIBS([avcodec],[-Wl,-Bsymbolic])
2215       ])
2216       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2217       VLC_RESTORE_FLAGS
2218       have_avcodec="yes"
2219     ],[
2220       AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2221   ])
2222 ], [
2223   have_avcodec="no"
2224 ])
2225
2226 dnl
2227 dnl libva needs avcodec
2228 dnl
2229 AC_ARG_ENABLE(libva,
2230   [  --enable-libva          VAAPI GPU decoding support (libVA) (default auto)])
2231
2232 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2233   AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2234 ])
2235 have_avcodec_vaapi="no"
2236 AS_IF([test "${enable_libva}" != "no"], [
2237   PKG_CHECK_MODULES(LIBVA, [libva libva-x11], [
2238     VLC_SAVE_FLAGS
2239     CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2240     CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2241     AC_CHECK_HEADERS(libavcodec/vaapi.h, [
2242       AC_MSG_NOTICE([VAAPI acceleration activated])
2243       have_avcodec_vaapi="yes"
2244     ],[
2245       AS_IF([test -n "${enable_libva}"], [
2246         AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2247       ], [
2248         AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2249       ])
2250     ])
2251     VLC_RESTORE_FLAGS
2252   ],[
2253     AS_IF([test -n "${enable_libva}"], [
2254       AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2255     ], [
2256       AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2257     ])
2258   ])
2259 ])
2260 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2261
2262 dnl
2263 dnl dxva2 needs avcodec
2264 dnl
2265 AC_ARG_ENABLE(dxva2,
2266   [  --enable-dxva2          DxVA2 GPU decoding support (default auto)])
2267
2268 have_avcodec_dxva2="no"
2269 AS_IF([test "${enable_dxva2}" != "no"], [
2270   if test "${SYS}" = "mingw32"; then
2271   AS_IF([test "x${have_avcodec}" = "xyes"], [
2272     AC_CHECK_HEADERS(dxva2api.h,
2273       [
2274         AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2275            AC_MSG_NOTICE([DxVA2 acceleration activated])
2276            have_avcodec_dxva2="yes"
2277         ],[
2278     AS_IF([test "${enable_dxva2}" = "yes"],
2279           [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2280               [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2281         ], [#undef _WIN32_WINNT
2282             /* DXVA2 is only available in Vista and above */
2283             #define _WIN32_WINNT 0x600])
2284       ],[
2285     AS_IF([test "${enable_dxva2}" = "yes"],
2286               [AC_MSG_ERROR([Could not find required dxva2api.h])],
2287               [AC_MSG_WARN([dxva2api.h not found])])
2288       ])
2289   ],[
2290     AS_IF([test "x${enable_dxva2}" != "x"], [
2291       AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2292     ])
2293   ])
2294   fi
2295 ])
2296 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2297
2298 dnl
2299 dnl vda needs avcodec
2300 dnl
2301 AC_ARG_ENABLE(vda,
2302   [  --enable-vda          VDA  support (default auto)])
2303
2304 have_avcodec_vda="no"
2305 AS_IF([test "${enable_vda}" != "no"], [
2306   if test "${SYS}" = "darwin"; then
2307   AS_IF([test "x${have_avcodec}" = "xyes"], [
2308     AC_CHECK_HEADERS(VideoDecodeAcceleration/VDADecoder.h,
2309       [
2310         AC_CHECK_HEADERS(libavcodec/vda.h, [
2311            have_avcodec_vda="yes"
2312         ],[
2313         AS_IF([test "${enable_vda}" == "yes"],
2314               [AC_MSG_ERROR([vda is present but libavcodec/vda.h is missing])],
2315               [AC_MSG_WARN([vda is present but libavcodec/vda.h is missing ])])
2316         ])
2317   ],[
2318         AS_IF([test "${enable_vda}" == "yes"],
2319               [AC_MSG_ERROR([Could not find required VideoDecodeAcceleration/VDADecoder.h])],
2320               [AC_MSG_WARN([VideoDecodeAcceleration/VDADecoder.h not found])])
2321       ])
2322   ],[
2323     AS_IF([test "x${enable_vda}" != "x"], [
2324       AC_MSG_ERROR([--enable-vda and --disable-avcodec options are mutually exclusive.])
2325     ])
2326  ])
2327   fi
2328 ])
2329 AM_CONDITIONAL([HAVE_AVCODEC_VDA], [test "${have_avcodec_vda}" = "yes"])
2330
2331 dnl
2332 dnl stream_out switcher needs libavcodec
2333 dnl
2334 AC_ARG_ENABLE(switcher,
2335   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
2336 AS_IF([test "${enable_switcher}" = "yes"], [
2337   AS_IF([test "x${have_avcodec}" = "xyes"], [
2338     VLC_ADD_PLUGIN([stream_out_switcher])
2339     VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS $AVUTIL_LIBS $LIBM])
2340     VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS $AVUTIL_CFLAGS])
2341   ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2342   ])
2343 ])
2344
2345
2346 dnl
2347 dnl  avformat demuxer/muxer plugin
2348 dnl
2349
2350 AC_ARG_ENABLE(avformat,
2351 [  --enable-avformat       libavformat containers (default enabled)],, [
2352   enable_avformat="${have_avcodec}"
2353 ])
2354 if test "${enable_avformat}" != "no"
2355 then
2356   PKG_CHECK_MODULES(AVFORMAT,[libavformat > 52.30.0 libavcodec libavutil],
2357     [
2358       VLC_SAVE_FLAGS
2359       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2360       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2361       AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2362       AC_CHECK_HEADERS(libavutil/avutil.h)
2363       AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2364         VLC_ADD_PLUGIN([avformat access_avio])
2365         VLC_ADD_LIBS([access_avio],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2366         VLC_ADD_CFLAGS([access_avio],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2367         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2368           VLC_ADD_LDFLAGS([avformat access_avio],[-Wl,-Bsymbolic])
2369         ])
2370       ], [
2371         VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2372         VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2373       ])
2374       VLC_RESTORE_FLAGS
2375     ],[
2376       AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2377   ])
2378 fi
2379
2380 dnl
2381 dnl  swscale image scaling and conversion plugin
2382 dnl
2383
2384 AC_ARG_ENABLE(swscale,
2385   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2386           (default enabled)]))
2387 if test "${enable_swscale}" != "no"
2388 then
2389   PKG_CHECK_MODULES(SWSCALE,[libswscale],
2390     [
2391       VLC_SAVE_FLAGS
2392       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2393       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2394       AC_CHECK_HEADERS(libswscale/swscale.h)
2395       VLC_ADD_PLUGIN([swscale])
2396       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2397       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2398       AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2399         VLC_ADD_LIBS([swscale],[-Wl,-Bsymbolic])
2400       ])
2401       VLC_RESTORE_FLAGS
2402     ],[
2403       AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2404   ])
2405 fi
2406
2407 dnl
2408 dnl  postproc plugin
2409 dnl
2410
2411 AC_ARG_ENABLE(postproc,
2412 [  --enable-postproc       libpostproc image post-processing (default auto)])
2413 if test "${enable_postproc}" != "no"
2414 then
2415   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2416     [
2417       VLC_SAVE_FLAGS
2418       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2419       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2420       AC_CHECK_HEADERS(postproc/postprocess.h)
2421       VLC_ADD_PLUGIN([postproc])
2422       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2423       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2424       VLC_RESTORE_FLAGS
2425     ],[
2426       AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2427   ])
2428 fi
2429
2430 dnl
2431 dnl  faad decoder plugin
2432 dnl
2433 AC_ARG_ENABLE(faad,
2434 [  --enable-faad           faad codec (default auto)])
2435 if test "${enable_faad}" != "no"; then
2436   AC_ARG_WITH(faad-tree,  [  --with-faad-tree=PATH   faad tree for static linking])
2437   if test -n "${with_faad_tree}"; then
2438     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2439     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2440     if test -z "${real_faad_tree}"; then
2441       dnl  The given directory can't be found
2442       AC_MSG_RESULT(no)
2443       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2444     fi
2445     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"; then
2446       dnl  Use the custom faad
2447       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2448       VLC_ADD_PLUGIN([faad])
2449       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2450       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2451     else
2452       dnl  The given libfaad wasn't built
2453       AC_MSG_RESULT(no)
2454       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2455     fi
2456   else
2457     VLC_SAVE_FLAGS
2458     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_faad}"
2459     LDFLAGS="${LDFLAGS} ${LIBS_faad}"
2460     AC_CHECK_HEADERS(faad.h,
2461       [ AC_CHECK_LIB(faad, faacDecOpen, [
2462           VLC_ADD_PLUGIN([faad])
2463           VLC_ADD_LIBS([faad],[-lfaad]) ], [
2464             AC_CHECK_LIB(faad, NeAACDecOpen, [
2465               VLC_ADD_PLUGIN([faad])
2466               VLC_ADD_LIBS([faad],[-lfaad]) ], [
2467                 AS_IF([test "${enable_faad}" = "yes"],
2468                 [ AC_MSG_ERROR([Cannot find libfaad library...]) ],
2469                 [ AC_MSG_WARN([Cannot find libfaad library...]) ]) ]) ])
2470       ] , [ AS_IF([test "${enable_faad}" = "yes"],
2471         [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ],
2472         [ AC_MSG_WARN([Cannot find development headers for libfaad...]) ]) ])
2473     VLC_RESTORE_FLAGS
2474   fi
2475 fi
2476
2477 dnl
2478 dnl twolame encoder plugin
2479 dnl
2480 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2481
2482 dnl
2483 dnl  QuickTime plugin
2484 dnl
2485 AC_ARG_ENABLE(quicktime,
2486   [  --enable-quicktime      QuickTime module (deprecated)])
2487 if test "${enable_quicktime}" = "yes"; then
2488   if test "${SYS}" = "mingw32"; then
2489     VLC_ADD_PLUGIN([quicktime])
2490   else
2491   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2492     [ VLC_ADD_PLUGIN([quicktime])
2493       VLC_ADD_LIBS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2494     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2495   fi
2496 fi
2497
2498 dnl
2499 dnl A52/AC3 decoder plugin
2500 dnl
2501 AC_ARG_ENABLE(a52,
2502   [  --enable-a52            A/52 support with liba52 (default enabled)])
2503 if test "${enable_a52}" != "no"
2504 then
2505   AC_ARG_WITH(a52,
2506     [  --with-a52=PATH         a52 headers and libraries])
2507   AC_ARG_WITH(a52-tree,
2508     [  --with-a52-tree=PATH    a52dec tree for static linking ],[],[])
2509   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2510   then
2511     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2512     if test -z "${real_a52_tree}"
2513     then
2514       dnl  The given directory can't be found
2515       AC_MSG_RESULT(no)
2516       AC_MSG_ERROR([${with_a52_tree} directory does not exist])
2517     fi
2518     dnl  Use a custom a52dec
2519     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2520     if test -f ${real_a52_tree}/include/a52.h
2521     then
2522       AC_MSG_RESULT(yes)
2523       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2524       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2525       VLC_SAVE_FLAGS
2526       LDFLAGS="${LDFLAGS} ${LIBS_a52tofloat32}"
2527       AC_CHECK_LIB(a52, a52_free, [
2528         VLC_ADD_PLUGIN([a52tofloat32])
2529         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2530         VLC_ADD_LIBS([a52tofloat32],[-la52])
2531         ],[
2532         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2533         then
2534           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
2535         else
2536           AC_MSG_ERROR([the specified tree has not been compiled])
2537         fi
2538       ])
2539     else
2540       AC_MSG_RESULT(no)
2541       AC_MSG_ERROR([the specified tree does not have a52.h])
2542     fi
2543   else
2544     if test -z "${with_a52}"
2545     then
2546       LDFLAGS_test=""
2547       CPPFLAGS_test=""
2548     else
2549       LDFLAGS_test="-L${with_a52}/lib"
2550       CPPFLAGS_test="-I${with_a52}/include"
2551     fi
2552     VLC_SAVE_FLAGS
2553     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2554     LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2555     AC_CHECK_HEADERS(a52dec/a52.h, [
2556       AC_CHECK_LIB(a52, a52_free, [
2557         VLC_ADD_PLUGIN([a52tofloat32])
2558         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2559         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2560       ],[
2561         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.])
2562         ], [$LIBM])
2563     ],[
2564       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.])
2565     ])
2566     VLC_RESTORE_FLAGS
2567   fi
2568 fi
2569
2570 AC_ARG_WITH(a52-fixed,
2571       [  --with-a52-fixed        specify if liba52 has been compiled with fixed point support],
2572       [
2573         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2574
2575 dnl
2576 dnl DTS Coherent Acoustics decoder plugin
2577 dnl
2578 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2579
2580 dnl
2581 dnl  Flac plugin
2582 dnl
2583 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2584
2585 dnl
2586 dnl  Libmpeg2 plugin
2587 dnl
2588 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2589
2590 dnl
2591 dnl  Vorbis plugin
2592 dnl
2593 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2594
2595 dnl
2596 dnl  Tremor plugin
2597 dnl
2598 AC_ARG_ENABLE(tremor,
2599   [  --enable-tremor         Tremor decoder support (default disabled)])
2600 if test "${enable_tremor}" = "yes"
2601 then
2602   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2603     VLC_ADD_PLUGIN([tremor])
2604     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
2605    ],[])
2606 fi
2607
2608 dnl
2609 dnl  Speex plugins
2610 dnl
2611 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2612 have_speexdsp="no"
2613 AS_IF([test "${enable_speex}" != "no"], [
2614   PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2615     have_speexdsp="yes"
2616   ], [
2617     AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2618   ])
2619 ])
2620 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2621
2622 dnl
2623 dnl  Opus plugin
2624 dnl
2625 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus], [Opus support], [auto])
2626
2627 dnl
2628 dnl  theora decoder plugin
2629 dnl
2630 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2631
2632 dnl
2633 dnl  dirac encoder plugin
2634 dnl
2635 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
2636
2637 dnl
2638 dnl  schroedinger decoder plugin (for dirac format video)
2639 dnl
2640 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2641
2642 dnl
2643 dnl  PNG decoder module
2644 dnl
2645 AC_ARG_ENABLE(png,
2646   [  --enable-png            PNG support (default enabled)])
2647 if test "${enable_png}" != "no"; then
2648 AC_CHECK_HEADERS(png.h, [
2649   VLC_SAVE_FLAGS
2650   LDFLAGS="${LDFLAGS} -lz $LIBM"
2651   AC_CHECK_LIB(png, png_set_rows, [
2652     VLC_ADD_LIBS([png],[-lpng -lz $LIBM])
2653     VLC_ADD_PLUGIN([png osdmenu osd_parser])],
2654     [],[-lz $LIBM] )
2655   VLC_RESTORE_FLAGS
2656   ])
2657 fi
2658 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
2659
2660 dnl
2661 dnl H264 encoder plugin (10-bit lib264)
2662 dnl
2663 AC_ARG_ENABLE(x26410b,
2664   [  --enable-x26410b           H264 10-bit encoding support with static libx264 (default disabled)])
2665 if test "${enable_x26410b}" != "no"; then
2666 AC_ARG_WITH(x26410b-tree,
2667   [ --with-x26410b-tree=PATH      H264 10-bit encoding module with libx264 (static linking)],[],[])
2668   if test "${with_x26410b_tree}" != "no" -a -n "${with_x26410b_tree}"
2669   then
2670     real_x26410b_tree="̧`cd ${with_x26410b_tree} 2>/dev/null && pwd`"
2671     if test -z "${real_x26410b_tree}"
2672     then
2673       AC_MSG_RESULT(no)
2674       AC_MSG_ERROR([${with_x26410b_tree} directory does not exist])
2675     fi
2676     AC_MSG_CHECKING(for x264.h in ${real_x26410b_tree})
2677     if test -f ${with_x26410b_tree}/x264_config.h
2678     then
2679       AC_MSG_RESULT(yes)
2680       AC_MSG_CHECKING(for 10-bit build of x264)
2681       if grep -q "BIT_DEPTH.*10"  ${with_x26410b_tree}/x264_config.h ;then
2682         AC_MSG_RESULT(yes)
2683         VLC_ADD_PLUGIN([x26410b])
2684         VLC_ADD_CFLAGS([x26410b],[-I${with_x26410b_tree}])
2685         VLC_ADD_LIBS([x26410b],[-L${with_x26410b_tree} -lm -lpthread -lx264])
2686       else
2687         AC_MSG_RESULT(no)
2688         AC_MSG_ERROR([${with_x26410b_tree} isnt build 10-bit])
2689       fi
2690     else
2691       AC_MSG_RESULT(no)
2692       AC_MSG_ERROR([${with_x26410b_tree} doesnt have x264_config.h])
2693     fi
2694   else
2695     PKG_CHECK_MODULES(X26410B, x26410b, [
2696         VLC_ADD_PLUGIN([x26410b])
2697         VLC_ADD_LDFLAGS([x26410b],[${X26410B_LIBS}])
2698         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2699           VLC_ADD_LIBS([x26410b],[-Wl,-Bsymbolic])
2700         ])
2701         VLC_ADD_CFLAGS([x26410b],[${X26410B_CFLAGS}])
2702         if echo ${X26410B_LIBS} |grep -q 'pthreadGC2'; then
2703           VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
2704         fi
2705     ], [
2706        if test "${enable_x26410b}" = "yes"; then
2707         AC_MSG_ERROR([x26410b module doesn't work without staticly compiled libx264.a])
2708        fi
2709     ])
2710   fi
2711 fi
2712
2713
2714 dnl
2715 dnl H264 encoder plugin (using libx264)
2716 dnl
2717 AC_ARG_ENABLE(x264,
2718   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
2719 if test "${enable_x264}" != "no"; then
2720   AC_ARG_WITH(x264-tree,
2721     [  --with-x264-tree=PATH   x264 tree for static linking ],[],[])
2722   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2723   then
2724     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2725     if test -z "${real_x264_tree}"
2726     then
2727       dnl  The given directory can't be found
2728       AC_MSG_RESULT(no)
2729       AC_MSG_ERROR([${with_x264_tree} directory does not exist])
2730     fi
2731     dnl  Use a custom libx264
2732     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2733     if test -f ${real_x264_tree}/x264.h
2734     then
2735       AC_MSG_RESULT(yes)
2736       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2737       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
2738       PKG_CHECK_MODULES(X264,x264, [
2739         VLC_ADD_PLUGIN([x264])
2740         VLC_ADD_LIBS([x264],[${X264_LIBS}])
2741         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2742         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2743           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2744         fi
2745       ],[
2746         AC_MSG_ERROR([the specified tree has not been compiled])
2747       ])
2748     else
2749       AC_MSG_RESULT(no)
2750       AC_MSG_ERROR([the specified tree does not have x264.h])
2751     fi
2752   else
2753       PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2754         VLC_ADD_PLUGIN([x264])
2755         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
2756
2757         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2758           VLC_ADD_LIBS([x264],[-Wl,-Bsymbolic])
2759         ])
2760
2761         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2762         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2763           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2764         fi
2765       ],[
2766         if test "${enable_x264}" = "yes"; then
2767             AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2768           fi
2769       ])
2770   fi
2771 fi
2772
2773 dnl
2774 dnl libfluidsynth (MIDI synthetizer) plugin
2775 dnl
2776 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
2777
2778 dnl
2779 dnl Teletext Modules
2780 dnl vbi decoder plugin (using libzbvi)
2781 dnl telx module
2782 dnl uncompatible
2783 dnl
2784 AC_ARG_ENABLE(zvbi,
2785   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2786                   libzvbi (default enabled)]))
2787 AC_ARG_ENABLE(telx,
2788   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2789                   zvbi) (default enabled if zvbi is absent)]))
2790
2791 AS_IF( [test "${enable_zvbi}" != "no"],[
2792     PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2793         [
2794           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
2795           if test "${SYS}" = "mingw32"; then
2796               VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
2797           fi
2798           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
2799           VLC_ADD_PLUGIN([zvbi])
2800           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2801           AS_IF( [test "${enable_telx}" = "yes"],[
2802                   AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2803                   ])
2804         ],[
2805           AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2806         ])
2807     ])
2808 AS_IF( [test "${enable_telx}" != "no" ],[
2809   VLC_ADD_PLUGIN([telx])
2810   ])
2811
2812 dnl
2813 dnl libass subtitle rendering module
2814 dnl
2815 AC_ARG_ENABLE(libass,
2816   [  --enable-libass         Subtitle support using libass (default enabled)])
2817 AS_IF( [test "${enable_libass}" != "no"], [
2818   PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
2819       [
2820         VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
2821         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
2822         VLC_ADD_PLUGIN([libass])
2823
2824         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
2825           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
2826            VLC_ADD_LIBS([libass],[-lfontconfig])
2827        ])
2828       ],[
2829         AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
2830       ])
2831   ])
2832
2833 dnl
2834 dnl  kate decoder plugin
2835 dnl
2836 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
2837
2838 dnl
2839 dnl  tiger rendering for kate decoder plugin
2840 dnl
2841 AC_ARG_ENABLE(tiger,
2842 [  --enable-tiger          Tiger rendering library for Kate streams (default auto)])
2843 AS_IF([test "${enable_tiger}" != "no"], [
2844   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
2845       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
2846       VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
2847       VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
2848         AS_IF([test -n "${enable_tiger}"], [
2849           AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
2850         ])
2851   ])
2852 ])
2853
2854
2855 dnl
2856 dnl  Video plugins
2857 dnl
2858
2859 EXTEND_HELP_STRING([Video plugins:])
2860
2861 dnl
2862 dnl  OpenGL
2863 dnl
2864 PKG_CHECK_MODULES([GL], [gl], [
2865   have_gl="yes"
2866 ], [
2867   AC_CHECK_HEADER([GL/gl.h], [
2868     have_gl="yes"
2869     GL_CFLAGS=""
2870     GL_LIBS="-lGL"
2871   ], [
2872     have_gl="no"
2873   ])
2874 ])
2875
2876 dnl OpenGL ES 2: depends on EGL 1.1 and is currently unfinished
2877 dnl PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [auto])
2878 dnl OpenGL ES 1: depends on EGL 1.0 and is currently broken
2879 dnl PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [auto])
2880
2881 AC_ARG_ENABLE(egl,
2882   [  --enable-egl            OpenGL support through EGL (default disabled)],, [
2883   enable_egl="no"
2884 ])
2885 AS_IF([test "$enable_egl" != "no"], [
2886   PKG_CHECK_MODULES([EGL], [egl], [
2887     VLC_ADD_PLUGIN([gl])
2888     VLC_ADD_PLUGIN([egl])
2889   ])
2890 ])
2891
2892 dnl
2893 dnl  Xlib
2894 dnl
2895
2896 AC_PATH_XTRA()
2897 AC_CHECK_HEADERS(X11/Xlib.h)
2898
2899 dnl
2900 dnl  X C Bindings modules
2901 dnl
2902 AC_ARG_ENABLE(xcb,
2903   [  --enable-xcb            X11 support with XCB (default enabled)],, [
2904   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
2905     enable_xcb="yes"
2906   ], [
2907     enable_xcb="no"
2908   ])
2909 ])
2910 AC_ARG_ENABLE(xvideo,
2911   [  --enable-xvideo         XVideo support (default enabled)],, [
2912     enable_xvideo="$enable_xcb"
2913 ])
2914 AC_ARG_ENABLE(glx,
2915   [  --enable-glx            OpenGL support through GLX (default enabled)],, [
2916   enable_glx="$enable_xcb"
2917 ])
2918
2919 have_xcb="no"
2920 AS_IF([test "${enable_xcb}" != "no"], [
2921   dnl libxcb
2922   PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
2923   have_xcb="yes"
2924   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
2925   PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
2926
2927   AS_IF([test "${enable_xvideo}" != "no"], [
2928     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
2929       VLC_ADD_PLUGIN([xcb_xv])
2930     ])
2931   ])
2932
2933   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
2934     VLC_ADD_PLUGIN([panoramix])
2935     VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
2936     VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
2937   ], [
2938     AC_MSG_WARN([${XCB_RANDR_PKG_ERRORS}. Panoramix filter will not be supported.])
2939   ])
2940
2941   dnl xcb-utils
2942   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
2943     PKG_CHECK_MODULES(XPROTO, [xproto])
2944     VLC_ADD_PLUGIN([globalhotkeys])
2945     VLC_ADD_CFLAGS([xcb_window], [-DHAVE_XCB_KEYSYMS])
2946   ], [
2947     AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
2948   ])
2949
2950   AS_IF([test "${enable_glx}" != "no"], [
2951     AS_IF([test "${have_gl}" != "yes"], [
2952       AC_MSG_ERROR([${GL_PKG_ERRORS}. Pass --disable-glx if you do not need OpenGL X11 support.])
2953     ])
2954     VLC_ADD_PLUGIN([xcb_glx])
2955   ])
2956 ])
2957 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
2958
2959 dnl
2960 dnl  SDL module
2961 dnl
2962 AC_ARG_ENABLE(sdl,
2963   [  --enable-sdl            SDL support (default enabled)])
2964 AC_ARG_ENABLE(sdl-image,
2965   [  --enable-sdl-image      SDL image support (default enabled)])
2966 if test "${enable_sdl}" != "no"
2967 then
2968    PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
2969       # SDL on Darwin is heavily patched and can only run SDL_image
2970       if test "${SYS}" != "darwin"; then
2971         VLC_ADD_PLUGIN([vout_sdl])
2972       fi
2973       if test "${SYS}" != "mingw32" -a "${SYS}" != "os2"; then
2974         VLC_ADD_LIBS([vout_sdl],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2975       fi
2976       VLC_ADD_CFLAGS([vout_sdl],[${SDL_CFLAGS}])
2977       VLC_ADD_LIBS([vout_sdl],[${SDL_LIBS}])
2978
2979       # SDL_image
2980       AS_IF([ test "${enable_sdl_image}" != "no"],[
2981         PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
2982           VLC_ADD_PLUGIN([sdl_image])
2983           VLC_ADD_LIBS([sdl_image],[${SDL_IMAGE_LIBS}])
2984           VLC_ADD_CFLAGS([sdl_image], [${SDL_IMAGE_CFLAGS}])],
2985           [ AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
2986           ])
2987       ])
2988    ],[
2989      AC_MSG_WARN([${SDL_PKG_ERRORS}.])
2990    ])
2991 fi
2992
2993
2994 dnl
2995 dnl Mac Vout
2996 AC_ARG_ENABLE(macosx-vout,
2997   [  --enable-macosx-vout    Mac OS X video output module (default enabled on Mac OS X)])
2998 if test "x${enable_macosx_vout}" != "xno" &&
2999   (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
3000 then
3001   VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,Cocoa])
3002   VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,OpenGL])
3003   VLC_ADD_PLUGIN([vout_macosx])
3004 fi
3005
3006
3007 dnl
3008 dnl  freetype module
3009 dnl
3010 AC_ARG_ENABLE(freetype,
3011   [  --enable-freetype       freetype support   (default auto)])
3012 AC_ARG_ENABLE(fribidi,
3013   [  --enable-fribidi        fribidi support    (default auto)])
3014 AC_ARG_ENABLE(fontconfig,
3015   [  --enable-fontconfig     fontconfig support (default auto)])
3016
3017 if test "${enable_freetype}" != "no"; then
3018    PKG_CHECK_MODULES(FREETYPE, freetype2, [
3019       have_freetype=yes
3020       VLC_ADD_PLUGIN([freetype])
3021       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3022       if test "${SYS}" = "mingw32"; then
3023         VLC_ADD_LIBS([freetype],[-liconv -lz])
3024       fi
3025       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3026
3027       AC_CHECK_HEADERS(Carbon/Carbon.h,
3028                        [VLC_ADD_LIBS([freetype],[-Wl,-framework,Carbon])])
3029
3030       dnl fontconfig support
3031       if test "${SYS}" != "mingw32"; then
3032           if test "${enable_fontconfig}" != "no"; then
3033             AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3034               VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3035               VLC_ADD_LIBS([freetype],[-lfontconfig])
3036             ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3037           fi
3038       else
3039           VLC_ADD_LIBS([freetype],[-lgdi32])
3040       fi
3041
3042       dnl fribidi support
3043       if test "${enable_fribidi}" != "no"; then
3044         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3045           VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3046           VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3047         ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional support will be disabled in FreeType.])])
3048       fi
3049
3050   ],[
3051   have_freetype=no
3052   AS_IF([test -n "${enable_freetype}"],[
3053     AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3054     ])
3055   ])
3056 fi
3057
3058
3059 dnl
3060 dnl  QuartzText vout module (iOS/Mac OS)
3061 dnl
3062 AC_ARG_ENABLE(macosx-quartztext,
3063   [  --enable-macosx-quartztext   Mac OS X quartz text module (default enabled on Mac OS X)])
3064 if test "x${enable_macosx_quartztext}" != "xno" &&
3065   (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3066 then
3067   VLC_ADD_PLUGIN([quartztext])
3068   VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
3069 fi
3070
3071 dnl
3072 dnl  SVG module
3073 dnl
3074 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3075
3076 dnl
3077 dnl  android surface module
3078 dnl
3079 AC_ARG_ENABLE(android-surface,
3080   [  --enable-android-surface   Android Surface video output module (default disabled)])
3081 if test "${enable_android_surface}" = "yes"; then
3082   if test "${HAVE_ANDROID}" = "1"; then
3083      VLC_ADD_PLUGIN([android_surface])
3084      VLC_ADD_LDFLAGS([android_surface], [-ldl])
3085   fi
3086 fi
3087
3088
3089 dnl
3090 dnl  iOS vout module
3091 dnl
3092 AC_ARG_ENABLE(ios-vout,
3093   [  --enable-ios-vout    iOS video output module (default disabled)])
3094 if test "${enable_ios_vout}" = "yes"
3095 then
3096   VLC_ADD_PLUGIN([vout_ios])
3097   VLC_ADD_CFLAGS([vout_ios], [-DUSE_OPENGL_ES=1])
3098   VLC_ADD_LIBS([vout_ios], [-Wl,-framework,OpenGLES,-framework,QuartzCore,-framework,UIKit,-framework,Foundation])
3099 fi
3100
3101 dnl
3102 dnl  Windows DirectX module
3103 dnl
3104
3105 if test "${SYS}" = "mingw32"
3106 then
3107   VLC_ADD_PLUGIN([panoramix])
3108 fi
3109
3110 AC_ARG_ENABLE(directx,
3111   [AS_HELP_STRING([--enable-directx],
3112     [Microsoft DirectX support (default enabled on Windows)])],, [
3113   AS_IF([test "${SYS}" = "mingw32"], [
3114     enable_directx="yes"
3115   ], [
3116     enable_directx="no"
3117   ])
3118 ])
3119 have_directx="no"
3120 AS_IF([test "${enable_directx}" != "no"], [
3121   dnl DirectDraw
3122   AC_CHECK_HEADERS(ddraw.h, [
3123     have_directx="yes"
3124   ], [
3125     AC_MSG_ERROR([Cannot find DirectX headers!])
3126   ])
3127
3128   dnl OpenGL
3129   AC_CHECK_HEADERS(GL/wglew.h, [
3130     VLC_ADD_PLUGIN([glwin32])
3131   ],, [
3132     #include <windows.h>
3133     #include <GL/gl.h>
3134   ])
3135
3136   dnl Direct3D
3137   AC_CHECK_HEADERS(d3d9.h, [
3138     VLC_ADD_PLUGIN([direct3d])
3139   ])
3140
3141   dnl Direct2D
3142   AC_CHECK_HEADERS(d2d1.h, [
3143     VLC_ADD_PLUGIN([direct2d])
3144   ])
3145 ])
3146 AM_CONDITIONAL([HAVE_DIRECTX], [test "$have_directx" = "yes"])
3147
3148 dnl
3149 dnl  Linux framebuffer module
3150 dnl
3151 AC_CHECK_HEADER([linux/fb.h], [
3152   VLC_ADD_PLUGIN([fb])
3153 ])
3154
3155
3156 dnl
3157 dnl  DirectFB module
3158 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3159 dnl  TODO: support for static linking
3160 dnl
3161 AC_ARG_ENABLE(directfb,
3162   [  --enable-directfb       DirectFB support (default disabled)])
3163 AC_ARG_WITH(directfb,
3164   [  --with-directfb=PATH    path to DirectFB headers and libraries])
3165
3166 if test "${enable_directfb}" = "yes"; then
3167     have_directfb="false"
3168     CPPFLAGS_mydirectfb=
3169     LIBS_mydirectfb=
3170     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3171         dnl Trying the given location
3172         VLC_SAVE_FLAGS
3173
3174         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3175         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/ -L${with_directfb}/src/.libs/"
3176
3177         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3178         LIBS="${LIBS} ${LIBS_new}"
3179
3180         dnl FIXME: too obscure
3181         AC_CHECK_HEADER([directfb.h], [
3182             AC_CHECK_LIB([direct],[direct_initialize], [
3183                 AC_CHECK_LIB([fusion], [fusion_enter], [
3184                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3185                 ], have_directfb="false")
3186             ], have_directfb="false")
3187         ], have_directfb="false")
3188
3189         VLC_RESTORE_FLAGS
3190
3191         if test "${have_directfb}" = "true"; then
3192             LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3193             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3194         fi
3195     else
3196         dnl Look for directfb-config
3197         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3198         if test "${DIRECTFB_CONFIG}" != "no"; then
3199             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3200             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3201             have_directfb="true"
3202         else
3203             dnl Trying with pkg-config
3204             PKG_CHECK_MODULES(DIRECTFB, directfb, [
3205                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3206                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3207                 have_directfb="true"
3208                 ], [have_directfb="false"])
3209         fi
3210     fi
3211     if test "${have_directfb}" = "true"; then
3212         VLC_ADD_PLUGIN([directfb])
3213         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3214         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3215     else
3216         AC_MSG_ERROR([${DIRECTFB_PKG_ERRORS}.])
3217     fi
3218 fi
3219
3220 dnl
3221 dnl  AA plugin
3222 dnl
3223 AC_ARG_ENABLE(aa,
3224   [  --enable-aa             aalib output (default disabled)])
3225 if test "${enable_aa}" = "yes"
3226 then
3227   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3228   if test "${have_aa}" = "true"
3229   then
3230     VLC_ADD_PLUGIN([aa])
3231     VLC_ADD_LIBS([aa],[-laa])
3232     if test "${SYS}" != "mingw32"; then
3233       VLC_ADD_LIBS([aa],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3234     fi
3235   fi
3236 fi
3237
3238 dnl
3239 dnl  libcaca plugin
3240 dnl
3241 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3242
3243 dnl
3244 dnl  OS/2 KVA plugin
3245 dnl
3246 AC_ARG_ENABLE(kva,
3247   [AS_HELP_STRING([--enable-kva],
3248     [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
3249   AS_IF([test "$SYS" = "os2"], [
3250     enable_kva="yes"
3251   ])
3252 ])
3253 have_kva="no"
3254 KVA_LIBS=""
3255 AS_IF([test "$enable_kva" != "no"], [
3256   AC_CHECK_HEADERS([kva.h], [
3257     have_kva="yes"
3258     AC_CHECK_LIB(kva, main, [
3259       KVA_LIBS="-lkva"
3260     ])
3261   ])
3262 ])
3263 AC_SUBST(KVA_LIBS)
3264 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3265
3266 dnl
3267 dnl  Audio plugins
3268 dnl
3269
3270 EXTEND_HELP_STRING([Audio plugins:])
3271
3272 dnl
3273 dnl  Pulseaudio module
3274 dnl
3275 AC_ARG_ENABLE(pulse,
3276   [AS_HELP_STRING([--enable-pulse],
3277     [use the PulseAudio client library (default auto)])])
3278 have_pulse="no"
3279 AS_IF([test "${enable_pulse}" != "no"], [
3280   PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.22], [
3281     have_pulse="yes"
3282   ], [
3283     PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.16], [
3284       AS_IF([test "${no_x}" != "yes"], [
3285         have_pulse="yes"
3286         PULSE_LIBS="$PULSE_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11"
3287       ], [
3288         AS_IF([test "${enable_pulse}" = "yes"], [
3289           AC_MSG_ERROR([Xlib is required with PulseAudio pre-0.9.22 versions
3290 (see http://www.pulseaudio.org/ticket/799 for further reference).])
3291         ])
3292       ])
3293     ], [
3294       AS_IF([test "x${enable_pulse}" != "x"], [
3295         AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 0.9.22 or later required.])
3296       ])
3297     ])
3298   ])
3299 ])
3300 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3301
3302 dnl
3303 dnl  ALSA module
3304 dnl
3305 AC_ARG_ENABLE(alsa,
3306   [AS_HELP_STRING([--enable-alsa],
3307     [support the Advanced Linux Sound Architecture (default auto)])],, [
3308   AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3309     enable_alsa="yes"
3310   ])
3311 ])
3312 have_alsa="no"
3313 AS_IF([test "${enable_alsa}" != "no"], [
3314   PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.16], [
3315     have_alsa="yes"
3316   ], [
3317     AS_IF([test "x${enable_alsa}" != "x"], [
3318       AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.16 or later required.])
3319     ])
3320   ])
3321 ])
3322 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3323
3324 dnl
3325 dnl  Open Sound System module
3326 dnl
3327 AC_ARG_ENABLE(oss,
3328   [AS_HELP_STRING([--enable-oss],
3329     [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)])],, [
3330   AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3331     enable_oss="no"
3332   ])
3333 ])
3334 have_oss="no"
3335 OSS_LIBS=""
3336 AS_IF([test "$enable_oss" != "no"], [
3337   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3338     have_oss="yes"
3339     AC_CHECK_LIB(ossaudio, main, [
3340       OSS_LIBS="-lossaudio"
3341     ])
3342   ])
3343 ])
3344 AC_SUBST(OSS_LIBS)
3345 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3346
3347 dnl
3348 dnl  OpenBSD sndio module
3349 dnl
3350 AC_ARG_ENABLE([sndio],
3351   [AS_HELP_STRING([--disable-sndio],
3352     [support the OpenBSD sndio (default auto)])],, [
3353   AS_IF([test "$SYS" = "opensd"], [
3354     enable_sndio="yes"
3355   ])
3356 ])
3357 have_sndio="no"
3358 AS_IF([test "$enable_sndio" != "no"], [
3359   AC_CHECK_HEADER([sndio.h], [
3360     have_sndio="yes"
3361   ])
3362 ])
3363 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3364
3365 dnl
3366 dnl  Windows Audio Session plugin
3367 dnl
3368 AC_ARG_ENABLE([wasapi],
3369   [AS_HELP_STRING([--enable-wasapi],
3370     [use the Windows Audio Session API (default auto)])
3371 ])
3372 have_wasapi="no"
3373 AS_IF([test "$enable_wasapi" != "no"], [
3374   AC_CHECK_HEADER([audioclient.h], [
3375     have_wasapi="yes"
3376   ], [
3377     AS_IF([test "x${enable_wasapi}" != "x"], [
3378       AC_MSG_ERROR([Windows Audio Session API not found.])
3379     ])
3380   ])
3381 ])
3382 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3383
3384 dnl
3385 dnl  win32 waveOut plugin
3386 dnl
3387 AC_ARG_ENABLE(waveout,
3388   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
3389 if test "${enable_waveout}" != "no"; then
3390   if test "${SYS}" = "mingw32"; then
3391     VLC_ADD_PLUGIN([waveout])
3392     VLC_ADD_LIBS([waveout],[-lwinmm])
3393   fi
3394 fi
3395
3396 dnl
3397 dnl  CoreAudio plugin
3398 dnl
3399 AC_ARG_ENABLE(macosx-audio,
3400   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
3401 if test "x${enable_macosx_audio}" != "xno" &&
3402   (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
3403 then
3404   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
3405     [ VLC_ADD_PLUGIN([auhal])
3406       VLC_ADD_LIBS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
3407     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3408 fi
3409
3410 dnl
3411 dnl  AudioQueue plugin
3412 dnl
3413 AC_ARG_ENABLE(audioqueue,
3414   [  --enable-audioqueue     AudioQueue audio module (default disabled)])
3415 if test "${enable_audioqueue}" = "yes"
3416 then
3417   VLC_ADD_PLUGIN([audioqueue])
3418   VLC_ADD_LIBS([audioqueue], [-Wl,-framework,AudioToolbox,-framework,CoreFoundation])
3419 fi
3420
3421 dnl
3422 dnl  JACK modules
3423 dnl
3424 PKG_ENABLE_MODULES_VLC([JACK], [jack access_jack], [jack], [JACK audio I/O modules],[auto])
3425
3426 dnl
3427 dnl  OpenSLES Android
3428 dnl
3429 AC_ARG_ENABLE(opensles,
3430   [  --enable-opensles       Android OpenSL ES audio module (default disabled)])
3431 if test "${HAVE_ANDROID}" = "1"; then
3432   if test "${enable_opensles}" = "yes"; then
3433       AC_CHECK_HEADERS(SLES/OpenSLES.h,
3434         [ VLC_ADD_PLUGIN([opensles_android]) ],
3435         [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3436   fi
3437 fi
3438
3439 dnl
3440 dnl libsamplerate plugin
3441 dnl
3442 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3443
3444 dnl
3445 dnl  OS/2 KAI plugin
3446 dnl
3447 AC_ARG_ENABLE(kai,
3448   [AS_HELP_STRING([--enable-kai],
3449     [support the K Audio Interface KAI (default enabled on OS/2)])],, [
3450   AS_IF([test "$SYS" = "os2"], [
3451     enable_kai="yes"
3452   ])
3453 ])
3454 have_kai="no"
3455 KAI_LIBS=""
3456 AS_IF([test "$enable_kai" != "no"], [
3457   AC_CHECK_HEADERS([kai.h], [
3458     have_kai="yes"
3459     AC_CHECK_LIB(kai, main, [
3460       KAI_LIBS="-lkai"
3461     ])
3462   ])
3463 ])
3464 AC_SUBST(KAI_LIBS)
3465 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3466
3467 dnl
3468 dnl  Interface plugins
3469 dnl
3470
3471 EXTEND_HELP_STRING([Interface plugins:])
3472
3473 dnl
3474 dnl QT
3475 dnl
3476 AC_ARG_ENABLE(qt, [
3477   AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)])],, [
3478   AS_IF([test "${SYS}" = "darwin"], [
3479     enable_qt="no"
3480   ])
3481 ])
3482 AS_IF([test "${enable_qt}" != "no"], [
3483   PKG_CHECK_MODULES([QT], [QtCore >= 5 QtWidgets QtGui],, [
3484     PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [
3485       AS_IF([test -n "${enable_qt}"],[
3486         AC_MSG_ERROR([${QT_PKG_ERRORS}.])
3487       ],[
3488         AC_MSG_WARN([${QT_PKG_ERRORS}.])
3489       ])
3490       enable_qt="no"
3491     ])
3492   ])
3493 ])
3494 AS_IF([test "${enable_qt}" != "no"], [
3495   VLC_ADD_PLUGIN([qt4])
3496   VLC_ADD_LIBS([qt4],[${QT_LIBS}])
3497   VLC_ADD_CXXFLAGS([qt4],[${QT_CFLAGS}])
3498   ALIASES="${ALIASES} qvlc"
3499
3500   AC_LANG_PUSH([C++])
3501   VLC_SAVE_FLAGS
3502
3503   AC_MSG_CHECKING([whether Qt uses Xlib])
3504   CPPFLAGS="${CPPFLAGS} ${QT_CFLAGS}"
3505   AC_PREPROC_IFELSE([AC_LANG_SOURCE([
3506 #include <QWidget>
3507 #if !defined (Q_WS_X11)
3508 # error Fail
3509 #endif
3510   ])], [
3511     AC_MSG_RESULT([yes])
3512     VLC_ADD_LIBS([qt4],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3513     VLC_ADD_CXXFLAGS([qt4],[${X_CFLAGS}])
3514   ], [
3515     AC_MSG_RESULT([no])
3516   ])
3517
3518   VLC_RESTORE_FLAGS
3519   AC_LANG_POP([C++])
3520
3521   AS_IF([test "${SYS}" = "mingw32"], [
3522       VLC_ADD_LIBS([qt4],[-lole32])
3523   ])
3524   AS_IF([test "${SYS}" = "darwin" ],[
3525        VLC_ADD_LIBS([qt4], [-Wl,-framework,Cocoa])
3526   ])
3527
3528   QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)"
3529   AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3530   AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3531   AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3532 ])
3533 AM_CONDITIONAL(ENABLE_QT4, [test "$enable_qt" != "no"])
3534
3535 dnl
3536 dnl Simple test for skins2 dependency
3537 dnl
3538 AS_IF([test "$enable_qt" = "no"], [
3539   AS_IF([test "${enable_skins2}" = "yes"], [
3540     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.])
3541   ], [
3542     enable_skins2="no"
3543     AC_MSG_WARN([The skins2 module depends on the Qt4 interface, Qt4 is not built so skins2 is disabled.])
3544   ])
3545 ])
3546
3547 dnl
3548 dnl Skins2 module
3549 dnl
3550 AC_ARG_ENABLE(skins2,
3551   [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3552 AS_IF([test "${enable_skins2}" != "no"], [
3553   have_skins_deps="yes"
3554
3555   dnl Win32
3556   AS_IF([test "${SYS}" = "mingw32"], [
3557     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3558     VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3559   dnl MacOS
3560   ], [test "${SYS}" = "darwin"], [
3561     VLC_ADD_CPPFLAGS([skins2],[ -DMACOSX_SKINS])
3562     VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
3563   dnl Linux/Unix
3564   ], [
3565     PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3566     PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3567     PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3568     VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3569     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3570   ])
3571
3572   dnl for All OSes
3573   VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3574
3575   dnl we need freetype
3576   AS_IF([test "${have_freetype}" != "yes"], [
3577     have_skins_deps="no"
3578   ])
3579
3580   AS_IF([test "${have_skins_deps}" = "no"], [
3581     AS_IF([test "x${enable_skins2}" = "x"], [
3582       AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3583     ], [
3584       AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
3585     ])
3586     enable_skins2="no"
3587   ], [
3588     VLC_ADD_PLUGIN([skins2])
3589     ALIASES="${ALIASES} svlc"
3590     enable_skins2="yes"
3591   ])
3592 ])
3593 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3594
3595 AC_ARG_ENABLE(libtar,
3596   [  --enable-libtar         libtar support for skins2 (default auto)])
3597 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3598   AC_CHECK_HEADERS(libtar.h, [
3599     VLC_ADD_LIBS([skins2],[-ltar])
3600   ])
3601 ])
3602
3603 dnl
3604 dnl  MacOS X gui module
3605 dnl
3606 AC_ARG_ENABLE(macosx,
3607   [  --enable-macosx         Mac OS X gui support (default enabled on Mac OS X)])
3608 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3609 then
3610   VLC_ADD_LIBS([macosx minimal_macosx], [-Wl,-framework,Cocoa -Wl,-framework,OpenGL -Wl,-framework,Carbon -Wl,-framework,CoreServices -Wl,-framework,AGL])
3611   VLC_ADD_OBJCFLAGS([macosx minimal_macosx], [-fobjc-exceptions] )
3612   VLC_ADD_PLUGIN([macosx minimal_macosx])
3613
3614   VLC_ADD_LIBS([macosx], [-Wl,-framework,QTKit -Wl,-framework,IOKit -Wl,-framework,AddressBook -Wl,-framework,WebKit -Wl,-framework,CoreAudio -Wl,-framework,SystemConfiguration])
3615
3616   if test ! -d ${CONTRIB_DIR}/Sparkle.framework
3617   then
3618     AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3619   fi
3620   VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle])
3621   VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3622
3623   if test ! -d ${CONTRIB_DIR}/BGHUDAppKit.framework
3624   then
3625     AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}])
3626   fi
3627   VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,BGHUDAppKit])
3628   VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3629
3630 fi
3631
3632 dnl
3633 dnl  MacOS X dialor provider
3634 dnl
3635 AC_ARG_ENABLE(macosx-dialog-provider,
3636   [  --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3637 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3638   (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3639 then
3640   VLC_ADD_LIBS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3641   VLC_ADD_PLUGIN([macosx_dialog_provider])
3642 fi
3643
3644 dnl
3645 dnl  ncurses module
3646 dnl
3647 AC_ARG_ENABLE(ncurses,
3648 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
3649 AS_IF([test "${enable_ncurses}" != "no"] ,[
3650   PKG_CHECK_MODULES([NCURSES], [ncursesw], [
3651     VLC_ADD_PLUGIN([ncurses])
3652     VLC_ADD_CFLAGS([ncurses],[${NCURSES_CFLAGS}])
3653     VLC_ADD_LIBS([ncurses],[${NCURSES_LIBS}])
3654     ALIASES="${ALIASES} nvlc"
3655   ], [
3656     AS_IF([test -n "${enable_ncurses}"], [
3657       AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
3658     ])
3659   ])
3660 ])
3661
3662 dnl
3663 dnl  Lirc plugin
3664 dnl
3665 AC_ARG_ENABLE(lirc,
3666   [  --enable-lirc           lirc support (default disabled)])
3667 if test "${enable_lirc}" = "yes"
3668 then
3669   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3670   if test "${have_lirc}" = "true"
3671   then
3672     VLC_ADD_PLUGIN([lirc])
3673     VLC_ADD_LIBS([lirc],[-llirc_client])
3674   fi
3675 fi
3676
3677 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3678 dnl
3679 dnl  goom visualization plugin
3680 dnl
3681 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3682
3683 dnl
3684 dnl libprojectM visualization plugin
3685 dnl
3686 AC_ARG_ENABLE(projectm,
3687   [  --enable-projectm       projectM visualization plugin (default enabled)])
3688 AS_IF([test "${enable_projectm}" != "no"],
3689   [
3690     PKG_CHECK_MODULES(PROJECTM, libprojectM,
3691     [
3692       VLC_ADD_PLUGIN([projectm])
3693       VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
3694       VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
3695       PKG_CHECK_MODULES(PROJECTM2, [libprojectM >= 2.0.0],
3696         [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3697         [ AC_MSG_WARN( [Using libprojectM version 1] )
3698       ])
3699     ],[
3700       AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
3701     ])
3702   ])
3703
3704 dnl
3705 dnl Vovoid VSXu visualization plugin
3706 dnl
3707 AC_ARG_ENABLE(vsxu,
3708   [  --enable-vsxu           Vovoid VSXu visualization plugin (default auto)])
3709 AS_IF([test "${enable_vsxu}" != "no"],
3710   [
3711     PKG_CHECK_MODULES(VSXU, libvsxu,
3712     [
3713       VLC_ADD_PLUGIN([vsxu])
3714       VLC_ADD_CXXFLAGS([vsxu],[$VSXU_CFLAGS])
3715       VLC_ADD_LIBS([vsxu],[$VSXU_LIBS])
3716     ],[
3717       AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
3718     ])
3719   ])
3720
3721 dnl
3722 dnl  AtmoLight (homemade Philips Ambilight clone)
3723 dnl
3724 AC_ARG_ENABLE(atmo,
3725 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
3726                 (default enabled)]),, [enable_atmo="yes"])
3727 AS_IF([test "${enable_atmo}" != no], [
3728   AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
3729     AC_LANG_PUSH(C++)
3730     VLC_ADD_PLUGIN([atmo])
3731     AC_LANG_POP(C++)
3732   ])
3733 ])
3734
3735 EXTEND_HELP_STRING([Service Discovery plugins:])
3736 dnl
3737 dnl  Bonjour services discovery
3738 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
3739
3740 dnl
3741 dnl  libudev services discovery
3742 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
3743
3744 dnl
3745 dnl MTP devices services discovery
3746 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
3747
3748 dnl
3749 dnl UPnP Plugin (Intel SDK)
3750 dnl
3751 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
3752 VLC_ADD_CXXFLAGS([upnp],[${UPNP_CFLAGS}])
3753
3754 EXTEND_HELP_STRING([Misc options:])
3755
3756 dnl
3757 dnl  libxml2 module
3758 dnl
3759 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3760
3761
3762 dnl
3763 dnl libgcrypt
3764 dnl
3765 AC_ARG_ENABLE(libgcrypt,
3766   [  --disable-libgcrypt     gcrypt support (default enabled)])
3767 AS_IF([test "${enable_libgcrypt}" != "no"], [
3768   AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
3769     libgcrypt-config --version >/dev/null || \
3770         AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
3771     AC_CHECK_LIB(gcrypt, gcry_control, [
3772       have_libgcrypt="yes"
3773       GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
3774       GCRYPT_LIBS="`libgcrypt-config --libs`"
3775     ], [
3776       AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3777     ], [`libgcrypt-config --libs`])
3778   ], [
3779     AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3780   ], [#include <gcrypt.h>]
3781   )
3782 ])
3783
3784 AC_SUBST(GCRYPT_CFLAGS)
3785 AC_SUBST(GCRYPT_LIBS)
3786 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
3787
3788 dnl
3789 dnl TLS/SSL
3790 dnl
3791 AC_ARG_ENABLE(gnutls,
3792   [  --enable-gnutls         GNU TLS TLS/SSL support (default enabled)])
3793 AS_IF([test "${enable_gnutls}" != "no"], [
3794   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 2.6.6], [
3795     VLC_ADD_PLUGIN([gnutls])
3796   ], [
3797     AS_IF([test -n "${enable_gnutls}"], [
3798       AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
3799     ])
3800   ])
3801 ])
3802
3803
3804 dnl
3805 dnl Nokia MCE plugin (Maemo screen unblanking)
3806 dnl
3807 PKG_CHECK_MODULES([MCE], [dbus-1 mce], [VLC_ADD_PLUGIN([mce])], [true])
3808
3809
3810 AS_IF([test -f "/etc/maemo_version"], [
3811   AC_DEFINE([HAVE_MAEMO], 1, [Define to 1 if building for the Maemo platform.])
3812 ])
3813
3814
3815 dnl
3816 dnl Taglib plugin
3817 dnl
3818 AC_ARG_ENABLE(taglib,
3819   [AS_HELP_STRING([--disable-taglib],
3820     [do not use TagLib (default enabled)])])
3821 AS_IF([test "${enable_taglib}" != "no"], [
3822   PKG_CHECK_MODULES(TAGLIB, taglib >= 1.6.1, [
3823     VLC_ADD_PLUGIN([taglib])
3824     VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
3825     VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS])
3826   ], [
3827     AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
3828 ])
3829
3830
3831 dnl
3832 dnl update checking system
3833 dnl
3834 AC_ARG_ENABLE(update-check,
3835   [  --enable-update-check   update checking system (default disabled)])
3836 if test "${enable_update_check}" = "yes"
3837 then
3838   if test "${have_libgcrypt}" != "yes"
3839   then
3840     AC_MSG_ERROR([libgcrypt is required for update checking system])
3841   fi
3842   VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
3843   VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
3844   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
3845 fi
3846
3847 dnl
3848 dnl Growl notification plugin
3849 dnl
3850 AC_ARG_ENABLE(growl,
3851   [  --enable-growl          growl notification plugin (default disabled)],,
3852   [enable_growl=no])
3853 AS_IF([test "${enable_growl}" != "no"], [
3854     AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl.framework/Versions/A/Headers/Growl.h, [
3855       VLC_ADD_PLUGIN([growl])
3856       VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR} -Wl,-framework,Growl,-framework,Foundation])
3857       VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}])
3858       VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
3859     ])
3860   ]
3861 )
3862
3863 dnl
3864 dnl Libnotify notification plugin
3865 dnl
3866 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
3867
3868 dnl
3869 dnl media library
3870 dnl
3871 AC_ARG_ENABLE(media-library,
3872     [  --enable-media-library  media library (default disabled)])
3873 AS_IF([test "${enable_media_library}" = "yes"], [
3874   AC_DEFINE([MEDIA_LIBRARY], 1, [Define if you want to use the VLC media library])
3875   VLC_ADD_CPPFLAGS([qt4],"-DMEDIA_LIBRARY")
3876   VLC_ADD_PLUGIN([media_library])
3877
3878 dnl
3879 dnl SQLite
3880 dnl
3881   AS_IF([test "${SYS}" != "darwin"], [
3882     PKG_ENABLE_MODULES_VLC([SQLITE], [], [sqlite3 >= 3.6.0], [sqlite3], [auto])
3883   ], [
3884     AS_IF([test "${enable_sqlite}" != "no"], [
3885       AC_CHECK_HEADERS(sqlite3.h, [
3886         VLC_ADD_PLUGIN([sqlite])
3887         VLC_ADD_LIBS([sqlite], [-lsqlite3])
3888       ], [
3889         AC_MSG_ERROR([sqlite3 is required for the media library])
3890       ])
3891     ])
3892   ])
3893 ])
3894
3895
3896 dnl
3897 dnl  Endianness check
3898 dnl
3899 AC_C_BIGENDIAN
3900 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
3901   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
3902 ], [
3903   DEFS_BIGENDIAN=""
3904 ])
3905 AC_SUBST(DEFS_BIGENDIAN)
3906
3907 dnl
3908 dnl Where to install KDE solid .desktop
3909 dnl
3910 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
3911 AS_IF([test "x$KDE4_CONFIG" = "x"], [
3912   KDE4_CONFIG="kde4-config"
3913 ])
3914
3915 AC_ARG_WITH(kde-solid,
3916   AS_HELP_STRING([--with-kde-solid=PATH],
3917                  [KDE Solid actions directory (auto)]),, [
3918
3919 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" ; then
3920   with_kde_solid="yes"
3921 fi
3922 ])
3923 soliddatadir=""
3924 AS_IF([test "${with_kde_solid}" != "no"], [
3925   AS_IF([test "${with_kde_solid}" = "yes"], [
3926     kde4datadir="`${KDE4_CONFIG} --install data`"
3927     AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
3928     soliddatadir="${kde4datadir}/solid/actions"
3929   ], [
3930     soliddatadir="${with_kde_solid}"
3931   ])
3932 ])
3933 AC_SUBST(soliddatadir)
3934 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
3935
3936 dnl
3937 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
3938 dnl
3939 loader=false
3940 AC_ARG_ENABLE(loader,
3941   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
3942           (default disabled)]))
3943 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
3944 AS_IF([test "${enable_loader}" = "yes"],
3945   [ VLC_ADD_PLUGIN([dmo])
3946     VLC_ADD_CPPFLAGS([dmo quicktime ],[-I\\\$(srcdir)/loader])
3947     VLC_ADD_LIBS([dmo quicktime ],[libloader.la])
3948     VLC_ADD_LIBS([dmo quicktime], [-lpthread])
3949   ])
3950
3951 AS_IF([test "${SYS}" == "mingw32"], [VLC_ADD_PLUGIN([dmo]) VLC_ADD_LIBS([dmo],[-lole32 -luuid]) ])
3952
3953 EXTEND_HELP_STRING([Components:])
3954
3955 dnl
3956 dnl  the VLC binary
3957 dnl
3958 AC_ARG_ENABLE(vlc,
3959   [  --enable-vlc            build the VLC media player (default enabled)])
3960 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
3961
3962 AC_ARG_ENABLE(macosx-vlc-app,
3963   [  --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
3964 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
3965     (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
3966
3967 dnl
3968 dnl  Stuff used by the program
3969 dnl
3970 VERSION_MESSAGE="${VERSION} ${CODENAME}"
3971 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
3972 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
3973 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
3974 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
3975 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
3976 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
3977 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
3978 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
3979 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
3980 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
3981 AC_SUBST(COPYRIGHT_MESSAGE)
3982 AC_SUBST(VERSION_MESSAGE)
3983 AC_SUBST(VERSION_MAJOR)
3984 AC_SUBST(VERSION_MINOR)
3985 AC_SUBST(VERSION_REVISION)
3986 AC_SUBST(VERSION_EXTRA)
3987 AC_SUBST(COPYRIGHT_YEARS)
3988 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
3989 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
3990 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
3991 dnl
3992 dnl  Handle substvars that use $(top_srcdir)
3993 dnl
3994 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
3995
3996 dnl
3997 dnl  Configuration is finished
3998 dnl
3999 AC_SUBST(SYS)
4000 AC_SUBST(ARCH)
4001 AC_SUBST(ALIASES)
4002 AC_SUBST(ASM)
4003 AC_SUBST(MOC)
4004 AC_SUBST(RCC)
4005 AC_SUBST(UIC)
4006 AC_SUBST(WINDRES)
4007 AC_SUBST(WINE_SDK_PATH)
4008 AC_SUBST(LIBEXT)
4009 AC_SUBST(AM_CPPFLAGS)
4010 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4011 AC_SUBST(FILE_LIBVLCCORE_DLL)
4012 AC_SUBST(FILE_LIBVLC_DLL)
4013
4014 AC_CONFIG_FILES([
4015   Makefile
4016   doc/Makefile
4017   modules/Makefile
4018   m4/Makefile
4019   po/Makefile.in
4020   share/Makefile
4021   compat/Makefile
4022   src/Makefile
4023   lib/Makefile
4024   bin/Makefile
4025   test/Makefile
4026   modules/access/Makefile
4027   modules/access/rtp/Makefile
4028   modules/access_output/Makefile
4029   modules/audio_filter/Makefile
4030   modules/audio_mixer/Makefile
4031   modules/audio_output/Makefile
4032   modules/codec/Makefile
4033   modules/control/Makefile
4034   modules/demux/Makefile
4035   modules/gui/Makefile
4036   modules/gui/macosx/Makefile
4037   modules/gui/minimal_macosx/Makefile
4038   modules/gui/macosx_dialog_provider/Makefile
4039   modules/gui/qt4/Makefile
4040   modules/gui/skins2/Makefile
4041   modules/lua/Makefile
4042   modules/meta_engine/Makefile
4043   modules/misc/Makefile
4044   modules/media_library/Makefile
4045   modules/mux/Makefile
4046   modules/notify/Makefile
4047   modules/packetizer/Makefile
4048   modules/services_discovery/Makefile
4049   modules/stream_filter/Makefile
4050   modules/stream_out/Makefile
4051   modules/text_renderer/Makefile
4052   modules/video_chroma/Makefile
4053   modules/video_filter/Makefile
4054   modules/video_output/Makefile
4055   modules/visualization/Makefile
4056   modules/mmx/Makefile
4057   modules/sse2/Makefile
4058   modules/altivec/Makefile
4059   modules/arm_neon/Makefile
4060 ])
4061
4062 AM_COND_IF([HAVE_WIN32], [
4063   AC_CONFIG_FILES([
4064     extras/package/win32/NSIS/spad.nsi
4065     extras/package/win32/NSIS/vlc.win32.nsi
4066   ])
4067 ])
4068
4069 AM_COND_IF([HAVE_DARWIN], [
4070   AC_CONFIG_FILES([
4071     extras/package/macosx/Info.plist
4072     extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4073   ])
4074 ])
4075
4076 dnl Generate makefiles
4077 AC_OUTPUT
4078
4079 dnl Do we have to use make or gmake ?
4080 if make --version 2>&1|grep -q GNU
4081 then
4082     # GNU make, all seems good
4083     MAKE=make
4084 else
4085     # Known GNU make alias (on BSD)
4086     MAKE=gmake
4087 fi
4088 dnl Shortcut to nice compile message
4089 if test -n $SHELL; then
4090   SHELL=${CONFIG_SHELL-/bin/sh}
4091 fi
4092 rm -f compile
4093 echo "#! $SHELL
4094 rm -f .error\$\$
4095 ERROR=0
4096 export PATH=\"$PATH\" LANG=C
4097 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| `sed -ne \"s/^top_srcdir *= *//p\" < Makefile`/extras/buildsystem/make.pl
4098 test -f .error\$\$ && ERROR=1
4099 rm -f .error\$\$
4100 exit \$ERROR" >compile
4101 chmod a+x compile
4102
4103 echo "
4104 libvlc configuration
4105 --------------------
4106 version               : ${VERSION}
4107 system                : ${SYS}
4108 architecture          : ${ARCH}
4109 optimizations         : ${enable_optimizations}"
4110 if test "${enable_vlc}" != "no"; then
4111 echo "vlc aliases           :${ALIASES}"
4112 else
4113 echo "build vlc executable  : no"
4114 fi
4115 echo "
4116 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."