config BR2_PACKAGE_XBMC_ARCH_SUPPORTS
	bool
	default y if BR2_arm || BR2_i386 || BR2_x86_64

comment "xbmc needs a toolchain w/ C++, IPv6, largefile, threads, wchar"
	depends on BR2_PACKAGE_XBMC_ARCH_SUPPORTS
	depends on !BR2_INET_IPV6 || !BR2_INSTALL_LIBSTDCPP || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
	depends on BR2_USE_MMU

config BR2_PACKAGE_XBMC_EGL_GLES
	bool
	default y
	depends on BR2_PACKAGE_HAS_LIBEGL
	depends on BR2_PACKAGE_HAS_LIBGLES
	depends on !BR2_PACKAGE_XBMC_GL # prefer GL if available

config BR2_PACKAGE_XBMC_GL
	bool
	default y
	depends on BR2_PACKAGE_HAS_LIBGL
	depends on !BR2_arm # xbmc needs egl/gles on arm

comment "xbmc needs an OpenGL or an openGL ES and EGL backend"
	depends on BR2_i386 || BR2_x86_64
	depends on !BR2_PACKAGE_XBMC_GL && !BR2_PACKAGE_XBMC_EGL_GLES

comment "xbmc requires an OpenGL ES and EGL backend"
	depends on BR2_arm
	depends on !BR2_PACKAGE_XBMC_EGL_GLES

menuconfig BR2_PACKAGE_XBMC
	bool "xbmc"
	select BR2_NEEDS_HOST_JAVA
	select BR2_PACKAGE_BOOST
	select BR2_PACKAGE_BOOST_THREAD
	select BR2_PACKAGE_BZIP2
	select BR2_PACKAGE_EXPAT
	select BR2_PACKAGE_FLAC
	select BR2_PACKAGE_FONTCONFIG
	select BR2_PACKAGE_FREETYPE
	select BR2_PACKAGE_JASPER
	select BR2_PACKAGE_JPEG
	select BR2_PACKAGE_LIBASS
	select BR2_PACKAGE_LIBCDIO
	select BR2_PACKAGE_LIBCURL
	select BR2_PACKAGE_LIBFRIBIDI
	select BR2_PACKAGE_LIBGLEW if BR2_PACKAGE_XBMC_GL
	select BR2_PACKAGE_LIBGLU if BR2_PACKAGE_XBMC_GL
	select BR2_PACKAGE_LIBGCRYPT
	select BR2_PACKAGE_LIBID3TAG
	select BR2_PACKAGE_LIBMAD
	select BR2_PACKAGE_LIBMODPLUG
	select BR2_PACKAGE_LIBMPEG2
	select BR2_PACKAGE_LIBOGG
	select BR2_PACKAGE_LIBPLIST
	select BR2_PACKAGE_LIBPNG
	select BR2_PACKAGE_LIBSAMPLERATE
	select BR2_PACKAGE_LIBUNGIF
	select BR2_PACKAGE_LIBVORBIS
	select BR2_PACKAGE_LIBXML2
	select BR2_PACKAGE_LIBXSLT
	select BR2_PACKAGE_LZO
	select BR2_PACKAGE_NCURSES
	select BR2_PACKAGE_OPENSSL
	select BR2_PACKAGE_PCRE
	select BR2_PACKAGE_PCRE_UCP
	select BR2_PACKAGE_PYTHON
	select BR2_PACKAGE_PYTHON_BSDDB
	select BR2_PACKAGE_PYTHON_BZIP2
	select BR2_PACKAGE_PYTHON_CURSES
	select BR2_PACKAGE_PYTHON_PYEXPAT
	select BR2_PACKAGE_PYTHON_READLINE
	select BR2_PACKAGE_PYTHON_SQLITE
	select BR2_PACKAGE_PYTHON_SSL
	select BR2_PACKAGE_PYTHON_UNICODEDATA
	select BR2_PACKAGE_PYTHON_ZLIB
	select BR2_PACKAGE_READLINE
	select BR2_PACKAGE_SDL if BR2_PACKAGE_XBMC_GL
	select BR2_PACKAGE_SDL_X11 if BR2_PACKAGE_XBMC_GL
	select BR2_PACKAGE_SDL_IMAGE if BR2_PACKAGE_XBMC_GL
	select BR2_PACKAGE_SQLITE
	select BR2_PACKAGE_TAGLIB
	select BR2_PACKAGE_TIFF
	select BR2_PACKAGE_TINYXML
	select BR2_PACKAGE_XLIB_XMU if BR2_PACKAGE_XBMC_GL # needed by rsxs screensaver
	select BR2_PACKAGE_XLIB_XRANDR if BR2_PACKAGE_XBMC_GL
	select BR2_PACKAGE_XLIB_XT if BR2_PACKAGE_XBMC_GL # needed by rsxs screensaver
	select BR2_PACKAGE_YAJL
	select BR2_PACKAGE_ZLIB
	depends on BR2_INET_IPV6
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_LARGEFILE
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_PACKAGE_XBMC_EGL_GLES || BR2_PACKAGE_XBMC_GL
	depends on BR2_USE_MMU # python
	depends on BR2_USE_WCHAR
	depends on BR2_PACKAGE_XBMC_ARCH_SUPPORTS
	help
	  XBMC is an award-winning free and open source (GPL) software
	  media player and entertainment hub for digital media.

	  http://xbmc.org

