# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
-AC_INIT([xbmc], [12.9.4], [http://trac.xbmc.org])
+AC_INIT([xbmc], [12.9.5], [http://trac.xbmc.org])
AC_CONFIG_HEADERS([xbmc/config.h])
AH_TOP([#pragma once])
m4_include([m4/ax_python_devel.m4])
esac
])
+# check for enabling additional codecs
+AC_DEFUN([XB_ADD_CODEC],
+[
+ AC_MSG_CHECKING([for $2])
+ case $add_codecs in
+ *$2*)
+ AC_SUBST([USE_$1], 1)
+ AC_DEFINE([HAS_$1], 1, [using $2])
+ AC_MSG_RESULT([enabling $2])
+ ;;
+ *)
+ AC_MSG_RESULT([$2 is not enabled])
+ esac
+])
+
# check for library basenames
AC_DEFUN([XB_FIND_SONAME],
[
hal_disabled="== HAL support disabled. =="
avahi_not_found="== Could not find libavahi-common or libavahi-client. Avahi support disabled. =="
avahi_disabled="== Avahi support disabled. =="
+mdnsembedded_not_found="== Could not find mDNSEmbedded. Might prevent zeroconf support. =="
+mdnsembedded_disabled="== mDNSEmbedded support disabled. =="
vdpau_not_found="== Could not find libvdpau. VDPAU support disabled. =="
vdpau_disabled="== VDPAU support manually disabled. =="
vaapi_not_found="== Could not find libva. VAAPI support disabled. =="
vaapi_disabled="== VAAPI support manually disabled. =="
crystalhd_not_found="== Could not find libcrystalhd. CrystalHD support disabled. =="
crystalhd_disabled="== CrystalHD support manually disabled. =="
-vdadecoder_enabled="== VDADecoder support enabled. =="
-vdadecoder_disabled="== VDADecoder support manually disabled. =="
vtbdecoder_enabled="== VTBDecoder support enabled. =="
vtbdecoder_disabled="== VTBDecoder support manually disabled. =="
openmax_disabled="== OpenMax support manually disabled. =="
libnfs_disabled="== NFS support disabled. =="
libafpclient_not_found="== Could not find libafpclient. AFP client support disabled. =="
libafpclient_disabled="== AFP support disabled. =="
-libshairport_not_found="== Could not find libshairport. AirTunes support disabled. =="
-libshairport_disabled="== AirTunes support disabled. =="
+libshairport_not_found="== Could not find libshairport. =="
+libshairplay_not_found="== Could not find libshairplay. =="
samba_disabled="== SAMBA support disabled. =="
libplist_not_found="== Could not find libplist. AirPlay support disabled. =="
libplist_disabled="== AirPlay support disabled. =="
[use_crystalhd=$enableval],
[use_crystalhd=auto])
-AC_ARG_ENABLE([vdadecoder],
- [AS_HELP_STRING([--enable-vdadecoder],
- [enable VDADecoder decoding (default is auto)])],
- [use_vdadecoder=$enableval],
- [use_vdadecoder=auto])
-
AC_ARG_ENABLE([vtbdecoder],
[AS_HELP_STRING([--enable-vtbdecoder],
[enable VTBDecoder decoding (default is auto)])],
[disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
[use_avahi=$enableval],
[use_avahi=yes])
+
+ AC_ARG_ENABLE([mdnsembedded],
+ [AS_HELP_STRING([--disable-mdnsembedded],
+ [disable mDNSEmbedded support (default is auto)])],
+ [use_mdnsembedded=$enableval],
+ [use_mdnsembedded=auto])
AC_ARG_ENABLE([non-free],
[AS_HELP_STRING([--disable-non-free],
[configure_gtest=$enableval],
[configure_gtest=no])
+AC_ARG_ENABLE([codec],
+ [AS_HELP_STRING([--enable-codec],
+ [enable additional codecs from a list of comma separated names, (default is none, choices are amcodec)])],
+ [add_codecs=$enableval],
+ [add_codecs=no])
+
### External libraries options
AC_ARG_ENABLE([external-libraries],
[AS_HELP_STRING([--enable-external-libraries],
use_neon=yes
use_libcec=no
use_crystalhd=no
- use_vdadecoder=no
use_vtbdecoder=yes
use_optical_drive=no
use_dvdcss=no
;;
powerpc-apple-darwin*)
use_joystick=no
- use_vdadecoder=no
use_vtbdecoder=no
use_crystalhd=no
ARCH="powerpc-osx"
use_cpu=arm1176jzf-s
use_hardcoded_tables="yes"
use_alsa="no"
- USE_TEXTUREPACKER_NATIVE_ROOT="$TEXTUREPACKER_NATIVE_ROOT"
ARCH="arm"
AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI")
AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
AC_FUNC_STRTOD
AC_FUNC_UTIME_NULL
AC_FUNC_VPRINTF
-AC_CHECK_FUNCS([atexit dup2 fdatasync floor fs_stat_dev ftime ftruncate getcwd gethostbyaddr gethostbyname gethostname getpagesize getpass gettimeofday inet_ntoa lchown localeconv memchr memmove memset mkdir modf munmap pow rmdir select setenv setlocale socket sqrt strcasecmp strchr strcspn strdup strerror strncasecmp strpbrk strrchr strspn strstr strtol strtoul sysinfo tzset utime])
+AC_CHECK_FUNCS([atexit dup2 fdatasync floor fs_stat_dev ftime ftruncate getcwd gethostbyaddr gethostbyname gethostname getpagesize getpass gettimeofday inet_ntoa lchown localeconv memchr memmove memset mkdir modf munmap pow rmdir select setenv setlocale socket sqrt strcasecmp strchr strcspn strdup strerror strncasecmp strpbrk strrchr strspn strstr strtol strtoul sysinfo tzset utime posix_fadvise])
# Check for various sizes
AC_CHECK_SIZEOF([int])
# Check for intrinsics
AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
-AC_TRY_COMPILE([],[long* temp=0; __sync_add_and_fetch(temp, 1);],
+AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
[have_builtin_sync_add_and_fetch=yes],
[have_builtin_sync_add_and_fetch=no])
AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
fi
AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
-AC_TRY_COMPILE([],[long* temp=0; __sync_sub_and_fetch(temp, 1);],
+AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
[have_builtin_sync_sub_and_fetch=yes],
[have_builtin_sync_sub_and_fetch=no])
AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
fi
AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
-AC_TRY_COMPILE([],[long *temp = 0; __sync_val_compare_and_swap(temp, 1, 1);],
+AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
[have_builtin_sync_val_compare_and_swap=yes],
[have_builtin_sync_val_compare_and_swap=no])
AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
if test "$target_platform" = "target_android" ; then
AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
+ AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
fi
PKG_CHECK_MODULES([FRIBIDI], [fribidi],
[INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
fi
fi
+# mdnsembedded
+if test "$use_mdnsembedded" != "no"; then
+ AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
+ [if test "$use_mdnsembedded" = "yes"; then
+ AC_MSG_ERROR($mdnsembedded_not_found)
+ USE_MDNSEMBEDDED=0
+ elif test "$use_mdnsembedded" != "no"; then
+ AC_MSG_NOTICE($mdnsembedded_not_found)
+ use_mdnsembedded="no"
+ USE_MDNSEMBEDDED=0
+ fi
+ ])
+ if test $use_mdnsembedded != "no"; then
+ USE_MDNSEMBEDDED=1
+ fi
+else
+ AC_MSG_RESULT($mdnsembedded_disabled)
+ USE_MDNSEMBEDDED=0
+fi
+AC_SUBST(USE_MDNSEMBEDDED)
+
# X11
if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
AC_MSG_NOTICE($x11_enabled)
fi
fi
-# libshairport for AirTunes
+# libshairplay for AirTunes (prefered lib)
USE_AIRTUNES=0
if test "x$use_airtunes" != "xno"; then
- AC_CHECK_HEADERS([shairport/shairport.h],,
+ AC_CHECK_HEADERS([shairplay/raop.h],,
[if test "x$use_airtunes" = "xyes"; then
- AC_MSG_ERROR($libshairport_not_found)
+ AC_MSG_ERROR($libshairplay_not_found)
elif test "x$use_airtunes" != "xno"; then
- AC_MSG_NOTICE($libshairport_not_found)
+ AC_MSG_NOTICE($libshairplay_not_found)
use_airtunes="no"
fi
])
if test "x$use_airtunes" != "xno"; then
- XB_FIND_SONAME([SHAIRPORT], [shairport], [use_airtunes])
+ XB_FIND_SONAME([SHAIRPLAY], [shairplay], [use_airtunes])
USE_AIRTUNES=1
- AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
- [[#include <shairport/shairport.h>]])
- AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
+ USE_LIBSHAIRPORT=1
+ AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
+ [[#include <shairplay/raop.h>]])
+ AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
+ fi
+
+ #libshairport - as a fallback for AirTunes
+ if test "x$USE_AIRTUNES" == "x0"; then
+ AC_CHECK_HEADERS([shairport/shairport.h],,
+ [if test "x$use_airtunes" = "xyes"; then
+ AC_MSG_ERROR($libshairport_not_found)
+ elif test "x$use_airtunes" != "xno"; then
+ AC_MSG_NOTICE($libshairport_not_found)
+ use_airtunes="no"
+ fi
+ ])
+
+ if test "x$use_airtunes" != "xno"; then
+ XB_FIND_SONAME([SHAIRPORT], [shairport], [use_airtunes])
+ USE_AIRTUNES=1
+ AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
+ [[#include <shairport/shairport.h>]])
+ AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
+ fi
fi
fi
if test "$use_external_ffmpeg" = "yes"; then
FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale"
- # libavcore is optional
- PKG_CHECK_EXISTS([libavcore], FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libavcore")
-
# one of libswresample or libavresample is needed
PKG_CHECK_EXISTS([libswresample], FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libswresample",
[PKG_CHECK_EXISTS([libavresample],
[INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
AC_MSG_ERROR($missing_library))
- # Determine whether AVPacket and relevant functions are defined in libavformat
- # or libavcodec
- AC_CHECK_LIB([avcodec], [av_free_packet],
- [AC_MSG_NOTICE(== AVPacket and relevant functions defined in libavcodec. ==)],
- [AC_MSG_NOTICE(== AVPacket and relevant functions defined in libavformat. ==)
- AC_DEFINE([AVPACKET_IN_AVFORMAT], [1], [Whether AVPacket is in libavformat.])])
-
# in case the headers are in a custom directory
SAVE_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
- # Possible places the ffmpeg headers may be
AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
- [AC_CHECK_HEADERS([ffmpeg/avcodec.h ffmpeg/avfilter.h ffmpeg/avformat.h ffmpeg/avutil.h postproc/postprocess.h ffmpeg/swscale.h],,
- [AC_MSG_ERROR($missing_headers)])])
-
- # optional
- AC_CHECK_HEADERS([libavcore/avcore.h libavcore/samplefmt.h libavutil/mem.h libavutil/samplefmt.h])
-
- # old FFmpeg have this in libavcodec/opt.h instead:
- AC_CHECK_HEADERS([libavutil/opt.h])
-
- # new FFmpeg have math headers
- AC_CHECK_HEADERS([libavutil/mathematics.h],,)
-
- # We'll support the use of rgb2rgb.h if it exists.
- AC_CHECK_HEADERS([libswscale/rgb2rgb.h],,)
- AC_CHECK_HEADERS([ffmpeg/rgb2rgb.h],,)
+ [AC_MSG_ERROR($missing_headers)])
# Check for libswresample or libavresample headers.
AC_CHECK_HEADERS([libswresample/swresample.h libavresample/avresample.h])
- # Check if AVFilterBufferRefVideoProps AVRational member is named
- # 'pixel_aspect' or 'sample_aspect_ratio'.
- AC_CHECK_MEMBER([AVFilterBufferRefVideoProps.sample_aspect_ratio],
- [AC_DEFINE([HAVE_AVFILTERBUFFERREFVIDEOPROPS_SAMPLE_ASPECT_RATIO],
- [1],
- [Define to 1 if AVFilterBufferRefVideoProps has member sample_aspect_ratio.])],
- [AC_CHECK_MEMBER([AVFilterBufferRefVideoProps.sample_aspect_ratio],
- [AC_DEFINE([HAVE_AVFILTERBUFFERREFVIDEOPROPS_SAMPLE_ASPECT_RATIO],
- [1],
- [Define to 1 if AVFilterBufferRefVideoProps has member sample_aspect_ratio.])],
- ,
- [[#include <ffmpeg/avfilter.h>]])],
- [[#include <libavfilter/avfilter.h>]])
-
AC_MSG_NOTICE($external_ffmpeg_enabled)
USE_EXTERNAL_FFMPEG=1
AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
AC_MSG_RESULT($ffmpeg_vdpau_not_supported)
fi])
- # Check for 'PIX_FMT_VDPAU_MPEG4' from libavutil
- if test "x$use_vdpau" != "xno"; then
- AC_LANG_PUSH([C++])
- AC_LINK_IFELSE(
- [AC_LANG_SOURCE([ #include <libavutil/pixfmt.h>
- int main() { PixelFormat format = PIX_FMT_VDPAU_MPEG4; }])],
- [AC_DEFINE([PIX_FMT_VDPAU_MPEG4_IN_AVUTIL], [1],
- [Whether AVUtil defines PIX_FMT_VDPAU_MPEG4.])],)
- AC_LANG_POP([C++])
- fi
CPPFLAGS="$SAVE_CPPFLAGS"
else
AC_MSG_NOTICE($external_ffmpeg_disabled)
USE_EXTERNAL_FFMPEG=0
- AC_DEFINE([PIX_FMT_VDPAU_MPEG4_IN_AVUTIL], [1], [Whether AVUtil defines PIX_FMT_VDPAU_MPEG4.])
fi
echo "Checking for SWIG installation"
USE_CRYSTALHD=0
fi
-# VDADecoder
-if test "x$use_vdadecoder" != "xno"; then
- if test "$host_vendor" = "apple" ; then
- HAVE_LIBVDADECODER=1
- AC_DEFINE([HAVE_LIBVDADECODER], [1], [Define to 1 if you have the 'VDADecoder' library.])
- AC_MSG_NOTICE($vdadecoder_enabled)
- USE_VDA=1
- else
- if test "x$use_vdadecoder" = "xyes"; then
- AC_MSG_ERROR([VDA Decoder not supported on this platform])
- else
- use_vdadecoder="no"
- AC_MSG_NOTICE($vdadecoder_disabled)
- fi
- USE_VDA=0
- fi
-else
- AC_MSG_NOTICE($vdadecoder_disabled)
-fi
-
# VTBDecoder
if test "x$use_vtbdecoder" != "xno"; then
if test "$host_vendor" = "apple" ; then
;;
esac
+# additional internal codecs
+case $add_codecs in
+ *amcodec*)
+ AC_CHECK_HEADER([amlplayer/codec_error.h],, AC_MSG_ERROR($missing_headers))
+ XB_ADD_CODEC([LIBAMCODEC], [amcodec])
+ ;;
+esac
+
# platform specific bin utilities
if test "$build_vendor" != "apple" ; then
AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
final_message="$final_message\n CrystalHD:\tNo"
fi
-if test "x$use_vdadecoder" != "xno"; then
- final_message="$final_message\n VDADecoder:\tYes"
-else
- final_message="$final_message\n VDADecoder:\tNo"
-fi
-
if test "x$use_vtbdecoder" != "xno"; then
final_message="$final_message\n VTBDecoder:\tYes"
else
final_message="$final_message\n Avahi:\tNo"
fi
+if test "$use_mdnsembedded" != "no"; then
+ final_message="$final_message\n mDNSEmbedded:\tYes"
+else
+ final_message="$final_message\n mDNSEmbedded:\tNo"
+fi
+
if test "$use_nonfree" = "yes"; then
final_message="$final_message\n Non-free:\tYes"
HAVE_XBMC_NONFREE=1
fi
if test "x$use_airtunes" != "xno"; then
- final_message="$final_message\n AirTunes support:\tYes"
+ if test "x$USE_LIBSHAIRPORT" == "x1"; then
+ final_message="$final_message\n AirTunes support (libshairplay):\tYes"
+ else
+ final_message="$final_message\n AirTunes support (libshairport):\tYes"
+ fi
else
final_message="$final_message\n AirTunes support:\tNo"
fi
xbmc/peripherals/devices/Makefile \
xbmc/android/activity/Makefile \
xbmc/android/loader/Makefile \
+ xbmc/android/jni/Makefile \
+ xbmc/utils/Makefile \
xbmc/main/Makefile"
if test "$use_skin_touched" = "yes"; then
AC_SUBST(USE_LIBNFS)
AC_SUBST(USE_LIBAFPCLIENT)
AC_SUBST(USE_AIRPLAY)
-AC_SUBST(USE_VDA)
AC_SUBST(USE_OPENMAX)
AC_SUBST(USE_PULSE)
AC_SUBST(USE_XRANDR)
ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
- ffmpg_config="$ffmpg_config --disable-vda --disable-crystalhd"
+ ffmpg_config="$ffmpg_config --enable-vda --disable-crystalhd"
ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
# handle conditional enables/disables