summaryrefslogtreecommitdiffstats
path: root/package/xbmc/xbmc.mk
diff options
context:
space:
mode:
Diffstat (limited to 'package/xbmc/xbmc.mk')
-rw-r--r--package/xbmc/xbmc.mk178
1 files changed, 178 insertions, 0 deletions
diff --git a/package/xbmc/xbmc.mk b/package/xbmc/xbmc.mk
new file mode 100644
index 0000000000..a43b41dbb3
--- /dev/null
+++ b/package/xbmc/xbmc.mk
@@ -0,0 +1,178 @@
+################################################################################
+#
+# xbmc
+#
+################################################################################
+
+XBMC_VERSION = 12.3-Frodo
+XBMC_SITE = $(call github,xbmc,xbmc,$(XBMC_VERSION))
+XBMC_LICENSE = GPLv2
+XBMC_LICENSE_FILES = LICENSE.GPL
+XBMC_DEPENDENCIES = host-gperf host-lzo host-sdl_image host-swig
+XBMC_DEPENDENCIES += boost bzip2 expat flac fontconfig freetype jasper jpeg \
+ libass libcdio libcurl libfribidi libgcrypt libmad libmodplug libmpeg2 \
+ libogg libplist libpng libsamplerate libungif libvorbis libxml2 lzo ncurses \
+ openssl pcre python readline sqlite taglib tiff tinyxml yajl zlib
+
+XBMC_CONF_ENV = \
+ PYTHON_VERSION="$(PYTHON_VERSION_MAJOR)" \
+ PYTHON_LDFLAGS="-lpython$(PYTHON_VERSION_MAJOR) -lpthread -ldl -lutil -lm" \
+ PYTHON_CPPFLAGS="-I$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR)" \
+ PYTHON_SITE_PKG="$(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages" \
+ PYTHON_NOVERSIONCHECK="no-check" \
+ TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr"
+
+XBMC_CONF_OPT += \
+ --disable-alsa \
+ --disable-crystalhd \
+ --disable-debug \
+ --disable-dvdcss \
+ --disable-gl \
+ --disable-hal \
+ --disable-joystick \
+ --disable-mysql \
+ --disable-openmax \
+ --disable-optical-drive \
+ --disable-projectm \
+ --disable-pulse \
+ --disable-sdl \
+ --disable-ssh \
+ --disable-vaapi \
+ --disable-vdpau \
+ --disable-vtbdecoder \
+ --disable-x11 \
+ --disable-xrandr \
+ --enable-gles \
+ --enable-optimizations
+
+ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
+XBMC_DEPENDENCIES += rpi-userland
+XBMC_CONF_OPT += --with-platform=raspberry-pi --enable-player=omxplayer
+XBMC_CONF_ENV += INCLUDES="-I$(STAGING_DIR)/usr/include/interface/vcos/pthreads \
+ -I$(STAGING_DIR)/usr/include/interface/vmcs_host/linux"
+endif
+
+ifeq ($(BR2_PACKAGE_DBUS),y)
+XBMC_DEPENDENCIES += dbus
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_LIBUSB),y)
+XBMC_DEPENDENCIES += libusb-compat
+XBMC_CONF_OPT += --enable-libusb
+else
+XBMC_CONF_OPT += --disable-libusb
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_LIBMICROHTTPD),y)
+XBMC_DEPENDENCIES += libmicrohttpd
+XBMC_CONF_OPT += --enable-webserver
+else
+XBMC_CONF_OPT += --disable-webserver
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_LIBSMBCLIENT),y)
+XBMC_DEPENDENCIES += samba
+XBMC_CONF_OPT += --enable-samba
+else
+XBMC_CONF_OPT += --disable-samba
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_LIBNFS),y)
+XBMC_DEPENDENCIES += libnfs
+XBMC_CONF_OPT += --enable-nfs
+else
+XBMC_CONF_OPT += --disable-nfs
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_RTMPDUMP),y)
+XBMC_DEPENDENCIES += rtmpdump
+XBMC_CONF_OPT += --enable-rtmp
+else
+XBMC_CONF_OPT += --disable-rtmp
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_LIBBLURAY),y)
+XBMC_DEPENDENCIES += libbluray
+XBMC_CONF_OPT += --enable-libbluray
+else
+XBMC_CONF_OPT += --disable-libbluray
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_LIBSHAIRPLAY),y)
+XBMC_DEPENDENCIES += libshairplay
+XBMC_CONF_OPT += --enable-airplay
+else
+XBMC_CONF_OPT += --disable-airplay
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_AVAHI),y)
+XBMC_DEPENDENCIES += avahi
+XBMC_CONF_OPT += --enable-avahi
+else
+XBMC_CONF_OPT += --disable-avahi
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_LIBCEC),y)
+XBMC_DEPENDENCIES += libcec
+XBMC_CONF_OPT += --enable-libcec
+else
+XBMC_CONF_OPT += --disable-libcec
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_WAVPACK),y)
+XBMC_DEPENDENCIES += wavpack
+endif
+
+# Add HOST_DIR to PATH for codegenerator.mk to find swig
+define XBMC_BOOTSTRAP
+ cd $(@D) && PATH=$(HOST_PATH) ./bootstrap
+endef
+XBMC_PRE_CONFIGURE_HOOKS += XBMC_BOOTSTRAP
+
+define XBMC_CLEAN_UNUSED_ADDONS
+ rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/screensaver.rsxs.plasma
+ rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/visualization.milkdrop
+ rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/visualization.projectm
+ rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/visualization.itunes
+endef
+XBMC_POST_INSTALL_TARGET_HOOKS += XBMC_CLEAN_UNUSED_ADDONS
+
+define XBMC_CLEAN_CONFLUENCE_SKIN
+ find $(TARGET_DIR)/usr/share/xbmc/addons/skin.confluence/media -name *.png -delete
+ find $(TARGET_DIR)/usr/share/xbmc/addons/skin.confluence/media -name *.jpg -delete
+endef
+XBMC_POST_INSTALL_TARGET_HOOKS += XBMC_CLEAN_CONFLUENCE_SKIN
+
+define XBMC_INSTALL_BR_WRAPPER
+ $(INSTALL) -D -m 0755 package/xbmc/br-xbmc \
+ $(TARGET_DIR)/usr/bin/br-xbmc
+endef
+XBMC_POST_INSTALL_TARGET_HOOKS += XBMC_INSTALL_BR_WRAPPER
+
+# When run from a startup script, XBMC has no $HOME where to store its
+# configuration, so ends up storing it in /.xbmc (yes, at the root of
+# the rootfs). This is a problem for read-only filesystems. But we can't
+# easily change that, so create /.xbmc as a symlink where we want the
+# config to eventually be.
+define XBMC_INSTALL_CONFIG_DIR
+ $(INSTALL) -d -m 0755 $(TARGET_DIR)/var/xbmc
+ ln -sf /var/xbmc $(TARGET_DIR)/.xbmc
+endef
+XBMC_POST_INSTALL_TARGET_HOOKS += XBMC_INSTALL_CONFIG_DIR
+
+define XBMC_INSTALL_INIT_SYSV
+ $(INSTALL) -D -m 755 package/xbmc/S50xbmc \
+ $(TARGET_DIR)/etc/init.d/S50xbmc
+endef
+
+define XBMC_INSTALL_INIT_SYSTEMD
+ $(INSTALL) -D -m 644 package/xbmc/xbmc.service \
+ $(TARGET_DIR)/etc/systemd/system/xbmc.service
+
+ mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
+
+ ln -fs ../xbmc.service \
+ $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/xbmc.service
+endef
+
+$(eval $(autotools-package))
OpenPOWER on IntegriCloud