if BR2_PACKAGE_XBMC

config BR2_PACKAGE_XBMC_ALSA_LIB
	bool "alsa"
	select BR2_PACKAGE_ALSA_LIB
	help
	  Enable alsa support.

config BR2_PACKAGE_XBMC_AVAHI
	bool "avahi"
	depends on !BR2_PREFER_STATIC_LIB # avahi
	select BR2_PACKAGE_AVAHI
	select BR2_PACKAGE_AVAHI_DAEMON
	help
	  Enable Avahi support.
	  Select this if you want XBMC to support Bonjour protocol.

config BR2_PACKAGE_XBMC_DBUS
	bool "dbus"
	select BR2_PACKAGE_DBUS
	help
	  Enable D-Bus support

config BR2_PACKAGE_XBMC_LIBBLURAY
	bool "blu-ray"
	select BR2_PACKAGE_LIBBLURAY
	depends on !BR2_PREFER_STATIC_LIB
	help
	  Enable Blu-ray input support.
	  Select this if you want to play back Blu-ray content.

comment "libbluray support needs a toolchain w/ dynamic library"
	depends on BR2_PREFER_STATIC_LIB

config BR2_PACKAGE_XBMC_GOOM
	bool "goom screensaver"
	depends on BR2_PACKAGE_XBMC_GL
	help
	  Enable goom screensaver

comment "goom needs an OpenGL backend"
	depends on !BR2_PACKAGE_XBMC_GL

config BR2_PACKAGE_XBMC_RSXS
	bool "rsxs screensaver"
	depends on BR2_PACKAGE_XBMC_GL
	help
	  Enable goom screensaver

comment "rsxs needs an OpenGL backend"
	depends on !BR2_PACKAGE_XBMC_GL

config BR2_PACKAGE_XBMC_LIBCEC
	bool "hdmi cec"
	depends on !BR2_PREFER_STATIC_LIB # libcec
	depends on BR2_PACKAGE_HAS_UDEV
	select BR2_PACKAGE_LIBCEC
	help
	  Enable CEC (Consumer Electronics Control) support.
	  Select this if you want XBMC to support HDMI CEC.

comment "hdmi cec support needs udev /dev management and a toolchain w/ dynamic library"
	depends on BR2_PREFER_STATIC_LIB || !BR2_PACKAGE_HAS_UDEV

config BR2_PACKAGE_XBMC_LIBMICROHTTPD
	bool "web server"
	select BR2_PACKAGE_LIBMICROHTTPD
	help
	  Enable webserver feature

config BR2_PACKAGE_XBMC_LIBNFS
	bool "nfs"
	depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC
	select BR2_PACKAGE_LIBNFS
	help
	  Enable NFS server support.

comment "nfs support needs a toolchain w/ RPC support"
	depends on !BR2_TOOLCHAIN_HAS_NATIVE_RPC

config BR2_PACKAGE_XBMC_RTMPDUMP
	bool "rtmp"
	select BR2_PACKAGE_RTMPDUMP
	help
	  Enable RTMP input support.
	  Select this if you want to play back rtmp stream.

config BR2_PACKAGE_XBMC_LIBSHAIRPLAY
	bool "shairport"
	select BR2_PACKAGE_LIBSHAIRPLAY
	help
	  Enable Shairport support.
	  Select this if you want to stream content from an Apple device.

config BR2_PACKAGE_XBMC_LIBSMBCLIENT
	bool "samba"
	select BR2_PACKAGE_SAMBA
	select BR2_PACKAGE_SAMBA_LIBSMBCLIENT
	help
	  Enable Samba support

config BR2_PACKAGE_XBMC_LIBTHEORA
	bool "theora"
	select BR2_PACKAGE_LIBTHEORA
	help
	  Enable Theora input support.
	  Select this if you want to play back OGG/OGV files (Video).

config BR2_PACKAGE_XBMC_LIBUSB
	bool "usb"
	select BR2_PACKAGE_LIBUSB
	select BR2_PACKAGE_LIBUSB_COMPAT
	help
	  Enable libusb support.

config BR2_PACKAGE_XBMC_LIBVA
	bool "va"
	select BR2_PACKAGE_LIBVA
	depends on !BR2_PREFER_STATIC_LIB
	help
	  Enable libva support.

comment "libva support needs toolchain w/ dynamic library"
	depends on BR2_PREFER_STATIC_LIB

config BR2_PACKAGE_XBMC_WAVPACK
	bool "wavpack"
	select BR2_PACKAGE_WAVPACK
	help
	  Enable WAV input support.
	  Select this if you want to play back WV files.

comment "XBMC addons"

source "package/xbmc-addon-xvdr/Config.in"
source "package/xbmc-pvr-addons/Config.in"

endif # BR2_PACKAGE_XBMC
