1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 2002-2011 the VideoLAN team])
5 AC_INIT(vlc, 1.2.0-git)
13 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
15 COPYRIGHT_YEARS="1996-2011"
17 AC_CONFIG_SRCDIR(src/libvlc.c)
18 AC_CONFIG_AUX_DIR(autotools)
19 AC_CONFIG_MACRO_DIR(m4)
20 AC_CONFIG_LIBOBJ_DIR(compat)
23 AC_PRESERVE_HELP_ORDER
25 AM_INIT_AUTOMAKE(tar-ustar color-tests)
26 AM_CONFIG_HEADER(config.h)
28 # Disable with "./configure --disable-silent-rules" or "make V=1"
29 AM_SILENT_RULES([yes])
31 dnl Too many people are not aware of maintainer mode:
32 dnl If you want to use it, you definitely know what you are doing, so
33 dnl you can specify "--disable-maintainer-mode". But if you want the default
34 dnl automake behavior, you've likely never heard of maintainer mode, so we
35 dnl can't expect you to enable it manually.
36 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
37 [enable_maintainer_mode="yes"])
43 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
44 dnl AC_SUBST(vlcincludedir)
45 vlcdatadir="\${datadir}/\${PKGDIR}"
47 vlclibdir="\${libdir}/\${PKGDIR}"
59 AC_USE_SYSTEM_EXTENSIONS
60 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to 2 to get glibc warnings.])
61 AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
62 AC_DEFINE([_REENTRANT],, [Define to expose reentrant functions.])
63 AC_DEFINE([_THREAD_SAFE],, [Same as _REENTANT for some other OSes.])
64 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
70 _AM_DEPENDENCIES([OBJC])
76 dnl Find the right ranlib, even when cross-compiling
77 AC_CHECK_TOOL(RANLIB, ranlib, :)
78 AC_CHECK_TOOL(STRIP, strip, :)
79 AC_CHECK_TOOL(AR, ar, :)
80 AC_CHECK_TOOL(LD, ld, :)
81 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
83 dnl Check for compiler properties
88 dnl Extend the --help string at the current spot.
89 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
91 dnl Allow binary package maintainer to pass a custom string to avoid
93 AC_ARG_WITH(binary-version,
94 AS_HELP_STRING([--with-binary-version=STRING],
95 [To avoid plugins cache problem between binary version]),[],[])
96 AS_IF([test -n "${with_binary_version}"],[
97 AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
98 [Binary specific version])
102 dnl Check for the contrib directory
105 [AS_HELP_STRING([--without-contrib],
106 [do not use the libraries in CONTRIB_DIR])])
107 AC_ARG_VAR([CONTRIB_DIR], [directory containing pre-built contrib, overriding extras/contrib])
108 AS_IF([test "${with_contrib}" != "no"],[
109 AS_IF([test -z "$CONTRIB_DIR"], [
110 topdir="`dirname $0`"
111 if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
112 topdir="`pwd`/$topdir"
114 CONTRIB_DIR="${topdir}/extras/contrib/hosts/${host}"
115 if ! test -d "$CONTRIB_DIR"
117 gccmachine=`$CC -dumpmachine`
118 CONTRIB_DIR="${topdir}/extras/contrib/hosts/${gccmachine}"
121 AC_MSG_CHECKING([for libs in ${CONTRIB_DIR}])
122 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
124 AC_SUBST(CONTRIB_DIR)
125 export PATH=${CONTRIB_DIR}/bin:$PATH
126 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
127 CPPFLAGS_save="${CPPFLAGS_save} -I${CONTRIB_DIR}/include"
128 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
129 CFLAGS_save="${CFLAGS_save} -I${CONTRIB_DIR}/include"
130 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
131 CXXFLAGS_save="${CXXFLAGS_save} -I${CONTRIB_DIR}/include"
132 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
133 OBJCFLAGS_save="${OBJCFLAGS_save} -I${CONTRIB_DIR}/include"
134 if test "$build" = "$host" -o "$PKG_CONFIG_LIBDIR"; then
135 export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
137 export PKG_CONFIG_LIBDIR="${CONTRIB_DIR}/lib/pkgconfig"
139 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
140 LDFLAGS_save="${LDFLAGS_save} -L${CONTRIB_DIR}/lib"
142 if test "${SYS}" = "darwin"; then
143 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
144 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
153 dnl Set default values
155 LDFLAGS_vlc="${LDFLAGS}"
158 dnl Check the operating system
170 CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
171 VLC_ADD_LIBS([vcd cdda vcdx],[-ldvd])
175 CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
178 CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
179 CPPFLAGS="${CPPFLAGS_save}"
180 LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
181 LDFLAGS="${LDFLAGS_save}"
184 CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include -I/usr/X11R6/include"
185 CPPFLAGS="${CPPFLAGS_save}"
186 LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib -L/usr/X11R6/lib/"
187 LDFLAGS="${LDFLAGS_save}"
193 dnl Force gcc "-arch" flag
197 ARCH_flag="-arch i386"
200 ARCH_flag="-arch ppc64"
203 ARCH_flag="-arch ppc"
206 ARCH_flag="-arch x86_64"
211 CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"; CFLAGS="${CFLAGS_save}"
212 CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"; CXXFLAGS="${CXXFLAGS_save}"
213 CPPFLAGS_save="${CPPFLAGS_save} ${ARCH_flag}"; CPPFLAGS="${CPPFLAGS_save}"
214 OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"; OBJCFLAGS="${OBJCFLAGS_save}"
215 LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names ${ARCH_flag}"; LDFLAGS="${LDFLAGS_save}"
216 VLC_ADD_LDFLAGS([mkv mp4 motion], [-Wl,-framework,IOKit,-framework,CoreFoundation])
217 VLC_ADD_LDFLAGS([libvlc vlc],[-Wl,-undefined,dynamic_lookup])
218 VLC_ADD_LDFLAGS([avcodec avformat access_avio swscale postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
219 VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
220 VLC_ADD_LDFLAGS([libvlccore],[-Wl,-framework,CoreFoundation])
221 AC_ARG_ENABLE(macosx-defaults,
222 AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration on Mac OS X (default enabled)]))
223 if test "x${enable_macosx_defaults}" != "xno"
226 echo "Building with Mac OS X defaults:"
228 echo " Assuming --prefix=${build_dir}/vlc_install_dir"
229 ac_default_prefix="${build_dir}/vlc_install_dir"
231 echo " Assuming --enable-faad"
233 echo " Assuming --enable-flac"
235 echo " Assuming --enable-theora"
237 echo " Assuming --enable-shout"
239 echo " Assuming --enable-vcdx"
241 echo " Assuming --enable-caca"
243 echo " Assuming --enable-ncurses"
245 echo " Assuming --enable-twolame"
246 enable_realrtsp="yes"
247 echo " Assuming --enable-realrtsp"
249 echo " Assuming --enable-libass"
252 echo " Assuming --disable-skins2"
254 echo " Assuming --disable-xcb"
257 dnl Check for Mac OS X SDK settings
259 AC_ARG_WITH(macosx-sdk,
260 [AS_HELP_STRING([--with-macosx-sdk=DIR],
261 [compile using the SDK in DIR])])
262 if test "${with_macosx_sdk}" != "" ; then
263 CPP="${CPP} -isysroot ${with_macosx_sdk}"
264 CC="${CC} -isysroot ${with_macosx_sdk}"
265 CXX="${CXX} -isysroot ${with_macosx_sdk}"
266 OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
267 LD="${LD} -syslibroot ${with_macosx_sdk}"
269 echo " No desired SDK version given, falling back to 10.5"
270 CPP="${CPP} -isysroot /Developer/SDKs/MacOSX10.5.sdk"
271 CC="${CC} -isysroot /Developer/SDKs/MacOSX10.5.sdk"
272 CXX="${CXX} -isysroot /Developer/SDKs/MacOSX10.5.sdk"
273 OBJC="${OBJC} -isysroot /Developer/SDKs/MacOSX10.5.sdk"
274 LD="${LD} -syslibroot /Developer/SDKs/MacOSX10.5.sdk"
275 with_macosx_version_min="10.5"
276 echo " Assuming --with-macosx-version-min=10.5"
278 AC_ARG_WITH(macosx-version-min,
279 [AS_HELP_STRING([--with-macosx-version-min=VERSION],
280 [compile for MacOS X VERSION and above])])
281 if test "${with_macosx_version_min}" != "" ; then
282 CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
283 CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
284 CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
285 OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
286 LD="${LD} -macosx_version_min=${with_macosx_version_min}"
287 CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
288 CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
289 OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
290 MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
291 export MACOSX_DEPLOYMENT_TARGET
294 *mingw32* | *cygwin* | *wince* | *mingwce*)
295 AC_CHECK_TOOL(WINDRES, windres, :)
296 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
299 *wince* | *mingwce* | *mingw32ce*)
301 dnl Sadly CeGCC still needs non-wince macros
302 AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
306 AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows XP APIs.])
309 dnl Check if we are using the mno-cygwin mode in which case we are
310 dnl actually dealing with a mingw32 compiler.
311 AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0501' for Windows XP APIs.])
316 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
320 if test "${SYS}" = "mingw32"; then
321 # add ws2_32 for closesocket, select, recv
322 VLC_ADD_LIBS([libvlccore],[-lws2_32 -lnetapi32 -lwinmm])
323 VLC_ADD_LDFLAGS([vlc],[-mwindows])
324 VLC_ADD_LIBS([win32text],[-lgdi32])
325 VLC_ADD_LIBS([cdda vcdx sdl_image aout_sdl vout_sdl],[-lwinmm])
326 VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_shout access_output_rtmp sap stream_out_standard stream_out_select stream_out_rtp stream_out_raop vod_rtsp access_realrtsp rtp oldrc netsync gnutls growl_udp flac ts audioscrobbler lua remoteosd zvbi audiobargraph_a netsync],[-lws2_32])
327 VLC_ADD_LIBS([filesystem], [-lshlwapi])
329 dnl DEP and ASLR options
332 [AS_HELP_STRING([--with-peflags],
333 [use peflags (default enabled on Windows)])])
334 if test "${with_peflags}" != "no" ; then
335 AC_PATH_TOOL(PEFLAGS, peflags, :)
337 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
338 ac_default_prefix="`pwd`/_win32"
339 DESTDIR="`pwd`/_win32/"
342 dnl NSIS Installer prefix and WIN64
345 amd64*|i686-w64*|x86_64*)
347 PROGRAMFILES="PROGRAMFILES64"
350 PROGRAMFILES="PROGRAMFILES"
353 AC_SUBST(PROGRAMFILES)
356 if test "${SYS}" = "mingwce"; then
357 # add ws2 for closesocket, select, recv
358 VLC_ADD_LIBS([libvlccore access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_rtmp sap netsync audioscrobbler growl rtp stream_out_standard stream_out_select stream_out_rtp remoteosd ts audiobargraph_a netsync],[-lws2])
359 VLC_ADD_LIBS([libvlccore],[-lmmtimer])
360 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
361 ac_default_prefix="`pwd`/_wince"
362 DESTDIR="`pwd`/_wince/"
379 LDFLAGS_save="${LDFLAGS_save} -Zomf -Zbin-files -Zargs-wild"; LDFLAGS="${LDFLAGS_save}"
385 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
386 AM_CONDITIONAL(HAVE_LINUX, test "${SYS}" = "linux")
387 AM_CONDITIONAL(HAVE_OS2, test "${SYS}" = "os2")
388 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
389 AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1")
390 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
391 AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
392 AM_CONDITIONAL(USE_PEFLAGS, test "${with_peflags}" = "yes")
395 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
396 dnl for program foo on win32
398 case "${build_os}" in
400 ac_executable_extensions=".exe"
408 dnl It's very bad, but our former custom system was worst
412 dnl override platform specific check for dependent libraries
413 dnl otherwise libtool linking of shared libraries will
414 dnl fail on anything other than pass_all.
415 AC_CACHE_VAL(lt_cv_deplibs_check_method,
416 [lt_cv_deplibs_check_method=pass_all])
419 dnl AC_DISABLE_FAST_INSTALL
422 m4_undefine([AC_PROG_F77])
423 m4_defun([AC_PROG_F77],[])
426 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
427 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
429 lt_cv_deplibs_check_method=pass_all
431 AS_IF([test "${enable_shared}" = "no"], [
432 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
438 AM_GNU_GETTEXT_VERSION([0.18.1])
439 AM_GNU_GETTEXT([external])
440 VLC_ADD_LIBS([libvlccore vlc], [${LTLIBINTL}])
446 VLC_ADD_CFLAGS([libvlccore],[${INCICONV}])
447 VLC_ADD_LIBS([libvlccore],[${LTLIBICONV}])
449 dnl Check for broken versions of mingw-runtime compatability library
450 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
451 AC_MSG_CHECKING(for broken mingw-runtime)
452 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
454 #if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 15)
455 #ifndef __MINGW64_VERSION_MAJOR
456 # error Attempting to use mingw-runtime with broken vsnprintf support
462 AC_MSG_RESULT([present])
463 AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher!])
465 dnl force use of mingw provided c99 *printf over msvcrt
466 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
467 CPPFLAGS_save="${CPPFLAGS_save} -D__USE_MINGW_ANSI_STDIO=1"
470 dnl Check for the need to include the mingwex lib for mingw32
471 if test "${SYS}" = "mingw32" ; then
472 AC_CHECK_LIB(mingwex,opendir,
473 AC_CHECK_LIB(mingw32,opendir,,
474 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
478 dnl Check for fnative-struct or mms-bitfields support for mingw32
479 if test "${SYS}" = "mingw32" ; then
480 AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
481 [ac_cv_c_mms_bitfields],
482 [CFLAGS="${CFLAGS_save} -mms-bitfields"
483 AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
484 if test "${ac_cv_c_mms_bitfields}" != "no"; then
485 CFLAGS_save="${CFLAGS_save} -mms-bitfields";
486 CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
488 AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
489 [ac_cv_c_fnative_struct],
490 [CFLAGS="${CFLAGS_save} -fnative-struct"
491 AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
492 if test "${ac_cv_c_fnative_struct}" != "no"; then
493 CFLAGS_save="${CFLAGS_save} -fnative-struct";
494 CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
498 CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
501 dnl Check for fvtable-thunks support for mingw32
502 if test "${SYS}" = "mingw32" -a "${CXX}" != "" ; then
504 AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
505 [ac_cv_cxx_fvtable_thunks],
506 [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
507 AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
508 ac_cv_cxx_fvtable_thunks=no)])
509 if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
510 CXXFLAGS_mingw32_special="-fvtable-thunks"
513 CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
518 dnl Buggy glibc prevention. Purposedly not cached.
519 dnl See sourceware.org bugs 5058 and 5443.
520 dnl Ubuntu alone has 20 bug numbers for this...
522 AC_MSG_CHECKING(for buggy GNU/libc versions)
523 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
525 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
526 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
527 # error GNU/libc with dcgettext killer bug!
530 AC_MSG_RESULT([not present])
532 AC_MSG_RESULT([found])
533 AS_IF([test "x${enable_nls}" != "xno"], [
534 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
535 work-around for this. Check with your distribution vendor on how to update the
536 glibc run-time. Alternatively, build with --disable-nls.])
538 AC_DEFINE(DISABLE_BUGGY_GLIBC_CHECK, 1, [Disables runtime check for buggy glibc.])
542 dnl Plugin compilation stuff
546 dnl The -DSYS_FOO flag
547 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
549 dnl Check for system libs needed
552 dnl Check for usual libc functions
553 AC_CHECK_FUNCS([daemon fcntl fdopendir fstatvfs fork getenv getpwuid_r gettimeofday isatty lstat memalign mmap openat pread posix_fadvise posix_madvise posix_memalign setlocale stricmp strnicmp uselocale])
554 AC_REPLACE_FUNCS([asprintf atof atoll dirfd flockfile getcwd getdelim getpid gmtime_r lldiv localtime_r nrand48 rewind setenv strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab tdestroy vasprintf])
555 AC_CHECK_FUNCS(fdatasync,,
556 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
559 # Windows CE doesn't have strcoll()
562 dnl Check for non-standard system calls
563 AC_CHECK_FUNCS([accept4 pipe2 eventfd vmsplice sched_getaffinity])
565 AH_BOTTOM([#include <vlc_fixups.h>])
568 AC_CHECK_FUNCS(connect,,[
569 AC_CHECK_LIB(socket,connect,[
570 VLC_ADD_LIBS([libvlccore cdda],-lsocket)
571 SOCKET_LIBS="-lsocket"
574 AC_SUBST(SOCKET_LIBS)
576 AC_CHECK_FUNCS(send,,[
577 AC_CHECK_LIB(socket,send,[
578 VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp sap access_output_udp access_output_rtmp stream_out_standard growl_udp remoteosd netsync],[-lsocket])
583 dnl Check for socklen_t
584 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
585 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
586 ac_cv_type_socklen_t,
587 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
588 [#include <sys/types.h>
590 # include <winsock2.h>
591 # include <ws2tcpip.h>
593 # include <sys/socket.h>
594 #endif]], [[socklen_t len; len = 0;]])],
595 ac_cv_type_socklen_t=yes,
596 ac_cv_type_socklen_t=no)])
597 AS_IF([test "$ac_cv_type_socklen_t" = no],
598 [AC_DEFINE(socklen_t, int)])
600 dnl Check for struct sockaddr_storage
601 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
602 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
603 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
605 [#include <sys/types.h>
606 #if defined( UNDER_CE )
607 # include <winsock2.h>
608 #elif defined( WIN32 )
609 # include <winsock2.h>
611 # include <sys/socket.h>
612 #endif], [struct sockaddr_storage addr;],
613 ac_cv_struct_sockaddr_storage=yes,
614 ac_cv_struct_sockaddr_storage=no)])
615 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
616 AC_DEFINE(sockaddr_storage, sockaddr)
617 AC_DEFINE(ss_family, sa_family)
620 dnl getaddrinfo, getnameinfo and gai_strerror check
621 dnl -lnsl and -lsocket are needed on Solaris;
622 dnl we purposedly make the test fail on Windows
624 AC_SEARCH_LIBS([getaddrinfo], [nsl],,, [${SOCKET_LIBS}])
627 dnl Check for va_copy
628 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
630 [#include <stdarg.h>],
631 [va_list ap1, ap2; va_copy(ap1,ap2);],
632 [ac_cv_c_va_copy="yes"],
633 [ac_cv_c_va_copy="no"]))
634 if test "${ac_cv_c_va_copy}" = "yes"; then
635 AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
637 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
639 [#include <stdarg.h>],
640 [va_list ap1, ap2; __va_copy(ap1,ap2);],
641 [ac_cv_c___va_copy="yes"],
642 [ac_cv_c___va_copy="no"]))
643 if test "${ac_cv_c___va_copy}" = "yes"; then
644 AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
647 AC_CHECK_FUNCS(inet_aton,,[
648 AC_CHECK_LIB(resolv,inet_aton,[
649 VLC_ADD_LIBS([libvlccore],[-lresolv])
653 dnl FreeBSD has a gnugetopt library for this:
655 AC_CHECK_FUNC(getopt_long,, [
656 AC_CHECK_LIB([gnugetopt],[getopt_long], [
657 GNUGETOPT_LIBS="-lgnugetopt"
660 AC_SUBST(GNUGETOPT_LIBS)
662 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
664 VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene kate flac lua chorus_flanger],[-lm])
667 VLC_ADD_LIBS([avcodec avformat access_avio swscale postproc i420_rgb faad twolame equalizer spatializer param_eq libvlccore freetype mod mpc dmo quicktime realvideo qt4],[-lm])
669 AC_CHECK_LIB(m,sqrt,[
670 VLC_ADD_LIBS([compressor headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract ball],[-lm])
672 AC_CHECK_LIB(m,ceil,[
673 VLC_ADD_LIBS([access_imem hotkeys mosaic],[-lm])
676 VLC_ADD_LIBS([gaussianblur],[-lm])
678 AC_CHECK_LIB(m,round,[
679 VLC_ADD_LIBS([dbus],[-lm])
681 AC_CHECK_LIB(m,sqrtf,[
682 VLC_ADD_LIBS([x264],[-lm])
684 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
686 AC_CHECK_LIB(m,lrintf, [
687 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
688 VLC_ADD_LIBS([skins2],[-lm])
691 dnl Check for dynamic plugins
692 ac_cv_have_plugins=no
695 if test "${ac_cv_have_plugins}" = "no"; then
696 if test "${SYS}" = "mingw32" ; then
697 AC_CHECK_LIB(kernel32, main,
698 [VLC_ADD_LIBS([libvlccore],[-lkernel32])
699 AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
700 ac_cv_have_plugins=yes])
705 if test "${ac_cv_have_plugins}" = "no"; then
706 if test "${SYS}" = "mingwce"; then
707 AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
708 ac_cv_have_plugins=yes
712 # Only test for dlopen() if the others didn't work
714 if test "${ac_cv_have_plugins}" = "no" -o "${SYS}" = "darwin"; then
715 AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
716 ac_cv_my_have_dlopen=no
717 AC_CHECK_FUNC(dlopen, [
718 ac_cv_my_have_dlopen=yes
720 AC_CHECK_LIB(dl, dlopen, [
721 ac_cv_my_have_dlopen=yes
724 AC_CHECK_LIB(svld, dlopen, [
725 ac_cv_my_have_dlopen=yes
730 if test "${ac_cv_my_have_dlopen}" = "yes"; then
731 AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
732 ac_cv_have_plugins=yes
733 VLC_ADD_LIBS([libvlccore realvideo lua],[$LIBDL])
738 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
739 dnl Check for pthreads - borrowed from XMMS
741 if test "${THREAD_LIB}" = "error"; then
742 AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
744 if test "${THREAD_LIB}" = "error"; then
745 AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
747 if test "${THREAD_LIB}" = "error"; then
748 AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
750 if test "${THREAD_LIB}" = "error"; then
751 AC_CHECK_FUNCS(pthread_mutex_lock)
755 VLC_ADD_LIBS([libvlccore libvlc vlc plugin],[${THREAD_LIB}])
757 AC_CHECK_LIB(rt, clock_nanosleep, [
758 VLC_ADD_LIBS([libvlccore],[-lrt])
759 AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
762 AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
766 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
767 AC_CHECK_LIB(rt,nanosleep,
768 [VLC_ADD_LIBS([libvlccore],[-lrt]) have_nanosleep=:],
769 [AC_CHECK_LIB(posix4,nanosleep,
770 [VLC_ADD_LIBS([libvlccore],[-lposix4]) have_nanosleep=:])]
773 if ${have_nanosleep}; then
774 AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
776 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
778 dnl Check for misc headers
779 AC_MSG_CHECKING(for strncasecmp in strings.h)
780 AC_EGREP_HEADER(strncasecmp,strings.h,[
782 AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
783 Define if <strings.h> defines strncasecmp.)],[
786 dnl Check for headers
787 AC_CHECK_HEADERS([search.h])
788 AC_CHECK_HEADERS(getopt.h strings.h locale.h xlocale.h)
789 AC_CHECK_HEADERS(fcntl.h sys/time.h sys/ioctl.h sys/stat.h)
790 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h])
791 AC_CHECK_HEADERS([net/if.h], [], [],
793 #include <sys/types.h>
794 #include <sys/socket.h>
796 AC_CHECK_HEADERS([sys/mount.h], [], [],
798 #include <sys/param.h>
801 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
802 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
803 AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
804 AC_CHECK_HEADERS(syslog.h)
805 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
807 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
808 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
809 AC_CHECK_TYPE(ssize_t,, [
810 AC_DEFINE(ssize_t, int)
814 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
815 if test ${SYS} != "mingw32" -a ${SYS} != "mingwce"
817 AC_MSG_WARN([Your platform does not support poll(). VLC has it's own poll() implementation, but it is only intended to be used on Windows. VLC might crash or be insecure when you see this message. Either switch to an OS with a proper poll() implementation, or implement one for your OS in VLC])
821 dnl Mac OS X and other OSes don't have declaration for nanosleep
822 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
823 AC_MSG_CHECKING(for nanosleep in time.h)
824 AC_EGREP_HEADER(nanosleep,time.h,[
826 AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
827 Define if <time.h> defines nanosleep.)
831 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
833 dnl Make sure we have timespecs
834 AC_MSG_CHECKING(for timespec in sys/time.h)
835 AC_EGREP_HEADER(timespec,sys/time.h,[
837 AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
838 Define if <sys/time.h> defines struct timespec.)
843 dnl Check for threads library
844 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
845 AC_CHECK_HEADERS(pthread.h)
846 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
848 dnl It seems that autoconf detects pkg-config only during the first
849 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
850 dnl it is nested within a conditional block, so it was not working right.
851 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
852 AC_ARG_VAR(PKG_CONFIG_PATH,
853 [Paths where to find .pc not at the default location])
854 PKG_PROG_PKG_CONFIG()
856 dnl On some OS we need static linking
857 AS_IF([test -n "${PKG_CONFIG}" ],[
858 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "darwin" ],[
859 PKG_CONFIG="${PKG_CONFIG} --static"
865 dnl Check for zlib.h and -lz along with system -lminizip if available
867 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
868 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
869 if test "${have_zlib}" = "yes"
871 VLC_ADD_LIBS([access_http mp4 skins2 sap mkv unzip zip],[-lz])
872 PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
873 AC_CHECK_HEADERS([unzip.h], [
875 MINIZIP_LIBS="-lminizip -lz"
878 MINIZIP_CFLAGS="-I\\\${top_srcdir}/libs/unzip"
879 MINIZIP_LIBS="\\\${top_builddir}/libs/unzip/libunzip.la"
882 VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
883 VLC_ADD_CFLAGS([zip],[$MINIZIP_CFLAGS])
884 VLC_ADD_LIBS([skins2 zip],[$MINIZIP_LIBS])
885 VLC_ADD_PLUGIN([unzip zip])
887 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
890 dnl Manual switch for UTF-8
891 AC_ARG_ENABLE(non-utf8,
892 [AS_HELP_STRING([--enable-non-utf8],
893 [support legacy non-UTF-8 systems (default disabled)])],, [
894 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
898 AS_IF([test "${enable_non_utf8}" != "no"], [
899 AC_DEFINE([ASSUME_UTF8], [1],
900 [Define to 1 if the operating system uses UTF-8 internally])
906 [AS_HELP_STRING([--enable-dbus],
907 [compile D-Bus message bus support (default enabled)])])
910 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
913 PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
914 [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
915 VLC_ADD_LIBS([libvlccore],[$DBUS_LIBS])
916 VLC_ADD_CFLAGS([libvlccore],[$DBUS_CFLAGS])
917 dnl Check for dbus control interface
918 AC_ARG_ENABLE(dbus-control,
919 [AS_HELP_STRING([--disable-dbus-control],
920 [D-Bus control interface (default enabled)])])
921 if test "${enable_dbus_control}" != "no"
923 VLC_ADD_PLUGIN([dbus])
924 VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
925 VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
927 dnl Check for Telepathy
928 AC_ARG_ENABLE(telepathy,
929 AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
930 if test "${enable_telepathy}" != "no"; then
931 VLC_ADD_PLUGIN([telepathy])
932 VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
933 VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
935 dnl Power Management Inhibiter
936 VLC_ADD_PLUGIN([inhibit])
937 VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
938 VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
940 [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
946 dnl Check for ntohl, etc.
947 AC_CACHE_CHECK([for ntohl in sys/param.h],
948 [ac_cv_c_ntohl_sys_param_h],
949 [CFLAGS="${CFLAGS_save} -Wall -Werror"
950 AC_TRY_COMPILE([#include <sys/param.h>],
951 [int meuh; ntohl(meuh);],
952 ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
953 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
954 AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
957 EXTEND_HELP_STRING([Optimization options:])
960 dnl Compiler warnings
963 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])
964 RDC_PROG_CC_FLAGS([-pipe])
966 RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
973 [AS_HELP_STRING([--enable-debug],
974 [build with run-time assertions and debug symbols (default disabled)])],,
977 [Define to 1 if debug code should NOT be compiled])
978 AS_IF([test "${enable_debug}" != "no"], [
979 AC_CHECK_HEADERS([valgrind/valgrind.h])
980 CFLAGS="${CFLAGS} -g"
981 CXXFLAGS="${CXXFLAGS} -g"
982 OBJCFLAGS="${OBJCFLAGS} -g"
983 LDFLAGS="${LDFLAGS} -g"
992 [AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)])],,
994 AS_IF([test "${enable_gprof}" != "no"], [
995 CFLAGS="${CFLAGS} -pg"
996 CXXFLAGS="${CXXFLAGS} -pg"
997 OBJCFLAGS="${OBJCFLAGS} -pg"
998 LDFLAGS="${LDFLAGS} -pg"
1001 AC_ARG_ENABLE(cprof,
1002 [AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)])],,
1003 [enable_cprof="no"])
1004 AS_IF([test "${enable_gprof}" != "no"], [
1005 CFLAGS="${CFLAGS} -finstrument-functions"
1006 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
1007 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
1008 LDFLAGS="${LDFLAGS} -finstrument-functions"
1014 AC_ARG_ENABLE(coverage,
1015 [AS_HELP_STRING([--enable-coverage],
1016 [build for test coverage (default disabled)])],,
1017 [enable_coverage="no"])
1018 AS_IF([test "${enable_coverage}" != "no"], [
1019 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1020 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1021 LDFLAGS="-lgcov ${LDFLAGS}"
1022 CFLAGS_save="${CFLAGS}"
1023 CXXFLAGS_save="${CXXFLAGS}"
1024 LDFLAGS_save="${LDFLAGS}"
1027 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
1028 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
1029 [ac_cv_c_visibility_hidden], [
1030 CFLAGS="${CFLAGS_save} -ffast-math"
1031 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1032 ac_cv_c_visibility_hidden=yes
1034 ac_cv_c_visibility_hidden=no
1037 AS_IF([test "${ac_cv_c_visibility_hidden}" != "no"], [
1038 CFLAGS="${CFLAGS} -fvisibility=hidden"
1039 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
1040 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
1047 dnl Enable/disable optimizations
1049 AC_ARG_ENABLE(optimizations,
1050 [AS_HELP_STRING([--disable-optimizations],
1051 [disable compiler optimizations (default enabled)])],,
1052 [enable_optimizations="yes"])
1053 AS_IF([test "${enable_optimizations}" != "no"], [
1054 enable_optimizations="speed"
1057 dnl Check for various optimization flags
1058 AS_IF([test "${enable_optimizations}" != "no"], [
1061 dnl -O4 and -O3 only in production builds
1062 AS_IF([test "{enable_debug}" = "no"], [
1063 AC_CACHE_CHECK([if $CC accepts -O4], [ac_cv_c_o4], [
1064 CFLAGS="${CFLAGS_save} -O4"
1065 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1071 AS_IF([test "${ac_cv_c_o4}" != "no"], [
1074 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
1075 CFLAGS="${CFLAGS_save} -O3"
1076 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1082 AS_IF([test "${ac_cv_c_o3}" != "no"], [
1088 dnl -O2 and -O in both production and debug builds
1089 AS_IF([test "x$C_O" = "x"], [
1090 AC_CACHE_CHECK([if \$CC accepts -O2], [ac_cv_c_o2], [
1091 CFLAGS="${CFLAGS_save} -O2"
1092 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1098 AS_IF([test "${ac_cv_c_o2}" != "no"], [
1101 AC_CACHE_CHECK([if \$CC accepts -O], [ac_cv_c_o], [
1102 CFLAGS="${CFLAGS_save} -O"
1103 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1109 AS_IF([test "${ac_cv_c_o}" != "no"], [
1116 CFLAGS="${CFLAGS} ${C_O}"
1117 CXXFLAGS="${CXXFLAGS} ${C_O}"
1118 OBJCFLAGS="${OBJCFLAGS} ${C_O}"
1121 dnl Check for -ffast-math
1122 AC_CACHE_CHECK([if $CC accepts -ffast-math], [ac_cv_c_fast_math], [
1123 CFLAGS="${CFLAGS_save} -ffast-math"
1124 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1125 ac_cv_c_fast_math=yes
1127 ac_cv_c_fast_math=no
1130 AS_IF([test "${ac_cv_c_fast_math}" != "no"], [
1132 CFLAGS="${CFLAGS} -ffast-math"
1133 CXXFLAGS="${CXXFLAGS} -ffast-math"
1134 OBJCFLAGS="${OBJCFLAGS} -ffast-math"
1138 dnl Check for -funroll-loops
1139 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1140 CFLAGS="${CFLAGS_save} -funroll-loops"
1141 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1142 ac_cv_c_unroll_loops=yes
1144 ac_cv_c_unroll_loops=no
1147 AS_IF([test "${ac_cv_c_unroll_loops}" != "no"], [
1149 CFLAGS="${CFLAGS} -funroll-loops"
1150 CXXFLAGS="${CXXFLAGS} -funroll-loops"
1151 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1155 AS_IF([test "$enable_debug" = "no"], [
1156 dnl Check for -fomit-frame-pointer
1157 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1158 [ac_cv_c_omit_frame_pointer], [
1159 CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1160 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1161 ac_cv_c_omit_frame_pointer=yes
1163 ac_cv_c_omit_frame_pointer=no
1166 AS_IF([test "${ac_cv_c_omit_frame_pointer}" != "no"], [
1168 AS_IF([test "${SYS}" != "darwin"], [
1169 CFLAGS="${CFLAGS} -fomit-frame-pointer"
1170 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1172 dnl On darwin we explicitely disable it.
1173 CFLAGS="${CFLAGS} -fno-omit-frame-pointer"
1174 CXXFLAGS="${CXXFLAGS} -fno-omit-frame-pointer"
1175 OBJCFLAGS="${OBJCFLAGS} -fno-omit-frame-pointer"
1182 dnl Check for Darwin plugin linking flags
1183 AS_IF([test "${SYS}" = "darwin"], [
1184 AC_CACHE_CHECK([if $CC accepts -bundle -undefined error],
1185 [ac_cv_ld_darwin], [
1186 CFLAGS="${CFLAGS_save} -bundle -undefined error"
1187 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1193 AS_IF([test "${ac_cv_ld_darwin}" != "no"], [
1194 VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1198 dnl Checks for __attribute__(aligned()) directive
1199 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1200 [ac_cv_c_attribute_aligned],
1201 [ac_cv_c_attribute_aligned=0
1202 CFLAGS="${CFLAGS_save} -Werror"
1203 for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1205 [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1206 [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1208 CFLAGS="${CFLAGS_save}"])
1209 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1210 AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1211 [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1214 dnl Check for __attribute__((packed))
1215 AC_CACHE_CHECK([for __attribute__((packed))],
1216 [ac_cv_c_attribute_packed],
1217 [ac_cv_c_attribute_packed=no
1218 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1219 [ac_cv_c_attribute_packed=yes])])
1220 if test "${ac_cv_c_attribute_packed}" != "no"; then
1221 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1227 case "${host_cpu}" in
1236 dnl Check for backtrace() support
1237 AC_CHECK_HEADERS(execinfo.h)
1238 AC_CHECK_FUNCS(backtrace)
1243 ALIASES="${ALIASES} cvlc rvlc"
1246 dnl Some plugins aren't useful on some platforms
1248 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1249 VLC_ADD_PLUGIN([dynamicoverlay access_shm])
1250 elif test "${SYS}" != "mingwce"; then
1251 VLC_ADD_PLUGIN([access_smb dmo globalhotkeys])
1252 VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1254 if test "${SYS}" = "darwin"; then
1255 VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,ApplicationServices])
1259 dnl Accelerated modules
1262 dnl Check for fully working MMX intrinsics
1263 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1264 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1266 [AS_HELP_STRING([--disable-mmx],
1267 [disable MMX optimizations (default auto)])],,[
1268 case "${host_cpu}" in
1279 AS_IF([test "${enable_mmx}" != "no"], [
1282 AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1283 [ac_cv_c_mmx_intrinsics],
1284 [CFLAGS="${CFLAGS_save} -O -mmmx"
1285 AC_TRY_COMPILE([#include <mmintrin.h>
1289 a = b = c = (__m64)frobzor;
1290 a = _mm_slli_pi16(a, 3);
1291 a = _mm_adds_pi16(a, b);
1292 c = _mm_srli_pi16(c, 8);
1293 c = _mm_slli_pi16(c, 3);
1294 b = _mm_adds_pi16(b, c);
1295 a = _mm_unpacklo_pi8(a, b);
1296 frobzor = (uint64_t)a;],
1297 [ac_cv_c_mmx_intrinsics=yes],
1298 [ac_cv_c_mmx_intrinsics=no])])
1299 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1300 AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1301 [Define to 1 if MMX intrinsics are available.])
1304 AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1306 [CFLAGS="${CFLAGS_save}"
1307 AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1308 ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1309 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1310 AC_DEFINE(CAN_COMPILE_MMX, 1,
1311 [Define to 1 inline MMX assembly is available.])
1315 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1316 [ac_cv_mmxext_inline],
1317 [CFLAGS="${CFLAGS_save}"
1318 AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1319 ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1320 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1321 AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1322 [Define to 1 if MMX EXT inline assembly is available.])
1326 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1327 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1329 dnl Check for fully workin SSE2 intrinsics
1330 dnl We need support for -mmmx, we need <emmintrin.h>, and we also need a
1331 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1333 [AS_HELP_STRING([--disable-sse],
1334 [disable SSE (1-4) optimizations (default auto)])],, [
1335 case "${host_cpu}" in
1345 AS_IF([test "${enable_sse}" != "no"], [
1346 ARCH="${ARCH} sse sse2"
1348 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1349 [ac_cv_c_sse2_intrinsics],
1350 [CFLAGS="${CFLAGS_save} -O -msse2"
1351 AC_TRY_COMPILE([#include <emmintrin.h>
1355 a = b = c = _mm_set1_epi64((__m64)frobzor);
1356 a = _mm_slli_epi16(a, 3);
1357 a = _mm_adds_epi16(a, b);
1358 c = _mm_srli_epi16(c, 8);
1359 c = _mm_slli_epi16(c, 3);
1360 b = _mm_adds_epi16(b, c);
1361 a = _mm_unpacklo_epi8(a, b);
1362 frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1363 [ac_cv_c_sse2_intrinsics=yes],
1364 [ac_cv_c_sse2_intrinsics=no])])
1365 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1366 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1367 [Define to 1 if SSE2 intrinsics are available.])
1370 AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1372 [CFLAGS="${CFLAGS_save}"
1373 AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1374 ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1375 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1376 AC_DEFINE(CAN_COMPILE_SSE, 1,
1377 [Define to 1 if SSE inline assembly is available.])
1380 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1381 [ac_cv_sse2_inline],
1382 [CFLAGS="${CFLAGS_save}"
1383 AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1384 ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1385 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1386 AC_DEFINE(CAN_COMPILE_SSE2, 1,
1387 [Define to 1 if SSE2 inline assembly is available.])
1392 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly],
1393 [ac_cv_sse3_inline],
1394 [CFLAGS="${CFLAGS_save}"
1395 AC_TRY_COMPILE(,[void *p;asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p));],
1396 ac_cv_sse3_inline=yes, ac_cv_sse3_inline=no)])
1397 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1398 AC_DEFINE(CAN_COMPILE_SSE3, 1,
1399 [Define to 1 if SSE3 inline assembly is available.]) ])
1401 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly],
1402 [ac_cv_ssse3_inline],
1403 [CFLAGS="${CFLAGS_save}"
1404 AC_TRY_COMPILE(,[void *p;asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p));],
1405 ac_cv_ssse3_inline=yes, ac_cv_ssse3_inline=no)])
1406 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1407 AC_DEFINE(CAN_COMPILE_SSSE3, 1,
1408 [Define to 1 if SSSE3 inline assembly is available.]) ])
1411 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1412 [ac_cv_sse4_1_inline],
1413 [CFLAGS="${CFLAGS_save}"
1414 AC_TRY_COMPILE(,[void *p;asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p));],
1415 ac_cv_sse4_1_inline=yes, ac_cv_sse4_1_inline=no)])
1416 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1417 AC_DEFINE(CAN_COMPILE_SSE4_1, 1,
1418 [Define to 1 if SSE4_1 inline assembly is available.]) ])
1421 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1422 [ac_cv_sse4_2_inline],
1423 [CFLAGS="${CFLAGS_save}"
1424 AC_TRY_COMPILE(,[void *p;asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p));],
1425 ac_cv_sse4_2_inline=yes, ac_cv_sse4_2_inline=no)])
1426 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1427 AC_DEFINE(CAN_COMPILE_SSE4_2, 1,
1428 [Define to 1 if SSE4_2 inline assembly is available.]) ])
1431 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly],
1432 [ac_cv_sse4a_inline],
1433 [CFLAGS="${CFLAGS_save}"
1434 AC_TRY_COMPILE(,[void *p;asm volatile("insertq %%xmm1,%%xmm0"::"r"(p));],
1435 ac_cv_sse4a_inline=yes, ac_cv_sse4a_inline=no)])
1436 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1437 AC_DEFINE(CAN_COMPILE_SSE4A, 1,
1438 [Define to 1 if SSE4A inline assembly is available.]) ])
1440 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1443 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1444 [ac_cv_3dnow_inline],
1445 [CFLAGS="${CFLAGS_save}"
1446 AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1447 ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1448 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1449 AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1450 [Define to 1 if 3D Now! inline assembly is available.])
1453 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1457 [AS_HELP_STRING([--disable-neon],
1458 [disable NEON optimizations (default auto)])],, [
1459 AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1461 AS_IF([test "${enable_neon}" != "no"], [
1462 AC_CACHE_CHECK([if $CC groks NEON inline assembly], [ac_cv_neon_inline], [
1463 CFLAGS="${CFLAGS_save} -mfpu=neon"
1466 asm volatile("vqmovun.s64 d0, q1":::"d0");
1467 asm volatile("ssat r0, #1, r0":::"r0"); /* assume ARMv6 */
1470 ac_cv_neon_inline="-mfpu=neon"
1472 ac_cv_neon_inline="no"
1474 CFLAGS="${CFLAGS_save}"
1476 ARM_NEON_CFLAGS="$ac_cv_neon_inline"
1478 ac_cv_neon_inline="no"
1480 AC_SUBST(ARM_NEON_CFLAGS)
1481 AM_CONDITIONAL(HAVE_ARM_NEON, [test "${ac_cv_neon_inline}" != "no"])
1484 AC_ARG_ENABLE(altivec,
1485 [AS_HELP_STRING([--disable-altivec],
1486 [disable AltiVec optimizations (default auto)])],, [
1487 AS_IF([test "${host_cpu}" = "powerpc"],
1488 [enable_altivec=yes], [enable_altivec=no])
1491 AS_IF([test "${enable_altivec}" = "yes"], [
1492 ARCH="${ARCH} altivec";
1493 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1494 [ac_cv_altivec_inline],
1495 [CFLAGS="${CFLAGS_save}"
1496 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1497 ac_cv_altivec_inline="yes",
1498 [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1499 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1500 [ac_cv_altivec_inline="-Wa,-m7400"],
1501 ac_cv_altivec_inline=no)
1503 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1504 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1505 [Define to 1 if AltiVec inline assembly is available.])
1506 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1507 VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1508 VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1509 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1514 dnl The AltiVec C extensions
1516 dnl There are several possible cases:
1517 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1518 dnl need <altivec.h>
1519 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1520 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1521 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1522 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1523 dnl - Others: test should fail
1524 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1526 [# OS X/PPC test (gcc 4.x)
1527 CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1528 AC_TRY_COMPILE([vector unsigned char foo;],
1529 [vec_ld(0, (unsigned char *)0);],
1530 [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1531 [# OS X/PPC test (gcc 3.x)
1532 CFLAGS="${CFLAGS_save} -faltivec"
1533 AC_TRY_COMPILE([vector unsigned char foo;],
1534 [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1535 [ac_cv_c_altivec="-faltivec"],
1536 dnl Below this are the Linux tests
1537 [# Linux/PPC test (gcc 4.x)
1538 CFLAGS="${CFLAGS_save} -maltivec"
1539 AC_TRY_COMPILE([#include <altivec.h>],
1540 [vec_ld(0, (unsigned char *)0);],
1541 [ac_cv_c_altivec="-maltivec"],
1542 [# Linux/PPC test (gcc 3.3)
1543 CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1544 AC_TRY_COMPILE([#include <altivec.h>],
1545 [vec_ld(0, (unsigned char *)0);],
1547 ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1548 [# Linux/PPC test (gcc 3.3)
1549 CFLAGS="${CFLAGS_save} -fvec"
1550 AC_TRY_COMPILE([#include <altivec.h>],
1551 [vec_ld(0, (unsigned char *)0);],
1552 [ac_cv_c_altivec="-fvec"],
1553 [ac_cv_c_altivec=no])
1558 CFLAGS="${CFLAGS_save}"
1560 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1561 CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1564 AC_CHECK_HEADERS(altivec.h)
1565 CPPFLAGS="${CPPFLAGS_save}"
1567 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1568 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1569 [Define to 1 if C AltiVec extensions are available.])
1570 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1571 VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1575 AC_CACHE_CHECK([if linker needs -framework vecLib],
1577 [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1578 AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1579 LDFLAGS="${LDFLAGS_save}"
1581 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1582 VLC_ADD_LDFLAGS([libvlccore memcpyaltivec],[-Wl,-framework,vecLib])
1585 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1588 dnl Special arch tuning
1591 [AS_HELP_STRING([--with-tuning=ARCH],
1592 [tune compilation for an architecture (default varies)])])
1593 if test -n "${with_tuning}"; then
1594 if test "${with_tuning}" != "no"; then
1595 CFLAGS_TUNING="-mtune=${with_tuning}"
1598 if test "${SYS}" = "darwin" -a "${host_cpu}" = "i686"; then
1599 CFLAGS_TUNING="-march=prescott -mtune=generic"
1600 elif test "${SYS}" = "darwin" -a "${host_cpu}" = "x86_64"; then
1601 CFLAGS_TUNING="-march=core2 -mtune=core2"
1602 elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1603 CFLAGS_TUNING="-mtune=pentium2"
1604 elif test "${host_cpu}" = "x86_64"; then
1605 CFLAGS_TUNING="-mtune=athlon64"
1606 elif test "${host_cpu}" = "powerpc"; then
1607 CFLAGS_TUNING="-mtune=G4";
1611 dnl NOTE: this can't be cached cleanly
1612 AS_IF([test "${CFLAGS_TUNING}"],
1613 [CFLAGS_save="${CFLAGS}"
1614 CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1616 AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1617 AC_COMPILE_IFELSE([AC_LANG_SOURCE([])],
1619 [CFLAGS_TUNING=""; tuning="no"
1620 AS_IF([test "${with_tuning}"],
1621 [AC_MSG_ERROR([requested tuning not supported])])])
1623 AC_MSG_RESULT([$tuning])
1624 CFLAGS="${CFLAGS_save}"
1630 AC_ARG_ENABLE(optimize-memory,
1631 [AS_HELP_STRING([--enable-optimize-memory],
1632 [optimize memory usage over performance])])
1633 if test "${enable_optimize_memory}" = "yes"; then
1634 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1638 dnl Allow running as root (useful for people running on embedded platforms)
1640 AC_ARG_ENABLE(run-as-root,
1641 [AS_HELP_STRING([--enable-run-as-root],
1642 [allow running VLC as root (default disabled)])])
1643 AS_IF([test "${enable_run_as_root}" = "yes"],[
1644 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1645 [Define to 1 to allow running VLC as root (uid 0).])
1652 [AS_HELP_STRING([--disable-sout],
1653 [disable streaming output (default enabled)])])
1654 AS_IF([test "${enable_sout}" != "no"], [
1655 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1657 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1661 [AS_HELP_STRING([--disable-lua],
1662 [disable LUA scripting support (default enabled)])])
1663 if test "${enable_lua}" != "no"
1665 PKG_CHECK_MODULES(LUA, lua5.1,
1668 AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1669 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1673 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1676 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1677 [LUA_LIBS="-llua5.1"],
1678 AC_CHECK_LIB( lua51 , luaL_newstate,
1679 [LUA_LIBS="-llua51"],
1680 AC_CHECK_LIB( lua , luaL_newstate,
1688 if test "x${have_lua}" = "xyes" ; then
1689 VLC_ADD_LIBS([lua],[$LUA_LIBS])
1690 VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1692 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.])
1694 AC_ARG_VAR([LUAC], [LUA byte compiler])
1695 AC_PATH_PROGS(LUAC,[${LUAC} luac], [false])
1696 AS_IF([test "${LUAC}" = "false"], [
1697 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1700 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1705 AC_ARG_ENABLE(httpd,
1706 [AS_HELP_STRING([--disable-httpd],
1707 [disable the built-in HTTP server (default enabled)])])
1708 if test "${enable_httpd}" != "no"
1710 AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1712 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1715 dnl VideoLAN manager
1718 [AS_HELP_STRING([--disable-vlm],
1719 [disable the stream manager (default enabled)])],,
1720 [enable_vlm="${enable_sout}"])
1721 AS_IF([test "${enable_vlm}" != "no"], [
1722 AS_IF([test "${enable_sout}" = "no"], [
1723 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1725 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1727 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1730 dnl Growl notification plugin
1732 AC_ARG_ENABLE(growl,
1733 [ --enable-growl growl notification plugin (default disabled)],,
1735 AS_IF([test "${enable_growl}" != "no"], [
1736 VLC_ADD_PLUGIN([growl_udp])
1737 AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl/Growl.framework/Versions/A/Headers/GrowlDefines.h, [
1738 VLC_ADD_PLUGIN([growl])
1739 VLC_ADD_LDFLAGS([growl], [-F${CONTRIB_DIR}/Growl -Wl,-framework,Growl,-framework,CoreFoundation])
1740 VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}/Growl])
1741 VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
1747 dnl Libnotify notification plugin
1749 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
1754 AC_ARG_ENABLE(taglib,
1755 [AS_HELP_STRING([--disable-taglib],
1756 [do not use TagLib (default enabled)])])
1757 AS_IF([test "${enable_taglib}" != "no"], [
1758 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5, [
1759 VLC_ADD_PLUGIN([taglib])
1760 VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1761 VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS])
1763 AC_CHECK_HEADERS(taglib/mp4coverart.h)
1764 AC_CHECK_HEADERS(taglib/apefile.h)
1767 AC_MSG_WARN(TagLib library not found)])
1774 EXTEND_HELP_STRING([Input plugins:])
1777 dnl libproxy support
1779 AC_ARG_ENABLE(libproxy,
1780 [AS_HELP_STRING([--enable-libproxy],[support libproxy (default auto)])])
1781 AS_IF([test "${enable_libproxy}" != "no"], [
1782 PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1783 AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1784 VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1785 VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1787 AS_IF([test "x${enable_libproxy}" != "x"], [
1788 AC_MSG_ERROR([libproxy could not be found on your system])
1796 AC_ARG_ENABLE(live555,
1797 [AS_HELP_STRING([--enable-live555],
1798 [enable RTSP input through live555 (default enabled)])])
1799 AC_ARG_WITH(live555-tree,
1800 [AS_HELP_STRING([--with-live555-tree=PATH],
1801 [live555 tree for static linking])])
1802 if test "${enable_live555}" != "no"; then
1805 dnl test for --with-live555-tree
1807 if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1809 CPPFLAGS_save="${CPPFLAGS}"
1810 if test -z "${CONTRIB_DIR}"; then
1811 CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1813 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1815 if test "${SYS}" = "solaris"; then
1816 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1818 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1820 AC_CHECK_HEADERS(liveMedia_version.hh, [
1821 AC_MSG_CHECKING(for liveMedia version >= 1275091200 )
1823 [#include <liveMedia_version.hh>
1824 #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1825 #if LIVEMEDIA_LIBRARY_VERSION_INT < 1275091200
1829 [AC_MSG_RESULT([no])
1830 AC_MSG_WARN([The installed liveMedia version is too old:
1831 Version 2010.05.29 or later is required to proceed.
1832 You can get an updated one from http://www.live555.com/liveMedia .])
1833 AS_IF([test "${enable_live555}" == "yes"], [
1834 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable the plugin.])
1837 AC_MSG_RESULT([yes])
1838 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1839 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1840 if test "${SYS}" = "mingw32"; then
1841 # add ws2_32 for closesocket, select, recv
1842 other_libs="$other_libs -lws2_32"
1843 elif test "${SYS}" = "mingwce"; then
1844 # add ws2 for closesocket, select, recv
1845 other_libs="$other_libs -lws2"
1848 dnl We need to check for pic because live555 don't provide shared libs
1849 dnl and we want to build a plugins so we need -fPIC on some arch.
1850 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1851 AC_CHECK_LIB(liveMedia_pic, main, [
1852 VLC_ADD_PLUGIN([live555])
1853 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1855 AC_CHECK_LIB(liveMedia, main, [
1856 VLC_ADD_PLUGIN([live555])
1857 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1858 ],[],[${other_libs}]) ],[${other_libs_pic}])
1860 CPPFLAGS="${CPPFLAGS_save}"
1865 AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1866 real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1867 if test -z "${real_live555_tree}"; then
1868 dnl The given directory can't be found
1870 AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1872 if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1873 AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1875 AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1876 AC_MSG_CHECKING(for liveMedia version >= 1275091200 )
1878 [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1879 #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1880 #if LIVEMEDIA_LIBRARY_VERSION_INT < 1275091200
1884 [AC_MSG_RESULT([no])
1885 AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1886 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1888 AC_MSG_RESULT([yes])
1892 VLC_ADD_PLUGIN([live555])
1894 if test "${SYS}" = "mingw32"; then
1895 # add ws2_32 for closesocket, select, recv
1896 VLC_ADD_LIBS([live555],[-lws2_32])
1899 VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1900 VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1901 VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1902 VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1904 VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1905 VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1906 VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1907 VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1908 if test "${SYS}" = "solaris"; then
1909 VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1912 dnl The given live555 wasn't built
1914 if test "${enable_live555}" = "yes"; then
1915 AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1922 dnl - special access module for dc1394 input
1923 dnl - dv module: digital video module check for libraw1394
1924 dnl - linsys modules: access module check for libzvbi
1926 PKG_ENABLE_MODULES_VLC([DC1394], [], [libraw1394 >= 2.0.1 libdc1394-2 >= 2.1.0], [dc1394 access module], [auto])
1927 PKG_ENABLE_MODULES_VLC([DV], [access_dv], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV input module], [auto])
1929 AC_ARG_ENABLE(linsys,
1930 [AS_HELP_STRING([--enable-linsys],
1931 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
1932 if test "$SYS" = "linux" -a "${enable_linsys}" != "no"; then
1933 VLC_ADD_PLUGIN([linsys_hdsdi])
1934 PKG_CHECK_MODULES(LINSYS_SDI, zvbi-0.2 >= 0.2.28,
1935 [ VLC_ADD_LIBS([linsys_sdi],[$LINSYS_SDI_LIBS])
1936 VLC_ADD_CFLAGS([linsys_sdi],[$LINSYS_SDI_CFLAGS])
1937 VLC_ADD_PLUGIN([linsys_sdi]) ],
1938 [AC_MSG_WARN([Could not find zvbi >= 0.2.28, install libzvbi-dev ?])]
1943 dnl dvdread module: check for libdvdread
1945 dnl prepend -ldvdcss on OS that need it
1946 AS_CASE(["${SYS}"], [mingw32|darwin], [VLC_ADD_LIBS([dvdread], [-ldvdcss])])
1947 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread], [dvdread input module], [auto])
1950 dnl libdvdnav plugin
1952 AC_ARG_ENABLE(dvdnav,
1953 [AS_HELP_STRING([--disable-dvdnav],
1954 [disable DVD navigation with libdvdnav (default auto)])])
1955 if test "${enable_dvdnav}" != "no"
1957 dnl prepend -ldvdcss on OS that need it
1958 AS_CASE(["${SYS}"], [mingw32|darwin], [VLC_ADD_LIBS([dvdnav], [-ldvdcss])])
1960 PKG_CHECK_MODULES(DVDNAV, dvdnav, [
1961 VLC_ADD_PLUGIN([dvdnav])
1962 VLC_ADD_CFLAGS([dvdnav],[${DVDNAV_CFLAGS}])
1963 VLC_ADD_LIBS([dvdnav],[${DVDNAV_LIBS}])
1964 AC_CHECK_LIB(dvdnav, dvdnav_get_video_resolution,
1965 AC_DEFINE(HAVE_DVDNAV_GET_VIDEO_RESOLUTION, 1, [Define if you have dvdnav_get_video_resolution.]),
1966 [], [${LIBS_dvdnav}])
1967 AC_CHECK_LIB(dvdnav, dvdnav_describe_title_chapters,
1968 AC_DEFINE(HAVE_DVDNAV_DESCRIBE_TITLE_CHAPTERS, 1, [Define if you have dvdnav_describe_title_chapters.]),
1969 [], [${LIBS_dvdnav}])],
1970 [AC_MSG_WARN(dvdnav library not found)])
1974 dnl Windows DirectShow access module
1976 AC_ARG_ENABLE(dshow,
1977 [AS_HELP_STRING([--disable-dshow],
1978 [support DirectShow (default auto)])])
1979 if test "${enable_dshow}" != "no"
1981 if test "${SYS}" = "mingw32"
1984 AC_CHECK_HEADERS(dshow.h,
1985 [ VLC_ADD_PLUGIN([dshow])
1986 VLC_ADD_CXXFLAGS([dshow],[])
1987 VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
1993 dnl Blu-ray Disc Support with libbluray
1995 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.2 libxml-2.0 >= 2.6 ], (libbluray for Blu-ray disc support ) )
1998 dnl OpenCV wrapper and example filters
2000 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv], (OpenCV (computer vision) filter), [off])
2004 dnl libsmbclient plugin
2007 [AS_HELP_STRING([--disable-smb], [disable SMB/CIFS support (default auto)])])
2008 if test "${enable_smb}" != "no"; then
2009 AC_CHECK_HEADERS(libsmbclient.h,
2010 [ VLC_ADD_PLUGIN([access_smb])
2011 VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2012 [ if test -n "${enable_smb}"; then
2013 AC_MSG_ERROR([cannot find libsmbclient headers])
2019 dnl sftp access support
2022 [AS_HELP_STRING([--enable-sftp],
2023 [support SFTP file transfer via libssh2 (default disabled)])])
2024 if test "${enable_sftp}" = "yes"; then
2025 AC_CHECK_HEADERS(libssh2.h, [
2026 VLC_ADD_PLUGIN([access_sftp])
2027 VLC_ADD_LIBS([access_sftp], [-lssh2])
2032 dnl Video4Linux2 plugin
2035 [AS_HELP_STRING([--disable-v4l2],
2036 [do not support Video4Linux version 2 (default auto)])])
2038 [AS_HELP_STRING([--with-v4l2=PATH], [path to a V4L2-enabled kernel tree])])
2039 if test "${enable_v4l2}" != "no"
2041 if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2043 VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2046 CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2047 AC_CHECK_HEADERS(linux/videodev2.h sys/videoio.h, [
2048 VLC_ADD_PLUGIN([v4l2])
2050 CPPFLAGS="${CPPFLAGS_save}"
2054 dnl libv4l2 support for video4linux.
2056 AC_ARG_ENABLE(libv4l2,
2057 [AS_HELP_STRING([--enable-libv4l2],
2058 [use V4L2 through libv4l2 (default auto)])])
2059 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2061 PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2062 VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2063 VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2064 AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l2 is available)],
2065 AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2070 dnl special access module for Hauppauge PVR cards
2073 [AS_HELP_STRING([--enable-pvr],
2074 [support PVR V4L2 cards (default disabled)])])
2075 if test "${enable_pvr}" = "yes"
2077 VLC_ADD_PLUGIN([pvr])
2081 dnl special access module for Blackmagic SDI cards
2083 AC_ARG_ENABLE(decklink,
2084 [AS_HELP_STRING([--disable-decklink],
2085 [disable Blackmagic DeckLink SDI input (default auto)])])
2086 AC_ARG_WITH(decklink_sdk,
2087 [AS_HELP_STRING[--with-decklink-sdk=DIR],
2088 [location of Blackmagic DeckLink SDI SDK])])
2089 if test "${enable_decklink}" != "no"
2091 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
2093 VLC_ADD_CPPFLAGS([decklink],[-I${with_decklink_sdk}/include])
2095 CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_decklink}"
2097 AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
2098 VLC_ADD_PLUGIN([decklink])
2099 ],[AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)])
2101 CPPFLAGS="${CPPFLAGS_save}"
2106 dnl gnomeVFS access module
2108 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
2114 [AS_HELP_STRING([--enable-vcdx],
2115 [navigate VCD with libvcdinfo (default disabled)])])
2116 if test "${enable_vcdx}" = "yes"
2118 PKG_CHECK_MODULES(LIBCDIO, [libcdio >= 0.78.2 libiso9660 >= 0.72],
2119 [VLC_ADD_LIBS([vcdx],[$LIBCDIO_LIBS])
2120 VLC_ADD_CFLAGS([vcdx],[$LIBCDIO_CFLAGS])],
2121 [AC_MSG_ERROR([vcdx plugin requires libcdio >= 0.78.2 and libiso9660 >= 0.72])])
2122 PKG_CHECK_MODULES(LIBVCDINFO, libvcdinfo >= 0.7.22,
2123 [VLC_ADD_LIBS([vcdx],[$LIBVCDINFO_LIBS])
2124 VLC_ADD_CFLAGS([vcdx],[$LIBVCDINFO_CFLAGS])],
2125 [AC_MSG_ERROR([vcdx plugin requires libvcdinfo library >= 0.7.22])])
2126 VLC_ADD_PLUGIN([vcdx])
2130 dnl Built-in CD-DA and VCD module
2133 [AS_HELP_STRING([--disable-vcd],
2134 [disable built-in VCD and CD-DA support (default enabled)])])
2136 AC_ARG_ENABLE(libcddb,
2137 [AS_HELP_STRING([--disable-libcddb],
2138 [disable CDDB for Audio CD (default enabled)])])
2140 if test "${enable_vcd}" != "no"
2142 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2143 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2145 VLC_ADD_PLUGIN([vcd cdda])
2150 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2151 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2153 VLC_ADD_PLUGIN([vcd cdda])
2154 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2159 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2160 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2162 VLC_ADD_PLUGIN([vcd cdda])
2163 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2168 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2170 VLC_ADD_PLUGIN([vcd cdda])
2173 if test "${SYS}" = "darwin"
2175 VLC_ADD_PLUGIN([vcd cdda])
2176 VLC_ADD_LDFLAGS([vcd vcdx cdda],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2177 VLC_ADD_LIBS([vcdx cdda],[-liconv])
2180 if test "$enable_libcddb" != "no"; then
2181 PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2183 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2184 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2185 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2187 [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2193 dnl libdvbpsi check for ts mux/demux
2196 PKG_WITH_MODULES([DVBPSI], [libdvbpsi], [have_dvbpsi="yes"])
2197 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
2200 dnl Screen capture module
2202 AC_ARG_ENABLE(screen,
2203 [AS_HELP_STRING([--enable-screen],
2204 [disable screen capture (default enabled)])])
2205 if test "${enable_screen}" != "no"; then
2206 if test "${SYS}" = "darwin"; then
2207 AC_CHECK_HEADERS(OpenGL/gl.h, [
2208 AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2209 VLC_ADD_PLUGIN([screen])
2210 VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2213 elif test "${SYS}" = "mingw32"; then
2214 VLC_ADD_PLUGIN([screen])
2215 VLC_ADD_LIBS([screen],[-lgdi32])
2216 elif test "${SYS}" = "mingwce"; then
2217 CPPFLAGS="${CPPFLAGS_save}"
2225 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2226 AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2229 AS_IF([test "${have_ipv6}" = "yes"], [
2230 AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2233 AC_CHECK_FUNCS(inet_ntop,[
2234 AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2238 dnl GME demux plugin
2241 [AS_HELP_STRING([--enable-gme],
2242 [use Game Music Emu (default auto)])])
2243 AS_IF([test "${enable_gme}" != "no"], [
2244 AC_CHECK_HEADER([gme/gme.h], [
2245 VLC_ADD_LIBS([gme], [-lgme])
2246 VLC_ADD_PLUGIN([gme])
2248 AS_IF([test "x${enable_gme}" != "x"], [
2249 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2258 PKG_WITH_MODULES([SID], [libsidplay2],
2260 oldCPPFLAGS="$CPPFLAGS"
2261 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2262 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2263 VLC_ADD_PLUGIN([sid])
2264 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2265 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2267 AS_IF([test "x${enable_sid}" = "xyes"],
2268 [AC_MSG_ERROR(Library libresid-builder needed for sid was not found)],
2269 [AC_MSG_WARN(Library libresid-builder needed for sid was not found)]
2272 CPPFLAGS="$oldCPPFLAGS"
2274 AS_IF([test "x${enable_sid}" = "xyes"],
2275 [AC_MSG_ERROR(Library libsidplay2 needed for sid was not found)],
2276 [AC_MSG_WARN(Library libsidplay2 needed for sid was not found)]
2278 [C64 sid demux support], [auto])
2282 dnl ogg demux plugin
2284 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2285 if test "${enable_sout}" != "no"; then
2286 PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg mux support], [auto])
2289 if test "${enable_sout}" != "no"; then
2290 dnl Check for libshout
2291 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2295 dnl matroska demux plugin
2298 [AS_HELP_STRING([--disable-mkv],
2299 [do not use libmatroska (default auto)])])
2300 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2302 AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2303 AC_MSG_CHECKING(for libebml version >= 1.0.0)
2305 [#include <ebml/EbmlVersion.h>
2306 #ifdef LIBEBML_VERSION
2307 #if LIBEBML_VERSION >= 0x010000
2311 [AC_MSG_RESULT([yes])
2312 AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2313 AC_MSG_CHECKING(for libmatroska version >= 1.0.0)
2315 [#include <matroska/KaxVersion.h>
2316 #ifdef LIBMATROSKA_VERSION
2317 #if LIBMATROSKA_VERSION >= 0x010000
2321 [AC_MSG_RESULT([yes])
2322 AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2323 VLC_ADD_CXXFLAGS([mkv],[])
2324 if test "${SYS}" = "darwin"; then
2325 VLC_ADD_CXXFLAGS([mkv],[-O1])
2327 AC_CHECK_LIB(ebml_pic, main, [
2328 VLC_ADD_PLUGIN([mkv])
2329 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2331 AC_CHECK_LIB(ebml, main, [
2332 VLC_ADD_PLUGIN([mkv])
2333 VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2338 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.])
2342 [AC_MSG_RESULT([no])
2343 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.])
2350 dnl modplug demux plugin
2353 [AS_HELP_STRING([--disable-mod],
2354 [do not use libmodplug (default auto)])])
2355 if test "${enable_mod}" != "no" ; then
2356 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2357 VLC_ADD_PLUGIN([mod])
2358 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2359 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2361 AS_IF([test x"${enable_mod}" = "xyes"],
2362 [AC_MSG_ERROR(libmodplug not found or a broken version (0.8.8.0) was found!)],
2363 [AC_MSG_WARN(libmodplug not found or a broken version (0.8.8.0) was found!)])
2368 dnl mpc demux plugin
2371 [AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)])])
2372 if test "${enable_mpc}" != "no"
2374 AC_CHECK_HEADERS([mpc/mpcdec.h], [
2375 VLC_ADD_PLUGIN([mpc])
2376 VLC_ADD_LIBS([mpc],[-lmpcdec])],
2377 [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2378 VLC_ADD_PLUGIN([mpc])
2379 VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2386 EXTEND_HELP_STRING([Codec plugins:])
2391 AC_ARG_ENABLE(wma-fixed,
2392 [ --enable-wma-fixed libwma-fixed module (default disabled)])
2393 if test "${enable_wma_fixed}" = "yes"
2395 VLC_ADD_PLUGIN([wma_fixed])
2399 dnl shine fixed point mp3 encoder
2401 AC_ARG_ENABLE(shine,
2402 [ --enable-shine shine mp3 encoding module (default disabled)])
2403 if test "${enable_shine}" = "yes"
2405 VLC_ADD_PLUGIN([shine])
2409 dnl openmax il codec plugin
2411 AC_ARG_ENABLE(omxil,
2412 [ --enable-omxil openmax il codec module (default disabled)])
2413 if test "${enable_omxil}" = "yes"
2415 VLC_ADD_PLUGIN([omxil])
2416 VLC_ADD_LIBS([omxil], [$LIBDL])
2420 dnl CrystalHD codec plugin
2422 AC_ARG_ENABLE(crystalhd,
2423 [ --enable-crystalhd crystalhd codec plugin (default auto)])
2424 if test "${enable_crystalhd}" != "no"; then
2425 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2426 VLC_ADD_PLUGIN([crystalhd])
2427 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2429 if test "${SYS}" = "mingw32" ; then
2430 AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2431 VLC_ADD_PLUGIN([crystalhd])
2432 AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2433 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2436 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2437 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2438 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2439 ],[#define __LINUX_USER__
2440 #include <libcrystalhd/bc_dts_types.h>
2444 #include <libcrystalhd/bc_dts_types.h>
2452 [ --enable-mad libmad module (default enabled)])
2453 if test "${enable_mad}" != "no"
2456 [ --with-mad=PATH path to libmad],[],[])
2457 if test "${with_mad}" != "no" -a -n "${with_mad}"
2459 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2460 VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2463 AC_ARG_WITH(mad-tree,
2464 [ --with-mad-tree=PATH mad tree for static linking],[],[])
2465 if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2467 real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2468 if test -z "${real_mad_tree}"
2470 dnl The given directory can't be found
2472 AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2474 dnl Use a custom libmad
2475 AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2476 if test -f ${real_mad_tree}/mad.h
2479 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2480 VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2481 LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2482 AC_CHECK_LIB(mad, mad_bit_init, [
2483 VLC_ADD_PLUGIN([mpgatofixed32])
2484 VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2485 ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2487 LDFLAGS="${LDFLAGS_save}"
2490 AC_MSG_ERROR([the specified tree doesn't have mad.h])
2493 CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2494 LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2495 AC_CHECK_HEADERS(mad.h, ,
2496 [ 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.]) ])
2497 AC_CHECK_LIB(mad, mad_bit_init, [
2498 VLC_ADD_PLUGIN([mpgatofixed32])
2499 VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2500 [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2501 CPPFLAGS="${CPPFLAGS_save}"
2502 LDFLAGS="${LDFLAGS_save}"
2507 AC_ARG_ENABLE(merge-ffmpeg,
2508 [ --enable-merge-ffmpeg merge FFmpeg-based plugins (default disabled)],, [
2509 enable_merge_ffmpeg="no"
2511 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2513 AC_CACHE_CHECK([if linker supports -Bsymbolic],
2514 [ac_cv_ld_bsymbolic],
2515 [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
2516 AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
2517 LDFLAGS="${LDFLAGS_save}"
2521 dnl avcodec decoder/encoder plugin
2523 AC_ARG_ENABLE(avcodec,
2524 [ --enable-avcodec libavcodec codec (default enabled)])
2525 AS_IF([test "${enable_avcodec}" != "no"], [
2526 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 52.25.0 libavutil],
2529 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2530 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2531 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2532 AC_CHECK_HEADERS(libavutil/avutil.h)
2533 VLC_ADD_PLUGIN([avcodec])
2534 VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2535 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2536 VLC_ADD_LDFLAGS([avcodec],[-Wl,-Bsymbolic])
2538 VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2542 AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2549 dnl libva needs avcodec
2551 AC_ARG_ENABLE(libva,
2552 [ --enable-libva libva VAAPI support (default auto)])
2554 AS_IF([test "${enable_libva}" != "no"], [
2555 AS_IF([test "x${have_avcodec}" = "xyes"], [
2556 PKG_CHECK_MODULES(LIBVA, [libva libva-x11],
2559 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2560 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2561 AC_CHECK_HEADERS(libavcodec/vaapi.h, [
2562 VLC_ADD_LIBS([avcodec],[$LIBVA_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11])
2563 VLC_ADD_CFLAGS([avcodec],[$LIBVA_CFLAGS ${X_CFLAGS}])
2564 AC_DEFINE(HAVE_AVCODEC_VAAPI, 1, [Define if avcodec has to be built with VAAPI support.])
2565 echo "VAAPI acceleration activated"
2567 AS_IF([test "${enable_libva}" == "yes"],
2568 [AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])],
2569 [AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])])
2573 AS_IF([test "${enable_libva}" == "yes"],
2574 [AC_MSG_ERROR([Could not find required libva.])],
2575 [AC_MSG_WARN([libva not found ])])
2578 AS_IF([test "x${enable_libva}" != "x"], [
2579 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive.])
2585 dnl dxva2 needs avcodec
2587 AC_ARG_ENABLE(dxva2,
2588 [ --enable-dxva2 DxVA2 support (default auto)])
2590 AS_IF([test "${enable_dxva2}" != "no"], [
2591 if test "${SYS}" = "mingw32"; then
2592 AS_IF([test "x${have_avcodec}" = "xyes"], [
2593 AC_CHECK_HEADERS(dxva2api.h,
2595 AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2596 VLC_ADD_LIBS([avcodec],[-lole32 -lshlwapi -luuid])
2597 AC_DEFINE(HAVE_AVCODEC_DXVA2, 1, [Define if avcodec has to be built with DxVA2 support.])
2598 echo "DxVA2 acceleration activated"
2600 AS_IF([test "${enable_dxva2}" == "yes"],
2601 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2602 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2605 AS_IF([test "${enable_dxva2}" == "yes"],
2606 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2607 [AC_MSG_WARN([dxva2api.h not found])])
2610 AS_IF([test "x${enable_dxva2}" != "x"], [
2611 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2619 dnl stream_out switcher needs libavcodec
2621 AC_ARG_ENABLE(switcher,
2622 [ --enable-switcher Stream-out switcher plugin (default disabled)])
2623 AS_IF([test "${enable_switcher}" = "yes"], [
2624 AS_IF([test "x${have_avcodec}" = "xyes"], [
2625 VLC_ADD_PLUGIN([stream_out_switcher])
2626 VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS $AVUTIL_LIBS])
2627 VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS $AVUTIL_CFLAGS])
2628 ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2634 dnl avformat demuxer/muxer plugin
2637 AC_ARG_ENABLE(avformat,
2638 [ --enable-avformat libavformat containers (default enabled)],, [
2639 enable_avformat="${have_avcodec}"
2641 if test "${enable_avformat}" != "no"
2643 PKG_CHECK_MODULES(AVFORMAT,[libavformat > 52.30.0 libavcodec libavutil],
2646 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2647 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2648 AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2649 AC_CHECK_HEADERS(libavutil/avutil.h)
2650 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2651 VLC_ADD_PLUGIN([avformat access_avio])
2652 VLC_ADD_LIBS([avformat access_avio],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2653 VLC_ADD_CFLAGS([avformat access_avio],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2654 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2655 VLC_ADD_LDFLAGS([avformat access_avio],[-Wl,-Bsymbolic])
2658 VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2659 VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2663 AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
2668 dnl swscale image scaling and conversion plugin
2671 AC_ARG_ENABLE(swscale,
2672 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2673 (default enabled)]))
2674 if test "${enable_swscale}" != "no"
2676 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2679 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2680 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2681 AC_CHECK_HEADERS(libswscale/swscale.h)
2682 VLC_ADD_PLUGIN([swscale])
2683 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2684 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2685 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2686 VLC_ADD_LDFLAGS([swscale],[-Wl,-Bsymbolic])
2690 AC_MSG_ERROR([Could not find libswscale. Use --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2698 AC_ARG_ENABLE(postproc,
2699 [ --enable-postproc libpostproc image post-processing (default enabled)])
2700 if test "${enable_postproc}" != "no"
2702 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2705 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2706 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2707 AC_CHECK_HEADERS(postproc/postprocess.h)
2708 VLC_ADD_PLUGIN([postproc])
2709 VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2710 VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2713 AC_MSG_ERROR([Could not find libpostproc. Use --disable-postproc to ignore this error.])
2718 dnl faad decoder plugin
2721 [ --enable-faad faad codec (default disabled)])
2722 if test "${enable_faad}" = "yes"
2724 AC_ARG_WITH(faad-tree,
2725 [ --with-faad-tree=PATH faad tree for static linking])
2726 if test -n "${with_faad_tree}"
2728 AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2729 real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2730 if test -z "${real_faad_tree}"
2732 dnl The given directory can't be found
2734 AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2736 if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2738 dnl Use a custom faad
2739 AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2740 VLC_ADD_PLUGIN([faad])
2741 VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2742 VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2744 dnl The given libfaad wasn't built
2746 AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2749 CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2750 LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
2751 AC_CHECK_HEADERS(faad.h, ,
2752 [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2753 AC_CHECK_LIB(faad, faacDecOpen, [
2754 VLC_ADD_PLUGIN([faad])
2755 VLC_ADD_LIBS([faad],[-lfaad]) ],
2756 AC_CHECK_LIB(faad, NeAACDecOpen, [
2757 VLC_ADD_PLUGIN([faad])
2758 VLC_ADD_LIBS([faad],[-lfaad]) ],
2759 [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2760 LDFLAGS="${LDFLAGS_save}"
2761 CPPFLAGS="${CPPFLAGS_save}"
2766 dnl twolame encoder plugin
2768 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2771 dnl QuickTime plugin
2773 AC_ARG_ENABLE(quicktime,
2774 [ --enable-quicktime QuickTime module (deprecated)])
2775 if test "${enable_quicktime}" = "yes"; then
2776 if test "${SYS}" = "mingw32"; then
2777 VLC_ADD_PLUGIN([quicktime])
2779 AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2780 [ VLC_ADD_PLUGIN([quicktime])
2781 VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2782 ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2790 [ --enable-real Real media module (default disabled)])
2791 if test "${enable_real}" = "yes"; then
2792 VLC_ADD_PLUGIN([realvideo])
2796 dnl Real RTSP plugin
2798 AC_ARG_ENABLE(realrtsp,
2799 [ --enable-realrtsp Real RTSP module (default disabled)])
2800 if test "${enable_realrtsp}" = "yes"; then
2801 VLC_ADD_PLUGIN([access_realrtsp])
2805 dnl A52/AC3 decoder plugin
2808 [ --enable-a52 A/52 support with liba52 (default enabled)])
2809 if test "${enable_a52}" != "no"
2812 [ --with-a52=PATH a52 headers and libraries])
2813 AC_ARG_WITH(a52-tree,
2814 [ --with-a52-tree=PATH a52dec tree for static linking ],[],[])
2815 if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2817 real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2818 if test -z "${real_a52_tree}"
2820 dnl The given directory can't be found
2822 AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
2824 dnl Use a custom a52dec
2825 AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2826 if test -f ${real_a52_tree}/include/a52.h
2829 VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2830 VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2831 LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
2832 AC_CHECK_LIB(a52, a52_free, [
2833 VLC_ADD_PLUGIN([a52tofloat32])
2834 VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2835 VLC_ADD_LIBS([a52tofloat32],[-la52])
2837 if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2839 AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
2841 AC_MSG_ERROR([the specified tree hasn't been compiled])
2844 LDFLAGS="${LDFLAGS_save}"
2847 AC_MSG_ERROR([the specified tree doesn't have a52.h])
2850 if test -z "${with_a52}"
2855 LDFLAGS_test="-L${with_a52}/lib"
2856 CPPFLAGS_test="-I${with_a52}/include"
2858 CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2859 LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2860 AC_CHECK_HEADERS(a52dec/a52.h, [
2861 AC_CHECK_LIB(a52, a52_free, [
2862 VLC_ADD_PLUGIN([a52tofloat32])
2863 VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2864 VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2866 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.])
2869 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.])
2871 CPPFLAGS="${CPPFLAGS_save}"
2872 LDFLAGS="${LDFLAGS_save}"
2876 AC_ARG_WITH(a52-fixed,
2877 [ --with-a52-fixed specify if liba52 has been compiled with fixed point support],
2879 VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2882 dnl DTS Coherent Acoustics decoder plugin
2884 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2889 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2894 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2899 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2904 AC_ARG_ENABLE(tremor,
2905 [ --enable-tremor Tremor decoder support (default disabled)])
2906 if test "${enable_tremor}" = "yes"
2908 AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2909 VLC_ADD_PLUGIN([tremor])
2910 VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
2917 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex decoder support], [auto])
2920 dnl theora decoder plugin
2922 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theora >= 1.0], [experimental theora codec], [auto])
2925 dnl dirac encoder plugin
2927 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
2930 dnl schroedinger decoder plugin (for dirac format video)
2932 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2935 dnl PNG decoder module
2938 [ --enable-png PNG support (default enabled)])
2939 if test "${enable_png}" != "no"; then
2940 AC_CHECK_HEADERS(png.h, [
2941 LDFLAGS="${LDFLAGS_save} -lz"
2942 AC_CHECK_LIB(png, png_set_rows, [
2943 VLC_ADD_LIBS([png],[-lpng -lz])
2944 VLC_ADD_PLUGIN([png osdmenu osd_parser])],
2946 LDFLAGS="${LDFLAGS_save}"
2949 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
2952 dnl H264 encoder plugin (using libx264)
2955 [ --enable-x264 H264 encoding support with libx264 (default enabled)])
2956 if test "${enable_x264}" != "no"; then
2957 AC_ARG_WITH(x264-tree,
2958 [ --with-x264-tree=PATH x264 tree for static linking ],[],[])
2959 if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2961 real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2962 if test -z "${real_x264_tree}"
2964 dnl The given directory can't be found
2966 AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
2968 dnl Use a custom libx264
2969 AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2970 if test -f ${real_x264_tree}/x264.h
2973 VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2974 VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
2975 PKG_CHECK_MODULES(X264,x264, [
2976 VLC_ADD_PLUGIN([x264])
2977 VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
2978 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2979 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2980 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2983 AC_MSG_ERROR([the specified tree hasn't been compiled])
2985 LDFLAGS="${LDFLAGS_save}"
2988 AC_MSG_ERROR([the specified tree doesn't have x264.h])
2991 PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2992 VLC_ADD_PLUGIN([x264])
2993 VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
2995 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2996 VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
2999 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3000 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3001 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3004 if test "${enable_x264}" = "yes"; then
3005 AC_MSG_ERROR([Could not find libx264 >= 0.86 on your system: you may get it from http://www.videolan.org/x264.html])
3008 LDFLAGS="${LDFLAGS_save}"
3013 dnl libfluidsynth (MIDI synthetizer) plugin
3015 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
3018 dnl Teletext Modules
3019 dnl vbi decoder plugin (using libzbvi)
3024 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3025 libzvbi (default enabled)]))
3027 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3028 zvbi) (default enabled if zvbi is absent)]))
3030 AS_IF( [test "${enable_zvbi}" != "no"],[
3031 PKG_CHECK_MODULES(ZVBI,
3034 VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3035 if test "${SYS}" = "mingw32"; then
3036 VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
3038 VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3039 VLC_ADD_PLUGIN([zvbi])
3040 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3041 AS_IF( [test "${enable_telx}" = "yes"],[
3042 AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3046 AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3049 AS_IF( [test "${enable_telx}" != "no" ],[
3050 VLC_ADD_PLUGIN([telx])
3054 dnl libass subtitle rendering module
3056 AC_ARG_ENABLE(libass,
3057 [ --enable-libass Subtitle support using libass (default enabled)])
3058 AS_IF( [test "${enable_libass}" != "no"], [
3059 PKG_CHECK_MODULES(LIBASS, libass >= 0.9.8,
3061 VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
3062 VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3063 VLC_ADD_PLUGIN([libass])
3065 AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3066 [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3067 VLC_ADD_LIBS([libass],[-lfontconfig])
3070 AC_MSG_WARN([LIBASS library not found])
3075 dnl kate decoder plugin
3078 [ --enable-kate kate codec (default enabled)])
3079 AS_IF([test "${enable_kate}" != "no"], [
3080 PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3081 VLC_ADD_PLUGIN([kate])
3082 VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3083 VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3084 AC_CHECK_HEADERS(kate/kate.h, [
3085 AC_CHECK_LIB(kate, kate_decode_init, [
3086 VLC_ADD_PLUGIN([kate])
3087 kate_libs="-lkate -logg"
3088 VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3089 AS_IF([test "x${enable_kate}" != "x"], [
3090 AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3091 You also need to check that you have a libogg posterior to the 1.0 release.])
3095 AS_IF([test "x${enable_kate}" != "x"], [
3096 AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3097 You also need to check that you have a libogg posterior to the 1.0 release.])
3105 dnl tiger rendering for kate decoder plugin
3107 AC_ARG_ENABLE(tiger,
3108 [ --enable-tiger Tiger rendering library for Kate streams (default enabled)])
3109 AS_IF([test "${enable_tiger}" != "no"], [
3110 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3111 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
3112 VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
3113 VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
3114 AS_IF([test "x${enable_tiger}" != "x"], [
3115 AC_MSG_ERROR([libtiger does not appear to be installed on your system.])
3126 EXTEND_HELP_STRING([Video plugins:])
3133 AC_CHECK_HEADERS(X11/Xlib.h)
3136 dnl X C Bindings modules
3139 [ --enable-xcb X11 support with XCB (default enabled)],, [
3140 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
3146 AC_ARG_ENABLE(xvideo,
3147 [ --enable-xvideo XVideo support (default enabled)],, [
3148 enable_xvideo="$enable_xcb"
3152 AS_IF([test "${enable_xcb}" != "no"], [
3154 PKG_CHECK_MODULES(XCB, [xcb])
3156 PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3158 AS_IF([test "${enable_xvideo}" != "no"], [
3159 PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3160 VLC_ADD_PLUGIN([xcb_xv])
3164 PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3165 VLC_ADD_PLUGIN([panoramix])
3166 VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3167 VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3169 AC_MSG_WARN([libxcb-randr not found. Panoramix filter will not be supported.])
3173 PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
3174 PKG_CHECK_MODULES(XPROTO, [xproto])
3175 VLC_ADD_PLUGIN([globalhotkeys])
3176 VLC_ADD_CFLAGS([globalhotkeys], [${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}])
3177 VLC_ADD_LIBS([globalhotkeys], [${XCB_KEYSYMS_LIBS} ${XCB_LIBS}])
3178 VLC_ADD_CFLAGS([xcb_window], [-DHAVE_XCB_KEYSYMS])
3180 AC_MSG_WARN([libxcb-keysyms (0.3.4 or later) not found. Hotkeys will not work.])
3183 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3186 [ --enable-glx X11 OpenGL (GLX) support (default enabled)],, [
3187 enable_glx="$enable_xcb"
3189 AS_IF([test "${enable_glx}" != "no"], [
3190 PKG_CHECK_MODULES(XLIB_XCB, [x11-xcb])
3191 PKG_CHECK_MODULES(GL, [gl],, [
3192 AC_CHECK_HEADER([GL/gl.h], [
3196 AC_MSG_ERROR([GLX (libGL) cannot be found. If you do not need OpenGL with X11, use --disable-glx.])
3199 VLC_ADD_PLUGIN([xcb_glx])
3205 PKG_ENABLE_MODULES_VLC([GL], [], [gl], [OpenGL support], [auto])
3206 PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [auto])
3207 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [auto])
3208 PKG_ENABLE_MODULES_VLC([EGL], [], [egl], [EGL support], [auto])
3214 [ --enable-sdl SDL support (default enabled)])
3215 AC_ARG_ENABLE(sdl-image,
3216 [ --enable-sdl-image SDL image support (default enabled)])
3217 if test "${enable_sdl}" != "no"
3219 PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3220 # SDL on Darwin is heavily patched and can only run SDL_image
3221 if test "${SYS}" != "darwin"; then
3222 VLC_ADD_PLUGIN([vout_sdl aout_sdl])
3224 if test "${SYS}" != "mingw32"; then
3225 VLC_ADD_LIBS([vout_sdl],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3227 VLC_ADD_CFLAGS([vout_sdl aout_sdl],[${SDL_CFLAGS}])
3228 VLC_ADD_LIBS([vout_sdl aout_sdl],[${SDL_LIBS}])
3231 AS_IF([ test "${enable_sdl_image}" != "no"],[
3232 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3233 VLC_ADD_PLUGIN([sdl_image])
3234 VLC_ADD_LIBS([sdl_image],[${SDL_IMAGE_LIBS}])
3235 VLC_ADD_CFLAGS([sdl_image], [${SDL_IMAGE_CFLAGS}])],
3236 [ AC_MSG_WARN([The development package for SDL_image is not installed.
3237 You should install it alongside your SDL package.])
3241 AC_MSG_WARN([The development package for SDL is not present or too old.
3242 You need 1.2.10. Alternatively you can also configure with
3250 AC_ARG_ENABLE(freetype,
3251 [ --enable-freetype freetype support (default auto)])
3252 AC_ARG_ENABLE(fribidi,
3253 [ --enable-fribidi fribidi support (default auto)])
3254 AC_ARG_ENABLE(fontconfig,
3255 [ --enable-fontconfig fontconfig support (default auto)])
3257 if test "${enable_freetype}" != "no"; then
3258 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3260 VLC_ADD_PLUGIN([freetype])
3261 VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3262 if test "${SYS}" = "mingw32"; then
3263 VLC_ADD_LIBS([freetype],[-liconv -lz])
3265 VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3267 AC_CHECK_HEADERS(Carbon/Carbon.h,
3268 [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
3270 dnl fontconfig support
3271 if test "${SYS}" != "mingw32"; then
3272 if test "${enable_fontconfig}" != "no"; then
3273 AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3274 VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3275 VLC_ADD_LIBS([freetype],[-lfontconfig])
3276 ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3279 VLC_ADD_LIBS([freetype],[-lgdi32])
3283 if test "${enable_fribidi}" != "no"; then
3284 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3285 VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3286 VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3287 ],[AC_MSG_WARN([library fribidi not found. Bidirectional support will be disabled in freetype])])
3292 AS_IF([ test "${enable_freetype}" = "yes"],[
3293 AC_MSG_ERROR([Freetype2 package cannot be detected. Install Freetype2 development or configure with --disable-freetype.])
3301 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3306 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3311 AC_ARG_ENABLE(ios-vout,
3312 [ --enable-ios-vout iOS video output module (default disabled)])
3313 if test "${enable_ios_vout}" = "yes"
3315 VLC_ADD_PLUGIN([vout_ios])
3316 VLC_ADD_CFLAGS([vout_ios], [-DUSE_OPENGL_ES=1])
3317 VLC_ADD_LDFLAGS([vout_ios], [-Wl,-framework,OpenGLES,-framework,QuartzCore,-framework,UIKit,-framework,Foundation])
3321 dnl QuartzText vout module (iOS/Mac OS)
3323 AC_ARG_ENABLE(macosx-quartztext,
3324 [ --enable-macosx-quartztext Mac OS X quartz text module (default enabled on Mac OS X)])
3325 if test "x${enable_macosx_quartztext}" != "xno" &&
3326 (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3328 VLC_ADD_PLUGIN([quartztext])
3329 VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,ApplicationServices])
3333 dnl Windows DirectX module
3336 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3338 VLC_ADD_PLUGIN([panoramix])
3341 AC_ARG_ENABLE(directx,
3342 [ --enable-directx Win32 DirectX support (default enabled on Win32)])
3343 if test "${enable_directx}" != "no"
3345 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3347 VLC_ADD_LIBS([directx],[-luser32])
3348 AC_CHECK_HEADERS(ddraw.h,
3349 [ VLC_ADD_PLUGIN([directx aout_directx])
3350 VLC_ADD_LIBS([directx],[-lgdi32])
3351 ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3353 AC_CHECK_HEADERS(GL/gl.h,
3354 [ VLC_ADD_PLUGIN([glwin32])
3355 VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3357 AC_CHECK_HEADERS(d3d9.h,
3358 [ VLC_ADD_PLUGIN([direct3d])
3359 VLC_ADD_LIBS([direct3d],[-lgdi32])
3361 VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3366 dnl Windows Direct2D plugin
3368 AC_ARG_ENABLE(direct2d,
3369 [ --enable-direct2d Win7/VistaPU Direct2D support (default auto on Win32)])
3370 if test "${enable_direct2d}" != "no"; then
3371 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3373 AC_CHECK_HEADERS(d2d1.h,
3375 VLC_ADD_PLUGIN([direct2d])
3376 VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32])
3377 ], [AC_MSG_WARN([Cannot find Direct2D headers!])]
3383 dnl win32 GDI plugin
3385 AC_ARG_ENABLE(wingdi,
3386 [ --enable-wingdi Win32 GDI module (default enabled on Win32)])
3387 if test "${enable_wingdi}" != "no"; then
3388 if test "${SYS}" = "mingw32"; then
3389 VLC_ADD_PLUGIN([wingdi])
3390 VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3392 if test "${SYS}" = "mingwce"; then
3393 VLC_ADD_PLUGIN([wingdi wingapi])
3394 VLC_ADD_LIBS([wingdi],[-laygshell])
3395 VLC_ADD_LIBS([wingapi],[-laygshell])
3401 dnl Linux framebuffer module
3403 AC_CHECK_HEADER([linux/fb.h], [
3404 VLC_ADD_PLUGIN([fb])
3410 dnl try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3411 dnl TODO: support for static linking
3413 AC_ARG_ENABLE(directfb,
3414 [ --enable-directfb DirectFB support (default disabled)])
3415 AC_ARG_WITH(directfb,
3416 [ --with-directfb=PATH path to DirectFB headers and libraries])
3418 if test "${enable_directfb}" = "yes"; then
3419 have_directfb="false"
3420 CPPFLAGS_mydirectfb=
3422 if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3423 dnl Trying the given location
3424 CPPFLAGS_save="${CPPFLAGS}"
3427 CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3428 LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
3429 LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
3431 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3432 LIBS="${LIBS} ${LIBS_new}"
3434 dnl FIXME: too obscure
3435 AC_CHECK_HEADER([directfb.h], [
3436 AC_CHECK_LIB([direct],[direct_initialize], [
3437 AC_CHECK_LIB([fusion], [fusion_enter], [
3438 AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3439 ], have_directfb="false")
3440 ], have_directfb="false")
3441 ], have_directfb="false")
3444 CPPFLAGS="${CPPFLAGS_save}"
3447 if test "${have_directfb}" = "true"; then
3448 LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3449 CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3452 dnl Look for directfb-config
3453 AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3454 if test "${DIRECTFB_CONFIG}" != "no"; then
3455 CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3456 LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3457 have_directfb="true"
3459 dnl Trying with pkg-config
3460 PKG_CHECK_MODULES(DIRECTFB, directfb, [
3461 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3462 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3463 have_directfb="true"
3464 ], [have_directfb="false"])
3467 if test "${have_directfb}" = "true"; then
3468 VLC_ADD_PLUGIN([directfb])
3469 VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3470 VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3472 AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
3480 [ --enable-aa aalib output (default disabled)])
3481 if test "${enable_aa}" = "yes"
3483 AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3484 if test "${have_aa}" = "true"
3486 VLC_ADD_PLUGIN([aa])
3487 VLC_ADD_LIBS([aa],[-laa])
3488 if test "${SYS}" != "mingw32"; then
3489 VLC_ADD_LIBS([aa],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3497 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3503 EXTEND_HELP_STRING([Audio plugins:])
3506 dnl Pulseaudio module
3508 AC_ARG_ENABLE(pulse,
3509 [AS_HELP_STRING([--enable-pulse],
3510 [use the PulseAudio client library (default auto)])])
3512 AS_IF([test "${enable_pulse}" != "no"], [
3513 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.22], [
3516 AS_IF([test "x${enable_pulse}" != "x"], [
3517 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 0.9.22 or later required.])
3521 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3527 [AS_HELP_STRING([--enable-alsa],
3528 [support the Advanced Linux Sound Architecture (default auto)])],, [
3529 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3534 AS_IF([test "${enable_alsa}" != "no"], [
3535 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.16], [
3538 AS_IF([test "x${enable_alsa}" != "x"], [
3539 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.16 or later required.])
3543 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3546 dnl Open Sound System module
3549 [AS_HELP_STRING([--enable-oss],
3550 [support the Open Sound System OSS (default enabled on BSD)])],, [
3551 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "mingwce" -o "$SYS" = "linux"], [
3557 AS_IF([test "$enable_oss" != "no"], [
3558 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3560 AC_CHECK_LIB(ossaudio, main, [
3561 OSS_LIBS="-lossaudio"
3566 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3569 dnl Portaudio module
3571 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
3574 dnl win32 waveOut plugin
3576 AC_ARG_ENABLE(waveout,
3577 [ --enable-waveout Win32 waveOut module (default enabled on Win32)])
3578 if test "${enable_waveout}" != "no"; then
3579 if test "${SYS}" = "mingw32"; then
3580 VLC_ADD_PLUGIN([waveout])
3581 VLC_ADD_LIBS([waveout],[-lwinmm])
3583 if test "${SYS}" = "mingwce"; then
3584 VLC_ADD_PLUGIN([waveout])
3589 dnl CoreAudio plugin
3591 AC_ARG_ENABLE(macosx-audio,
3592 [ --enable-macosx-audio Mac OS X audio module (default enabled on MacOS X)])
3593 if test "x${enable_macosx_audio}" != "xno" &&
3594 (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
3596 AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
3597 [ VLC_ADD_PLUGIN([auhal])
3598 VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
3599 ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3603 dnl AudioQueue plugin
3605 AC_ARG_ENABLE(audioqueue,
3606 [ --enable-audioqueue AudioQueue audio module (default disabled)])
3607 if test "${enable_audioqueue}" = "yes"
3609 VLC_ADD_PLUGIN([audioqueue])
3610 VLC_ADD_LDFLAGS([audioqueue], [-Wl,-framework,AudioToolbox,-framework,CoreFoundation])
3616 PKG_ENABLE_MODULES_VLC([JACK], [jack access_jack], [jack], [JACK audio I/O modules],[auto])
3619 dnl UPnP Plugin (Intel SDK)
3621 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPnp SDK],[auto])
3622 VLC_ADD_CXXFLAGS([upnp],[${UPNP_CFLAGS}])
3625 dnl Interface plugins
3628 EXTEND_HELP_STRING([Interface plugins:])
3633 AC_ARG_ENABLE(libtar,
3634 [ --enable-libtar libtar support for skins2 (default auto)])
3635 AS_IF([test "${enable_libtar}" != "no"], [
3636 AC_CHECK_HEADERS(libtar.h, [
3637 VLC_ADD_LIBS([skins2],[-ltar])
3641 AC_ARG_ENABLE(skins2,
3642 [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
3643 enabled except on MacOSX and WinCE)])],, [
3644 AS_IF([test "${SYS}" != "darwin" && test "${SYS}" != "mingwce"], [
3650 AS_IF([test "${enable_skins2}" = "yes"], [
3652 AS_IF([test "${have_freetype}" != "yes"], [
3653 AC_MSG_ERROR([Could not find FreeType (required for skins2)])
3656 AS_IF([test "${SYS}" = "mingw32"], [
3657 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
3658 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3659 VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32 -lmsimg32 -luser32])
3661 ], [test "${SYS}" = "darwin"], [
3662 VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
3663 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3664 VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
3667 PKG_CHECK_MODULES([XPM], [xpm])
3668 PKG_CHECK_MODULES([XEXT], [xext])
3669 VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3670 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3671 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} -lX11])
3674 VLC_ADD_PLUGIN([skins2])
3675 ALIASES="${ALIASES} svlc"
3677 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3682 AC_ARG_ENABLE(hildon,
3683 [ --enable-hildon Hildon touchscreen UI (default disabled)])
3684 AS_IF([test "${enable_hildon}" = "yes"], [
3685 PKG_CHECK_MODULES(HILDON, [hildon-1], [
3686 PKG_CHECK_MODULES(HILDON_FM, hildon-fm-2, [
3687 VLC_ADD_CFLAGS([hildon],[${HILDON_FM_CFLAGS} -DHAVE_HILDON_FM])
3688 VLC_ADD_LIBS([hildon],[${HILDON_FM_LIBS}])
3690 AC_MSG_WARN(hildon-fm-2 not found)
3692 VLC_ADD_CFLAGS([hildon],[${HILDON_CFLAGS} ${X_CFLAGS}])
3693 VLC_ADD_LIBS([hildon],[${HILDON_LIBS} ${X_LIBS} ${X_PRE_LIBS} -lX11])
3694 VLC_ADD_PLUGIN([hildon])
3695 ALIASES="${ALIASES} mvlc"
3697 AS_IF([test "${enable_hildon}" = "yes"],[
3698 AC_MSG_ERROR([Hildon libraries not found])
3703 AM_CONDITIONAL(BUILD_HILDON, [test "${enable_hildon}" = "yes"])
3709 [ --enable-qt4 Qt 4 support (default enabled) ],, [
3710 AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
3712 AS_IF([test "${enable_qt4}" != "no"], [
3713 PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
3714 VLC_ADD_PLUGIN([qt4])
3715 VLC_ADD_LIBS([qt4],[${QT4_LIBS}])
3716 VLC_ADD_CXXFLAGS([qt4],[${QT4_CFLAGS}])
3717 ALIASES="${ALIASES} qvlc"
3720 CPPFLAGS_save="${CPPFLAGS}"
3722 AC_MSG_CHECKING([whether Qt uses X11])
3723 CPPFLAGS="${CPPFLAGS} ${QT4_CFLAGS}"
3724 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
3726 #if !defined (Q_WS_X11)
3730 AC_MSG_RESULT([yes])
3731 VLC_ADD_LIBS([qt4],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3732 VLC_ADD_CXXFLAGS([qt4],[${X_CFLAGS}])
3737 CPPFLAGS="${CPPFLAGS_save}"
3740 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
3741 VLC_ADD_LIBS([qt4],[-lole32])
3743 AS_IF([test "${SYS}" = "darwin" ],[
3744 VLC_ADD_LDFLAGS([qt4], [-Wl,-framework,Cocoa])
3746 AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3747 AC_PATH_PROG(RCC, rcc, rcc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3748 AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3750 AS_IF([test "${enable_qt4}" = "yes"],[
3751 AC_MSG_ERROR([Qt 4 library not found])
3753 AC_MSG_WARN([Qt 4 library not found])
3758 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
3761 dnl Simple test for skins2 dependency
3763 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
3764 AC_MSG_ERROR([The skins2 module depends on a the Qt4 development package. Without it you won't 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.])
3768 dnl MacOS X video output/gui modules
3770 AC_ARG_ENABLE(macosx,
3771 [ --enable-macosx Mac OS X gui support (default enabled on Mac OS X)])
3772 if test "x${enable_macosx}" = "xyes"
3774 VLC_ADD_LDFLAGS([macosx minimal_macosx],[-Wl,-framework,Cocoa])
3775 VLC_ADD_LDFLAGS([macosx minimal_macosx],[-Wl,-framework,OpenGL])
3776 VLC_ADD_LDFLAGS([macosx minimal_macosx], [-Wl,-framework,Carbon])
3777 VLC_ADD_LDFLAGS([macosx minimal_macosx], [-Wl,-framework,CoreServices])
3778 VLC_ADD_LDFLAGS([macosx minimal_macosx], [-Wl,-framework,AGL])
3779 VLC_ADD_LDFLAGS([macosx], [-Wl,-framework,QTKit])
3780 VLC_ADD_LDFLAGS([macosx], [-Wl,-framework,IOKit])
3781 VLC_ADD_LDFLAGS([macosx], [-F${CONTRIB_DIR}/Sparkle -Wl,-framework,Sparkle])
3782 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}/Sparkle])
3783 VLC_ADD_LDFLAGS([macosx], [-F${CONTRIB_DIR}/BGHUDAppKit -Wl,-framework,BGHUDAppKit])
3784 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}/BGHUDAppKit])
3786 VLC_ADD_LDFLAGS([macosx], [-Wl,-framework,AddressBook])
3787 VLC_ADD_LDFLAGS([macosx], [-Wl,-framework,WebKit])
3788 VLC_ADD_OBJCFLAGS([macosx minimal_macosx], [-fobjc-exceptions] )
3790 VLC_ADD_PLUGIN([macosx minimal_macosx])
3794 dnl MacOS X related modules
3797 AC_ARG_ENABLE(macosx-vout,
3798 [ --enable-macosx-vout Mac OS X video output module (default enabled on Mac OS X)])
3799 if test "x${enable_macosx_vout}" != "xno" &&
3800 (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
3802 VLC_ADD_LDFLAGS([vout_macosx],[-Wl,-framework,Cocoa])
3803 VLC_ADD_LDFLAGS([vout_macosx],[-Wl,-framework,OpenGL])
3804 VLC_ADD_PLUGIN([vout_macosx])
3807 AC_ARG_ENABLE(macosx-dialog-provider,
3808 [ --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3809 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3810 (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3812 VLC_ADD_LDFLAGS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3813 VLC_ADD_PLUGIN([macosx_dialog_provider])
3816 AC_ARG_ENABLE(macosx-qtcapture,
3817 [ --enable-macosx-qtcapture Mac OS X qtcapture (iSight) module (default enabled on Mac OS X)])
3818 if test "x${enable_macosx_qtcapture}" != "xno" &&
3819 (test "${SYS}" = "darwin" || test "${enable_macosx_qtcapture}" = "yes")
3821 VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,Cocoa])
3822 VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,QTKit])
3823 VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,CoreAudio])
3824 VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,QuartzCore])
3825 VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,CoreVideo])
3826 VLC_ADD_PLUGIN([qtcapture])
3829 AC_ARG_ENABLE(macosx-eyetv,
3830 [ --enable-macosx-eyetv Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
3831 if test "x${enable_macosx_eyetv}" != "xno" &&
3832 (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
3834 VLC_ADD_LDFLAGS([access_eyetv], [-Wl,-framework,Foundation])
3835 VLC_ADD_PLUGIN([access_eyetv])
3838 AC_ARG_ENABLE(macosx-vlc-app,
3839 [ --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
3840 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
3841 (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
3846 AC_ARG_ENABLE(ncurses,
3847 [ --disable-ncurses ncurses interface support (default disabled)],
3848 [if test "${enable_ncurses}" != "no"; then
3849 AC_CHECK_HEADER(ncurses.h,
3850 [AC_CHECK_LIB(ncursesw, mvprintw,
3851 [VLC_ADD_PLUGIN([ncurses])
3852 VLC_ADD_LIBS([ncurses],[-lncursesw])
3853 ALIASES="${ALIASES} nvlc"
3854 AC_CHECK_LIB(ncursesw, tgetent, [],
3855 AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
3856 [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
3857 [AS_IF([test "${enable_ncurses}" = "yes"],
3858 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
3864 [AS_IF([test "${enable_ncurses}" = "yes"], [
3865 AC_MSG_ERROR([libncursesw not found])])]
3867 [AS_IF([test "${enable_ncurses}" = "yes"], [
3868 AC_MSG_ERROR([ncurses.h not found])])]
3877 [ --enable-xosd xosd interface support (default disabled)])
3878 if test "${enable_xosd}" = "yes"
3880 AC_CHECK_HEADERS(xosd.h,
3881 AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
3882 VLC_ADD_PLUGIN([xosd])
3883 VLC_ADD_LIBS([xosd],[-lxosd])
3889 dnl Framebuffer (overlay) plugin
3891 AC_ARG_ENABLE(fbosd,
3892 [ --enable-fbosd fbosd interface support (default disabled)])
3893 if test "${enable_fbosd}" = "yes"
3895 AC_CHECK_HEADERS(linux/fb.h, [
3896 VLC_ADD_PLUGIN([fbosd])
3901 dnl Visualisation plugin
3903 AC_ARG_ENABLE(visual,
3904 [ --enable-visual visualisation plugin (default enabled)])
3905 if test "${enable_visual}" != "no"
3907 VLC_ADD_PLUGIN([visual])
3911 dnl goom visualization plugin
3913 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3916 dnl libprojectM visualization plugin
3918 AC_ARG_ENABLE(projectm,
3919 [ --enable-projectm projectM visualization plugin (default enabled)])
3920 AS_IF([test "${enable_projectm}" != "no"],
3922 PKG_CHECK_MODULES(PROJECTM, libprojectM,
3924 VLC_ADD_PLUGIN([projectm])
3925 VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
3926 VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
3927 PKG_CHECK_MODULES(PROJECTM2, [libprojectM >= 2.0.0],
3928 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3929 [ AC_MSG_WARN( [Using libprojectM version 1] )
3932 AC_MSG_WARN([libprojectM library not found])
3937 dnl AtmoLight (homemade Philips Ambilight clone)
3940 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
3941 (default enabled)]),, [enable_atmo="yes"])
3942 AS_IF([test "${enable_atmo}" != no], [
3943 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
3945 VLC_ADD_PLUGIN([atmo])
3951 dnl Bonjour services discovery
3952 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
3955 dnl libudev services discovery
3956 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
3959 dnl MTP devices services discovery
3960 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
3966 [ --enable-lirc lirc support (default disabled)])
3967 if test "${enable_lirc}" = "yes"
3969 AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3970 if test "${have_lirc}" = "true"
3972 VLC_ADD_PLUGIN([lirc])
3973 VLC_ADD_LIBS([lirc],[-llirc_client])
3977 EXTEND_HELP_STRING([Misc options:])
3982 AC_ARG_ENABLE(libgcrypt,
3983 [ --disable-libgcrypt gcrypt support (default enabled)])
3984 AS_IF([test "${enable_libgcrypt}" != "no"], [
3985 AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
3986 libgcrypt-config --version >/dev/null || \
3987 AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
3988 AC_CHECK_LIB(gcrypt, gcry_control, [
3989 have_libgcrypt="yes"
3990 GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
3991 GCRYPT_LIBS="`libgcrypt-config --libs`"
3993 AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3994 ], [`libgcrypt-config --libs`])
3996 AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3997 ], [#include <gcrypt.h>]
4001 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
4002 AS_IF([test "${have_libgcrypt}" = "yes"],[
4003 VLC_ADD_LIBS([rtp stream_out_rtp], [${GCRYPT_LIBS}])
4006 AC_SUBST(GCRYPT_CFLAGS)
4007 AC_SUBST(GCRYPT_LIBS)
4008 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
4013 AC_ARG_ENABLE(gnutls,
4014 [ --enable-gnutls GNU TLS TLS/SSL support (default enabled)])
4016 AS_IF([test "${have_libgcrypt}" != "yes"], [
4017 AS_IF([test "${enable_gnutls}" = "yes"], [
4018 AC_MSG_ERROR([--enable-gnutls and --disable-libgcrypt are mutually exclusive.])
4022 AS_IF([test "${enable_gnutls}" != "no"], [
4023 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 2.0.0], [
4024 VLC_ADD_PLUGIN([gnutls])
4025 VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
4026 AS_IF([test "${SYS}" = "mingw32"], [
4027 dnl pkg-config --libs gnutls omits these
4028 VLC_ADD_LIBS([gnutls], [-lz ${LTLIBINTL}])
4030 VLC_ADD_LIBS([gnutls], [${GCRYPT_LIBS}])
4031 VLC_ADD_CFLAGS([gnutls], [${GCRYPT_CFLAGS}])
4032 VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
4034 AS_IF([test "${enable_gnutls}" = "yes"], [
4035 AC_MSG_ERROR([GNU TLS not present or too old (version 2.0.0 required)])
4042 dnl RemoteOSD plugin (VNC client as video filter)
4044 AC_MSG_CHECKING([whether to enable the RemoteOSD plugin])
4045 AS_IF([test "${have_libgcrypt}" = "yes"],[
4047 VLC_ADD_PLUGIN([remoteosd])
4048 VLC_ADD_LIBS([remoteosd], ${GCRYPT_LIBS})
4049 VLC_ADD_CFLAGS([remoteosd], ${GCRYPT_CFLAGS})
4052 AC_MSG_WARN([libgcrypt support required for RemoteOSD plugin])
4059 AC_MSG_CHECKING([whether to enable the RAOP plugin])
4060 AS_IF([test "${have_libgcrypt}" = "yes"], [
4062 VLC_ADD_PLUGIN([stream_out_raop])
4063 VLC_ADD_LIBS([stream_out_raop], [${GCRYPT_LIBS} -lgpg-error])
4064 VLC_ADD_CFLAGS([stream_out_raop], [${GCRYPT_CFLAGS}])
4067 AC_MSG_WARN([libgcrypt support required for RAOP plugin])
4072 dnl OSSO (Maemo screen blanking) plugin
4074 PKG_ENABLE_MODULES_VLC([OSSO_SCREENSAVER], [], [libosso], [Maemo support], [auto])
4076 AS_IF([test -f "/etc/maemo_version"], [
4077 AC_DEFINE([HAVE_MAEMO], 1, [Define to 1 if building for the Maemo platform.])
4082 dnl update checking system
4084 AC_ARG_ENABLE(update-check,
4085 [ --enable-update-check update checking system (default disabled)])
4086 if test "${enable_update_check}" = "yes"
4088 if test "${have_libgcrypt}" != "yes"
4090 AC_MSG_ERROR([libgcrypt is required for update checking system])
4092 VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
4093 VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
4094 AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4101 [ --with-sqlite=PATH sqlite path linking])
4102 if test "${SYS}" != "darwin"; then
4103 PKG_ENABLE_MODULES_VLC([SQLITE], [], [sqlite3 >= 3.6.0], [sqlite3], [auto])
4105 if test "${enable_sqlite}" != "no"
4107 AC_CHECK_HEADERS(sqlite3.h, [
4108 VLC_ADD_PLUGIN([sqlite])
4109 if test "${with_sqlite}" != "no" -a -n "${with_sqlite}"; then
4110 AC_MSG_CHECKING(existence of sqlite directory in ${with_sqlite})
4111 real_sqlite="`cd ${with_sqlite} 2>/dev/null && pwd`"
4112 if test -z "${real_sqlite}"
4114 dnl The given directory can't be found
4116 AC_MSG_ERROR([cannot cd to ${with_sqlite}])
4118 VLC_ADD_CFLAGS([sqlite],[-I${with_sqlite}/include])
4119 VLC_ADD_LIBS([sqlite], [-L${with_sqlite}/lib -lsqlite3])
4122 VLC_ADD_LIBS([sqlite], [-lsqlite3])
4124 AC_DEFINE([SQLITE_MODULE], 1, [Define if you want to use SQLite module]) ],
4125 AC_MSG_ERROR([sqlite3 is required for sqlite module]) )
4128 AM_CONDITIONAL([HAVE_SQLITE], [test "${enable_sqlite}" != "no"])
4133 AC_ARG_ENABLE(media-library, [--enable-media-library media library (default disabled)])
4134 if test "${enable_media_library}" == "yes"; then
4135 if test "${enable_sqlite}" != "yes"; then
4136 AC_MSG_ERROR([SQLite module is required for the media library])
4138 AC_DEFINE([MEDIA_LIBRARY], 1, [Define if you want to use the VLC media library])
4139 VLC_ADD_CPPFLAGS([qt4],"-DMEDIA_LIBRARY")
4140 VLC_ADD_PLUGIN([media_library])
4143 AM_CONDITIONAL([ENABLE_MEDIA_LIBRARY], [test "${enable_media_library}" = "yes"])
4146 dnl Endianness check
4149 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4150 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4154 AC_SUBST(DEFS_BIGENDIAN)
4157 dnl Where to install KDE solid .desktop
4159 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4160 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4161 KDE4_CONFIG="kde4-config"
4164 AC_ARG_WITH(kde-solid,
4165 AS_HELP_STRING([--with-kde-solid=PATH],
4166 [KDE Solid actions directory (auto)]),, [
4168 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ; then
4169 with_kde_solid="yes"
4173 AS_IF([test "${with_kde_solid}" != "no"], [
4174 AS_IF([test "${with_kde_solid}" = "yes"], [
4175 kde4datadir="`${KDE4_CONFIG} --install data`"
4176 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4177 soliddatadir="${kde4datadir}/solid/actions"
4179 soliddatadir="${with_kde_solid}"
4182 AC_SUBST(soliddatadir)
4183 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4186 dnl DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4189 AC_ARG_ENABLE(loader,
4190 AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4191 (default disabled)]))
4192 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4193 AS_IF([test "${enable_loader}" = "yes"],
4194 [ VLC_ADD_PLUGIN([dmo])
4195 VLC_ADD_CPPFLAGS([dmo quicktime realvideo],[-I\\\${top_srcdir}/libs/loader])
4196 VLC_ADD_LIBS([dmo quicktime realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
4197 VLC_ADD_CPPFLAGS([realvideo], [-DLOADER])
4198 VLC_ADD_LIBS([dmo quicktime], [-lpthread])
4201 EXTEND_HELP_STRING([Components:])
4207 [ --enable-vlc build the VLC media player (default enabled)])
4208 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4212 dnl Plugin and builtin checks
4216 dnl Automagically disable plugins if there is no system support for
4217 dnl dynamically loadable files (.so, .dll, .dylib).
4218 dnl don't forget vlc-win32 still can load .dll as plugins
4219 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
4220 AC_MSG_WARN([*** No plugin support! Building statically! ***])
4224 AS_IF([test "${plugin_support}" != "no"], [
4225 AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
4229 dnl Pic and shared libvlc stuff
4231 AS_IF([test "${SYS}" = "mingw32"], [
4232 FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
4233 FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
4237 dnl Stuff used by the program
4239 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4240 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4241 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4242 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4243 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4244 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4245 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
4246 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
4247 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
4248 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
4249 AC_SUBST(COPYRIGHT_MESSAGE)
4250 AC_SUBST(VERSION_MESSAGE)
4251 AC_SUBST(VERSION_MAJOR)
4252 AC_SUBST(VERSION_MINOR)
4253 AC_SUBST(VERSION_REVISION)
4254 AC_SUBST(VERSION_EXTRA)
4255 AC_SUBST(COPYRIGHT_YEARS)
4256 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
4257 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4258 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
4259 dnl Win32 need s a numerical version_extra.
4260 case $( echo ${VERSION_EXTRA}|wc -m ) in
4261 "1") VERSION_EXTRA_RC="0";;
4262 "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
4263 *) VERSION_EXTRA_RC="99"
4265 AC_SUBST(VERSION_EXTRA_RC)
4267 dnl Handle substvars that use $(top_srcdir)
4269 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
4270 AC_SUBST(VLC_CONFIG)
4271 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
4279 dnl Sort the modules list
4281 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
4284 dnl Create the vlc-config script
4286 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
4289 dnl Configuration is finished
4299 AC_SUBST(WINE_SDK_PATH)
4301 AC_SUBST(AM_CPPFLAGS)
4302 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4303 AC_SUBST(FILE_LIBVLCCORE_DLL)
4304 AC_SUBST(FILE_LIBVLC_DLL)
4306 dnl Create vlc-config.in
4307 VLC_OUTPUT_VLC_CONFIG_IN
4312 libs/loader/Makefile
4324 modules/access/Makefile
4325 modules/access/bd/Makefile
4326 modules/access/dshow/Makefile
4327 modules/access/mms/Makefile
4328 modules/access/rtp/Makefile
4329 modules/access/rtsp/Makefile
4330 modules/access/vcd/Makefile
4331 modules/access/vcdx/Makefile
4332 modules/access/screen/Makefile
4333 modules/access/zip/Makefile
4334 modules/access_output/Makefile
4335 modules/audio_filter/Makefile
4336 modules/audio_mixer/Makefile
4337 modules/audio_output/Makefile
4338 modules/codec/Makefile
4339 modules/codec/avcodec/Makefile
4340 modules/codec/dmo/Makefile
4341 modules/codec/omxil/Makefile
4342 modules/codec/shine/Makefile
4343 modules/codec/spudec/Makefile
4344 modules/codec/wmafixed/Makefile
4345 modules/control/Makefile
4346 modules/control/dbus/Makefile
4347 modules/control/globalhotkeys/Makefile
4348 modules/demux/Makefile
4349 modules/demux/asf/Makefile
4350 modules/demux/avformat/Makefile
4351 modules/demux/avi/Makefile
4352 modules/demux/mkv/Makefile
4353 modules/demux/mp4/Makefile
4354 modules/demux/mpeg/Makefile
4355 modules/demux/playlist/Makefile
4356 modules/gui/Makefile
4357 modules/gui/macosx/Makefile
4358 modules/gui/hildon/Makefile
4359 modules/gui/minimal_macosx/Makefile
4360 modules/gui/macosx_dialog_provider/Makefile
4361 modules/gui/qt4/Makefile
4362 modules/gui/skins2/Makefile
4363 modules/lua/Makefile
4364 modules/meta_engine/Makefile
4365 modules/misc/Makefile
4366 modules/misc/dummy/Makefile
4367 modules/misc/notify/Makefile
4368 modules/misc/playlist/Makefile
4369 modules/misc/osd/Makefile
4370 modules/misc/stats/Makefile
4371 modules/media_library/Makefile
4372 modules/mux/Makefile
4373 modules/mux/mpeg/Makefile
4374 modules/packetizer/Makefile
4375 modules/services_discovery/Makefile
4376 modules/stream_filter/Makefile
4377 modules/stream_out/Makefile
4378 modules/stream_out/transcode/Makefile
4379 modules/video_chroma/Makefile
4380 modules/video_filter/Makefile
4381 modules/video_filter/dynamicoverlay/Makefile
4382 modules/video_output/Makefile
4383 modules/video_output/msw/Makefile
4384 modules/visualization/Makefile
4385 modules/visualization/visual/Makefile
4386 modules/mmx/Makefile
4387 modules/mmxext/Makefile
4388 modules/3dnow/Makefile
4389 modules/sse2/Makefile
4390 modules/altivec/Makefile
4391 modules/arm_neon/Makefile
4394 AM_COND_IF([HAVE_WIN32], [
4396 extras/package/win32/spad.nsi
4397 extras/package/win32/vlc.win32.nsi
4401 AM_COND_IF([HAVE_DARWIN], [
4403 extras/package/macosx/Info.plist
4404 extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4408 dnl Generate makefiles
4411 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
4412 # not provided with the source
4413 ${SHELL} ./config.status --file=vlc-config
4414 chmod 0755 vlc-config
4416 /bin/echo -n "Enabled modules: "
4417 ./vlc-config --list plugin
4419 dnl Do we have to use make or gmake ?
4420 USE_MAKE_OR_GMAKE=`case "${SYS}" in openbsd*) echo "gmake";; *) echo "make";; esac`
4421 dnl Shortcut to nice compile message
4423 if test -n $SHELL; then
4424 SHELL=${CONFIG_SHELL-/bin/sh}
4426 echo '#! '$SHELL >compile
4427 echo rm -f .error\$\$ >>compile
4428 echo ERROR=0 >>compile
4429 echo export PATH=$PATH LANG=C >>compile
4430 echo "($USE_MAKE_OR_GMAKE V=1 \$@ 2>&1 || touch .error\$\$)| \\" >>compile
4431 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
4432 echo test -f .error\$\$ \&\& ERROR=1 >>compile
4433 echo rm -f .error\$\$ >>compile
4434 echo exit \$ERROR >>compile
4438 libvlc configuration
4439 --------------------
4440 version : ${VERSION}
4442 architecture : ${ARCH}
4444 test "${enable_optimizations}" != "no" && printf ${enable_optimizations}
4446 if test "${enable_vlc}" != "no"; then
4447 echo "vlc aliases :${ALIASES}"
4449 echo "build vlc executable : no"
4451 echo "plugins/bindings :${PLUGINS_BINDINGS}
4453 You can tune the compiler flags in vlc-config.
4454 To build vlc and its plugins, type \`./compile' or \`$USE_MAKE_OR_GMAKE'.
4456 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
4458 echo "Warning: Due to a bug in ld, mmx/sse support has been"
4460 echo " FFmpeg will be REALLY slow."
4461 echo " VLC WILL NOT PERFORM AS EXPECTED."