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