453657df6b
In a Buildroot configuration with mysql enabled it might be useful to be able to build Kodi without mysql support because Kodi may not need it at runtime. Kodi can store its internal databases not only locally using sqlite but also on a mysql server, this allows several local Kodi machines to share the same databases. When using only one Kodi instance, mysql support is not needed, and not building mysql support helps reducing build time. Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
320 lines
8.2 KiB
Makefile
320 lines
8.2 KiB
Makefile
################################################################################
|
|
#
|
|
# kodi
|
|
#
|
|
################################################################################
|
|
|
|
KODI_VERSION = 16.1-Jarvis
|
|
KODI_SITE = $(call github,xbmc,xbmc,$(KODI_VERSION))
|
|
KODI_LICENSE = GPLv2
|
|
KODI_LICENSE_FILES = LICENSE.GPL
|
|
# needed for binary addons
|
|
KODI_INSTALL_STAGING = YES
|
|
KODI_DEPENDENCIES = \
|
|
boost \
|
|
bzip2 \
|
|
expat \
|
|
ffmpeg \
|
|
fontconfig \
|
|
freetype \
|
|
giflib \
|
|
host-gawk \
|
|
host-gettext \
|
|
host-giflib \
|
|
host-gperf \
|
|
host-libjpeg \
|
|
host-libpng \
|
|
host-lzo \
|
|
host-nasm \
|
|
host-swig \
|
|
host-zip \
|
|
jasper \
|
|
jpeg \
|
|
libass \
|
|
libcdio \
|
|
libcrossguid \
|
|
libcurl \
|
|
libdcadec \
|
|
libfribidi \
|
|
libgcrypt \
|
|
libmpeg2 \
|
|
libogg \
|
|
libplist \
|
|
libpng \
|
|
libsamplerate \
|
|
libsquish \
|
|
libvorbis \
|
|
libxml2 \
|
|
libxslt \
|
|
lzo \
|
|
ncurses \
|
|
openssl \
|
|
pcre \
|
|
python \
|
|
readline \
|
|
sqlite \
|
|
taglib \
|
|
tiff \
|
|
tinyxml \
|
|
yajl \
|
|
zlib
|
|
|
|
KODI_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" \
|
|
use_texturepacker_native=yes \
|
|
USE_TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr" \
|
|
TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr"
|
|
|
|
KODI_CONF_OPTS += \
|
|
--with-ffmpeg=shared \
|
|
--disable-joystick \
|
|
--disable-openmax \
|
|
--disable-pulse \
|
|
--disable-vtbdecoder \
|
|
--enable-optimizations
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_MYSQL),y)
|
|
KODI_CONF_OPTS += --enable-mysql
|
|
KODI_CONF_ENV += ac_cv_path_MYSQL_CONFIG="$(STAGING_DIR)/usr/bin/mysql_config"
|
|
KODI_DEPENDENCIES += mysql
|
|
else
|
|
KODI_CONF_OPTS += --disable-mysql
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_NONFREE),y)
|
|
KODI_CONF_OPTS += --enable-non-free
|
|
KODI_LICENSE := $(KODI_LICENSE), unrar
|
|
KODI_LICENSE_FILES += lib/UnrarXLib/license.txt
|
|
else
|
|
KODI_CONF_OPTS += --disable-non-free
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
|
|
KODI_DEPENDENCIES += rpi-userland
|
|
KODI_CONF_OPTS += --with-platform=raspberry-pi --enable-player=omxplayer
|
|
KODI_CONF_ENV += INCLUDES="-I$(STAGING_DIR)/usr/include/interface/vcos/pthreads \
|
|
-I$(STAGING_DIR)/usr/include/interface/vmcs_host/linux" \
|
|
LIBS="-lvcos -lvchostif"
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
|
|
KODI_DEPENDENCIES += udev
|
|
KODI_CONF_OPTS += --enable-udev
|
|
else
|
|
KODI_CONF_OPTS += --disable-udev
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_IMX_VPUWRAP),y)
|
|
KODI_DEPENDENCIES += imx-vpuwrap
|
|
KODI_CONF_OPTS += --enable-codec=imxvpu
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBCAP),y)
|
|
KODI_CONF_OPTS += --enable-libcap
|
|
KODI_DEPENDENCIES += libcap
|
|
else
|
|
KODI_CONF_OPTS += --disable-libcap
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_DBUS),y)
|
|
KODI_DEPENDENCIES += dbus
|
|
KODI_CONF_OPTS += --enable-dbus
|
|
else
|
|
KODI_CONF_OPTS += --disable-dbus
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_ALSA_LIB),y)
|
|
KODI_DEPENDENCIES += alsa-lib
|
|
KODI_CONF_OPTS += --enable-alsa
|
|
else
|
|
KODI_CONF_OPTS += --disable-alsa
|
|
endif
|
|
|
|
# quote from kodi/configure.in: "GLES overwrites GL if both set to yes."
|
|
# we choose the opposite because opengl offers more features, like libva support
|
|
# GL means X11, and under X11, Kodi needs libdrm; libdrm is forcefully selected
|
|
# by a modular Xorg server, which Kodi already depends on.
|
|
ifeq ($(BR2_PACKAGE_KODI_GL),y)
|
|
KODI_DEPENDENCIES += libglew libglu libgl xlib_libX11 xlib_libXext \
|
|
xlib_libXmu xlib_libXrandr xlib_libXt libdrm
|
|
KODI_CONF_OPTS += --enable-gl --enable-x11 --disable-gles
|
|
else
|
|
KODI_CONF_OPTS += --disable-gl --disable-x11
|
|
ifeq ($(BR2_PACKAGE_KODI_EGL_GLES),y)
|
|
KODI_DEPENDENCIES += libegl libgles
|
|
KODI_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags --libs egl`"
|
|
KODI_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags --libs egl`"
|
|
KODI_CONF_OPTS += --enable-gles
|
|
else
|
|
KODI_CONF_OPTS += --disable-gles
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_LIBUSB),y)
|
|
KODI_DEPENDENCIES += libusb-compat
|
|
KODI_CONF_OPTS += --enable-libusb
|
|
else
|
|
KODI_CONF_OPTS += --disable-libusb
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_LIBMICROHTTPD),y)
|
|
KODI_DEPENDENCIES += libmicrohttpd
|
|
KODI_CONF_OPTS += --enable-webserver
|
|
else
|
|
KODI_CONF_OPTS += --disable-webserver
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_LIBSMBCLIENT),y)
|
|
KODI_DEPENDENCIES += samba4
|
|
KODI_CONF_OPTS += --enable-samba
|
|
else
|
|
KODI_CONF_OPTS += --disable-samba
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_LIBNFS),y)
|
|
KODI_DEPENDENCIES += libnfs
|
|
KODI_CONF_OPTS += --enable-nfs
|
|
else
|
|
KODI_CONF_OPTS += --disable-nfs
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_RTMPDUMP),y)
|
|
KODI_DEPENDENCIES += rtmpdump
|
|
KODI_CONF_OPTS += --enable-rtmp
|
|
else
|
|
KODI_CONF_OPTS += --disable-rtmp
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_LIBBLURAY),y)
|
|
KODI_DEPENDENCIES += libbluray
|
|
KODI_CONF_OPTS += --enable-libbluray
|
|
else
|
|
KODI_CONF_OPTS += --disable-libbluray
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_LIBSHAIRPLAY),y)
|
|
KODI_DEPENDENCIES += libshairplay
|
|
KODI_CONF_OPTS += --enable-airplay
|
|
else
|
|
KODI_CONF_OPTS += --disable-airplay
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_LIBSSH),y)
|
|
KODI_DEPENDENCIES += libssh
|
|
KODI_CONF_OPTS += --enable-ssh
|
|
else
|
|
KODI_CONF_OPTS += --disable-ssh
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_AVAHI),y)
|
|
KODI_DEPENDENCIES += avahi
|
|
KODI_CONF_OPTS += --enable-avahi
|
|
else
|
|
KODI_CONF_OPTS += --disable-avahi
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_LIBCEC),y)
|
|
KODI_DEPENDENCIES += libcec
|
|
KODI_CONF_OPTS += --enable-libcec
|
|
else
|
|
KODI_CONF_OPTS += --disable-libcec
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_LIRC),y)
|
|
KODI_CONF_OPTS += --enable-lirc
|
|
else
|
|
KODI_CONF_OPTS += --disable-lirc
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_LIBTHEORA),y)
|
|
KODI_DEPENDENCIES += libtheora
|
|
endif
|
|
|
|
# kodi needs libva & libva-glx
|
|
ifeq ($(BR2_PACKAGE_KODI_LIBVA)$(BR2_PACKAGE_MESA3D_DRI_DRIVER),yy)
|
|
KODI_DEPENDENCIES += mesa3d libva
|
|
KODI_CONF_OPTS += --enable-vaapi
|
|
else
|
|
KODI_CONF_OPTS += --disable-vaapi
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_LIBVDPAU),y)
|
|
KODI_DEPENDENCIES += libvdpau
|
|
KODI_CONF_OPTS += --enable-vdpau
|
|
else
|
|
KODI_CONF_OPTS += --disable-vdpau
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_UPNP),y)
|
|
KODI_CONF_OPTS += --enable-upnp
|
|
else
|
|
KODI_CONF_OPTS += --disable-upnp
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_KODI_OPTICALDRIVE),y)
|
|
KODI_CONF_OPTS += --enable-optical-drive --enable-dvdcss
|
|
else
|
|
KODI_CONF_OPTS += --disable-optical-drive --disable-dvdcss
|
|
endif
|
|
|
|
# Add HOST_DIR to PATH for codegenerator.mk to find swig
|
|
define KODI_BOOTSTRAP
|
|
$(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D)/tools/depends/native/JsonSchemaBuilder
|
|
$(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D)/tools/depends/native/TexturePacker
|
|
cd $(@D) && PATH=$(BR_PATH) ./bootstrap
|
|
endef
|
|
KODI_PRE_CONFIGURE_HOOKS += KODI_BOOTSTRAP
|
|
|
|
define KODI_CLEAN_UNUSED_ADDONS
|
|
rm -Rf $(TARGET_DIR)/usr/share/kodi/addons/visualization.milkdrop
|
|
rm -Rf $(TARGET_DIR)/usr/share/kodi/addons/visualization.projectm
|
|
rm -Rf $(TARGET_DIR)/usr/share/kodi/addons/visualization.itunes
|
|
endef
|
|
KODI_POST_INSTALL_TARGET_HOOKS += KODI_CLEAN_UNUSED_ADDONS
|
|
|
|
define KODI_CLEAN_CONFLUENCE_SKIN
|
|
find $(TARGET_DIR)/usr/share/kodi/addons/skin.confluence/media -name *.png -delete
|
|
find $(TARGET_DIR)/usr/share/kodi/addons/skin.confluence/media -name *.jpg -delete
|
|
endef
|
|
KODI_POST_INSTALL_TARGET_HOOKS += KODI_CLEAN_CONFLUENCE_SKIN
|
|
|
|
define KODI_INSTALL_BR_WRAPPER
|
|
$(INSTALL) -D -m 0755 package/kodi/br-kodi \
|
|
$(TARGET_DIR)/usr/bin/br-kodi
|
|
endef
|
|
KODI_POST_INSTALL_TARGET_HOOKS += KODI_INSTALL_BR_WRAPPER
|
|
|
|
# When run from a startup script, Kodi has no $HOME where to store its
|
|
# configuration, so ends up storing it in /.kodi (yes, at the root of
|
|
# the rootfs). This is a problem for read-only filesystems. But we can't
|
|
# easily change that, so create /.kodi as a symlink where we want the
|
|
# config to eventually be. Add synlinks for the legacy XBMC name as well
|
|
define KODI_INSTALL_CONFIG_DIR
|
|
$(INSTALL) -d -m 0755 $(TARGET_DIR)/var/kodi
|
|
ln -sf /var/kodi $(TARGET_DIR)/.kodi
|
|
ln -sf /var/kodi $(TARGET_DIR)/var/xbmc
|
|
ln -sf /var/kodi $(TARGET_DIR)/.xbmc
|
|
endef
|
|
KODI_POST_INSTALL_TARGET_HOOKS += KODI_INSTALL_CONFIG_DIR
|
|
|
|
define KODI_INSTALL_INIT_SYSV
|
|
$(INSTALL) -D -m 755 package/kodi/S50kodi \
|
|
$(TARGET_DIR)/etc/init.d/S50kodi
|
|
endef
|
|
|
|
define KODI_INSTALL_INIT_SYSTEMD
|
|
$(INSTALL) -D -m 644 package/kodi/kodi.service \
|
|
$(TARGET_DIR)/usr/lib/systemd/system/kodi.service
|
|
|
|
mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
|
|
|
|
ln -fs ../../../../usr/lib/systemd/system/kodi.service \
|
|
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/kodi.service
|
|
endef
|
|
|
|
$(eval $(autotools-package))
|