initial buildroot for linux 5.15

This commit is contained in:
Huan.Feng
2021-12-06 14:12:13 +08:00
parent d7767d594e
commit 7b6fc358fa
12736 changed files with 508822 additions and 0 deletions
@@ -0,0 +1,45 @@
From 6604cce38fed748e98d3bd2bf9d0f368d67eeb3c Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Wed, 29 Jul 2015 23:13:33 +0200
Subject: [PATCH] kodi-config.cmake: use CMAKE_FIND_ROOT_PATH to fix
cross-compilation
When cross-compiling, the location at build time of the libraries is
not the same as the one at run-time. The CMAKE_FIND_ROOT_PATH variable
is here to handle this difference, so use it in kodi-config.cmake.
Upstream status: Reverted (PR 17616)
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
(rebased and simplified for Kodi 17.0-Krypton)
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
(rebased for Kodi 19.0-Matrix)
---
cmake/KodiConfig.cmake.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/cmake/KodiConfig.cmake.in b/cmake/KodiConfig.cmake.in
index a06d889fca9d..ff299807ea44 100644
--- a/cmake/KodiConfig.cmake.in
+++ b/cmake/KodiConfig.cmake.in
@@ -9,7 +9,7 @@ if(NOT @APP_NAME_UC@_PREFIX)
set(@APP_NAME_UC@_PREFIX @APP_PREFIX@)
endif()
if(NOT @APP_NAME_UC@_INCLUDE_DIR)
- set(@APP_NAME_UC@_INCLUDE_DIR @APP_INCLUDE_DIR@)
+ set(@APP_NAME_UC@_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/@APP_INCLUDE_DIR@)
endif()
if(NOT @APP_NAME_UC@_LIB_DIR)
set(@APP_NAME_UC@_LIB_DIR @APP_LIB_DIR@)
@@ -18,7 +18,7 @@ if(NOT @APP_NAME_UC@_DATA_DIR)
set(@APP_NAME_UC@_DATA_DIR @APP_DATA_DIR@)
endif()
set(APP_RENDER_SYSTEM @APP_RENDER_SYSTEM@)
-list(APPEND CMAKE_MODULE_PATH @APP_LIB_DIR@ @APP_DATA_DIR@/cmake)
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_FIND_ROOT_PATH}/@APP_LIB_DIR@ ${CMAKE_FIND_ROOT_PATH}/@APP_DATA_DIR@/cmake)
string(REPLACE ";" " " ARCH_DEFINES "@ARCH_DEFINES@")
add_definitions(${ARCH_DEFINES} -DBUILD_KODI_ADDON)
--
2.5.0
+348
View File
@@ -0,0 +1,348 @@
config BR2_PACKAGE_KODI_ARCH_SUPPORTS
bool
default y if BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
# i386: needs sse (see upstream PR 10351)
depends on !(BR2_i386 && !BR2_X86_CPU_HAS_SSE)
depends on BR2_USE_MMU # libcdio, and others
comment "kodi needs python3 w/ .py modules, a uClibc or glibc toolchain w/ C++, threads, wchar, dynamic library, gcc >= 4.9"
depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
|| !BR2_USE_WCHAR || BR2_STATIC_LIBS \
|| !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 \
|| BR2_TOOLCHAIN_USES_MUSL \
|| !BR2_PACKAGE_PYTHON3 \
|| BR2_PACKAGE_PYTHON3_PYC_ONLY
config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
bool
config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM
bool
default y
depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES
depends on BR2_PACKAGE_MESA3D_GBM
depends on BR2_PACKAGE_HAS_UDEV # libinput
select BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND
bool
default y
depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES
depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND # waylandpp
depends on BR2_HOST_GCC_AT_LEAST_4_9 # waylandpp
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # waylandpp
depends on BR2_INSTALL_LIBSTDCPP # waylandpp
depends on BR2_PACKAGE_WAYLAND # waylandpp
select BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11
bool
default y
depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
comment "kodi needs an OpenGL EGL backend with OpenGL or GLES support"
depends on !BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
menuconfig BR2_PACKAGE_KODI
bool "kodi"
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libass -> harfbuzz
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on !BR2_TOOLCHAIN_USES_MUSL
depends on BR2_USE_WCHAR
depends on !BR2_STATIC_LIBS # gnutls, python3 and others
depends on BR2_PACKAGE_HAS_LIBEGL
depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
depends on BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
depends on BR2_PACKAGE_PYTHON3
depends on !BR2_PACKAGE_PYTHON3_PYC_ONLY
select BR2_NEEDS_HOST_JAVA
select BR2_PACKAGE_FFMPEG
select BR2_PACKAGE_FFMPEG_GPL
select BR2_PACKAGE_FFMPEG_POSTPROC
select BR2_PACKAGE_FFMPEG_SWSCALE
select BR2_PACKAGE_FLATBUFFERS
select BR2_PACKAGE_FMT
select BR2_PACKAGE_FONTCONFIG # needed for libass
select BR2_PACKAGE_FREETYPE
select BR2_PACKAGE_FSTRCMP
select BR2_PACKAGE_LIBASS
select BR2_PACKAGE_LIBCDIO
select BR2_PACKAGE_LIBCROSSGUID
select BR2_PACKAGE_LIBCURL
select BR2_PACKAGE_LIBDRM
select BR2_PACKAGE_LIBFRIBIDI
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
select BR2_PACKAGE_LIBICONV_EXTRA_ENCODINGS if !BR2_ENABLE_LOCALE
select BR2_PACKAGE_LIBPLIST
select BR2_PACKAGE_LZO
select BR2_PACKAGE_OPENSSL
select BR2_PACKAGE_PCRE
select BR2_PACKAGE_PCRE_UCP
select BR2_PACKAGE_PYTHON3_2TO3
select BR2_PACKAGE_PYTHON3_PYEXPAT
select BR2_PACKAGE_PYTHON3_SQLITE
select BR2_PACKAGE_PYTHON3_SSL
select BR2_PACKAGE_PYTHON3_UNICODEDATA
select BR2_PACKAGE_PYTHON3_ZLIB
select BR2_PACKAGE_RAPIDJSON
select BR2_PACKAGE_SPDLOG
select BR2_PACKAGE_SQLITE
select BR2_PACKAGE_TAGLIB
select BR2_PACKAGE_TINYXML
select BR2_PACKAGE_ZLIB
select BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY if BR2_TOOLCHAIN_USES_GLIBC # runtime UTF conversion support
select BR2_PACKAGE_LIBINPUT if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM
select BR2_PACKAGE_LIBXKBCOMMON if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM
select BR2_PACKAGE_LIBXKBCOMMON if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND
select BR2_PACKAGE_WAYLANDPP if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND
select BR2_PACKAGE_XLIB_LIBXRANDR if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11
help
Kodi is an award-winning free and open source (GPL) software
media player and entertainment hub for digital media.
http://kodi.tv
if BR2_PACKAGE_KODI
config BR2_PACKAGE_KODI_ALSA_LIB
bool "alsa"
select BR2_PACKAGE_ALSA_LIB
help
Enable alsa support.
config BR2_PACKAGE_KODI_AVAHI
bool "avahi"
select BR2_PACKAGE_AVAHI
select BR2_PACKAGE_AVAHI_DAEMON
help
Enable Avahi support.
Select this if you want Kodi to support Bonjour protocol.
config BR2_PACKAGE_KODI_BLUEZ
bool "bluetooth"
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 # bluez5_utils
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # bluez5_utils
select BR2_PACKAGE_BLUEZ5_UTILS
select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_AUDIO
select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HID
help
Enable bluetooth support
config BR2_PACKAGE_KODI_DBUS
bool "dbus"
select BR2_PACKAGE_DBUS
help
Enable D-Bus support
config BR2_PACKAGE_KODI_EVENTCLIENTS
bool "eventclients"
help
Enable event clients support
https://github.com/xbmc/xbmc/blob/master/tools/EventClients/README.txt
config BR2_PACKAGE_KODI_LIBBLURAY
bool "blu-ray"
select BR2_PACKAGE_LIBBLURAY
help
Enable Blu-ray input support.
Select this if you want to play back Blu-ray content.
config BR2_PACKAGE_KODI_LIBCEC
bool "hdmi cec"
select BR2_PACKAGE_LIBCEC
help
Enable CEC (Consumer Electronics Control) support.
Select this if you want Kodi to support HDMI CEC.
config BR2_PACKAGE_KODI_LCMS2
bool "lcms2"
select BR2_PACKAGE_LCMS2
help
Enable color management support.
config BR2_PACKAGE_KODI_LIBMICROHTTPD
bool "web server"
select BR2_PACKAGE_LIBMICROHTTPD
help
Enable webserver feature
config BR2_PACKAGE_KODI_LIBNFS
bool "nfs"
# libnfs -> libtirpc
depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC || BR2_TOOLCHAIN_HAS_THREADS
select BR2_PACKAGE_LIBNFS
help
Enable NFS server support.
comment "nfs support needs a toolchain w/ threads support"
depends on !(BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_HAS_NATIVE_RPC)
config BR2_PACKAGE_KODI_MYSQL
bool "mysql"
select BR2_PACKAGE_MYSQL
help
Enable MySQL support
choice
prompt "render system"
default BR2_PACKAGE_KODI_RENDER_SYSTEM_GL
config BR2_PACKAGE_KODI_RENDER_SYSTEM_GL
bool "OpenGL"
depends on BR2_PACKAGE_HAS_LIBGL
select BR2_PACKAGE_LIBGLU
config BR2_PACKAGE_KODI_RENDER_SYSTEM_GLES
bool "GLES"
depends on BR2_PACKAGE_HAS_LIBGLES
endchoice
config BR2_PACKAGE_KODI_PULSEAUDIO
bool "pulseaudio"
depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC
# Pulseaudio support in kodi needs glib support in Pulseaudio,
# see FindPulseAudio.cmake. Kodi meets all dependencies of
# libglib2, so there is no need to propagate them here.
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_PULSEAUDIO
help
Enable Pulseaudio support.
config BR2_PACKAGE_KODI_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_KODI_LIBSMBCLIENT
bool "samba"
depends on BR2_PACKAGE_SAMBA4
help
Enable Samba support
config BR2_PACKAGE_KODI_LIBUSB
bool "usb"
# https://github.com/xbmc/xbmc/blob/Jarvis/configure.ac#L1554
# "if libudev is available, we don't need libusb"
depends on !BR2_PACKAGE_HAS_UDEV
select BR2_PACKAGE_LIBUSB
select BR2_PACKAGE_LIBUSB_COMPAT
help
Enable libusb support.
config BR2_PACKAGE_KODI_LIBVDPAU
bool "vdpau"
depends on BR2_PACKAGE_KODI_PLATFORM_X11 && \
BR2_PACKAGE_KODI_RENDER_SYSTEM_GL
select BR2_PACKAGE_LIBVDPAU
help
Enable libvdpau support.
comment "libvdpau support needs platform 'X11/OpenGL'"
depends on !BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11 || \
!BR2_PACKAGE_KODI_RENDER_SYSTEM_GL
config BR2_PACKAGE_KODI_UPNP
bool "upnp"
help
Enable UPnP support
config BR2_PACKAGE_KODI_OPTICALDRIVE
bool "optical drives"
help
Add support for optical drives, to read e.g. DVDs...
menu "Audio decoder addons"
source "package/kodi-audiodecoder-modplug/Config.in"
source "package/kodi-audiodecoder-nosefart/Config.in"
source "package/kodi-audiodecoder-sidplay/Config.in"
source "package/kodi-audiodecoder-snesapu/Config.in"
source "package/kodi-audiodecoder-stsound/Config.in"
source "package/kodi-audiodecoder-timidity/Config.in"
source "package/kodi-audiodecoder-vgmstream/Config.in"
endmenu
menu "Audio encoder addons"
source "package/kodi-audioencoder-flac/Config.in"
source "package/kodi-audioencoder-lame/Config.in"
source "package/kodi-audioencoder-vorbis/Config.in"
source "package/kodi-audioencoder-wav/Config.in"
endmenu
menu "Peripheral addons"
source "package/kodi-peripheral-joystick/Config.in"
source "package/kodi-peripheral-xarcade/Config.in"
endmenu
menu "Inputstream addons"
source "package/kodi-inputstream-adaptive/Config.in"
source "package/kodi-inputstream-ffmpegdirect/Config.in"
source "package/kodi-inputstream-rtmp/Config.in"
endmenu
menu "PVR addons"
source "package/kodi-pvr-argustv/Config.in"
source "package/kodi-pvr-dvblink/Config.in"
source "package/kodi-pvr-dvbviewer/Config.in"
source "package/kodi-pvr-filmon/Config.in"
source "package/kodi-pvr-hdhomerun/Config.in"
source "package/kodi-pvr-hts/Config.in"
source "package/kodi-pvr-iptvsimple/Config.in"
source "package/kodi-pvr-mediaportal-tvserver/Config.in"
source "package/kodi-pvr-mythtv/Config.in"
source "package/kodi-pvr-nextpvr/Config.in"
source "package/kodi-pvr-njoy/Config.in"
source "package/kodi-pvr-octonet/Config.in"
source "package/kodi-pvr-pctv/Config.in"
source "package/kodi-pvr-stalker/Config.in"
source "package/kodi-pvr-vbox/Config.in"
source "package/kodi-pvr-vdr-vnsi/Config.in"
source "package/kodi-pvr-vuplus/Config.in"
source "package/kodi-pvr-wmc/Config.in"
source "package/kodi-pvr-zattoo/Config.in"
endmenu
menu "Screensavers"
source "package/kodi-screensaver-asteroids/Config.in"
source "package/kodi-screensaver-asterwave/Config.in"
source "package/kodi-screensaver-biogenesis/Config.in"
source "package/kodi-screensaver-cpblobs/Config.in"
source "package/kodi-screensaver-greynetic/Config.in"
source "package/kodi-screensaver-matrixtrails/Config.in"
source "package/kodi-screensaver-pingpong/Config.in"
source "package/kodi-screensaver-pyro/Config.in"
source "package/kodi-screensaver-rsxs/Config.in"
source "package/kodi-screensaver-stars/Config.in"
endmenu
menu "Skins"
source "package/kodi-skin-confluence/Config.in"
endmenu
menu "Virtual file systems"
source "package/kodi-vfs-libarchive/Config.in"
source "package/kodi-vfs-rar/Config.in"
source "package/kodi-vfs-sftp/Config.in"
endmenu
menu "Visualisations"
source "package/kodi-visualisation-fishbmc/Config.in"
source "package/kodi-visualisation-goom/Config.in"
source "package/kodi-visualisation-matrix/Config.in"
source "package/kodi-visualisation-shadertoy/Config.in"
source "package/kodi-visualisation-spectrum/Config.in"
source "package/kodi-visualisation-starburst/Config.in"
source "package/kodi-visualisation-waveform/Config.in"
endmenu
endif # BR2_PACKAGE_KODI
+39
View File
@@ -0,0 +1,39 @@
#!/bin/sh
#
# Starts Kodi
#
BIN=/usr/bin/br-kodi
KODI=/usr/lib/kodi/kodi.bin
KODI_ARGS="--standalone -fs -n"
PIDFILE=/var/run/kodi.pid
start() {
printf "Starting Kodi: "
start-stop-daemon -S -q -b -m -p $PIDFILE --exec $BIN -- $KODI $KODI_ARGS
[ $? = 0 ] && echo "OK" || echo "FAIL"
}
stop() {
printf "Stopping Kodi: "
start-stop-daemon -K -q -p $PIDFILE
[ $? = 0 ] && echo "OK" || echo "FAIL"
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
+36
View File
@@ -0,0 +1,36 @@
#!/bin/sh
# We're called with the real Kodi executable as
# first argument, followed by any Kodi extra args
KODI="${1}"
shift
# In case someone asked we terminate, just kill
# the Kodi process
trap_kill() {
LOOP=0
killall "${KODI##*/}"
}
trap trap_kill INT QUIT TERM
LOOP=1
while [ ${LOOP} -eq 1 ]; do
# Hack: BusyBox ash does not catch signals while a non-builtin
# is running, and only catches the signal when the non-builtin
# command ends. So, we just background the Kodi binary, and wait
# for it. But BusyBox' ash's wait builtin does not return the
# exit code even if there was only one job (which is correct
# for POSIX). So we explicitly wait for the Kodi job
"${KODI}" "${@}" &
wait %1
ret=$?
case "${ret}" in
0) ;;
64) poweroff; LOOP=0;;
66) reboot; LOOP=0;;
*) # Crash
sleep 1
;;
esac
done
exit ${ret}
+6
View File
@@ -0,0 +1,6 @@
# Locally computed
sha256 440f47e475dd8a48e0a6d41349e83b74890f3fbe8275d3e401d3c50f5b9ea09b kodi-19.3-Matrix.tar.gz
sha256 38816f8373e243bc5950449b4f3b18938c4e1c59348e3411e23f31db4072e40d kodi-libdvdcss-1.4.2-Leia-Beta-5.tar.gz
sha256 071e414e61b795f2ff9015b21a85fc009dde967f27780d23092643916538a57a kodi-libdvdnav-6.0.0-Leia-Alpha-3.tar.gz
sha256 a30b6aa0aad0f2c505bc77948af2d5531a80b6e68112addb4c123fca24d5d3bf kodi-libdvdread-6.0.0-Leia-Alpha-3.tar.gz
sha256 9d2396ef3e091d3b82bc84143e070700412984e8589513570f54e0675d1e8851 LICENSE.md
+397
View File
@@ -0,0 +1,397 @@
################################################################################
#
# kodi
#
################################################################################
# When updating the version, please also update kodi-jsonschemabuilder
# and kodi-texturepacker
KODI_VERSION_MAJOR = 19.3
KODI_VERSION_NAME = Matrix
KODI_VERSION = $(KODI_VERSION_MAJOR)-$(KODI_VERSION_NAME)
KODI_SITE = $(call github,xbmc,xbmc,$(KODI_VERSION))
KODI_LICENSE = GPL-2.0
KODI_LICENSE_FILES = LICENSE.md
KODI_CPE_ID_VENDOR = kodi
KODI_CPE_ID_VERSION = $(KODI_VERSION_MAJOR)
# needed for binary addons
KODI_INSTALL_STAGING = YES
# kodi recommends building out-of-source
KODI_SUPPORTS_IN_SOURCE_BUILD = NO
KODI_DEPENDENCIES = \
ffmpeg \
flatbuffers \
fmt \
fontconfig \
freetype \
fstrcmp \
host-flatbuffers \
host-gawk \
host-gettext \
host-gperf \
host-kodi-jsonschemabuilder \
host-kodi-texturepacker \
host-nasm \
host-swig \
host-xmlstarlet \
libass \
libcdio \
libcrossguid \
libcurl \
libdrm \
libegl \
libfribidi \
libplist \
lzo \
openssl \
pcre \
python3 \
rapidjson \
spdlog \
sqlite \
taglib \
tinyxml \
zlib
# taken from tools/depends/target/*/*-VERSION
KODI_LIBDVDCSS_VERSION = 1.4.2-Leia-Beta-5
KODI_LIBDVDNAV_VERSION = 6.0.0-Leia-Alpha-3
KODI_LIBDVDREAD_VERSION = 6.0.0-Leia-Alpha-3
KODI_EXTRA_DOWNLOADS += \
$(call github,xbmc,libdvdcss,$(KODI_LIBDVDCSS_VERSION))/kodi-libdvdcss-$(KODI_LIBDVDCSS_VERSION).tar.gz \
$(call github,xbmc,libdvdnav,$(KODI_LIBDVDNAV_VERSION))/kodi-libdvdnav-$(KODI_LIBDVDNAV_VERSION).tar.gz \
$(call github,xbmc,libdvdread,$(KODI_LIBDVDREAD_VERSION))/kodi-libdvdread-$(KODI_LIBDVDREAD_VERSION).tar.gz
KODI_CONF_OPTS += \
-DCMAKE_C_FLAGS="$(TARGET_CFLAGS) $(KODI_C_FLAGS)" \
-DENABLE_APP_AUTONAME=OFF \
-DENABLE_CCACHE=OFF \
-DENABLE_DVDCSS=ON \
-DENABLE_INTERNAL_CROSSGUID=OFF \
-DWITH_FFMPEG=$(STAGING_DIR)/usr \
-DENABLE_INTERNAL_FLATBUFFERS=OFF \
-DFLATBUFFERS_FLATC_EXECUTABLE=$(HOST_DIR)/bin/flatc \
-DKODI_DEPENDSBUILD=OFF \
-DENABLE_LDGOLD=OFF \
-DNATIVEPREFIX=$(HOST_DIR) \
-DDEPENDS_PATH=$(STAGING_DIR)/usr \
-DENABLE_TESTING=OFF \
-DWITH_JSONSCHEMABUILDER=$(HOST_DIR)/bin/JsonSchemaBuilder \
-DWITH_TEXTUREPACKER=$(HOST_DIR)/bin/TexturePacker \
-DLIBDVDCSS_URL=$(KODI_DL_DIR)/kodi-libdvdcss-$(KODI_LIBDVDCSS_VERSION).tar.gz \
-DLIBDVDNAV_URL=$(KODI_DL_DIR)/kodi-libdvdnav-$(KODI_LIBDVDNAV_VERSION).tar.gz \
-DLIBDVDREAD_URL=$(KODI_DL_DIR)/kodi-libdvdread-$(KODI_LIBDVDREAD_VERSION).tar.gz
ifeq ($(BR2_PACKAGE_KODI_RENDER_SYSTEM_GL),y)
KODI_CONF_OPTS += -DAPP_RENDER_SYSTEM=gl
KODI_DEPENDENCIES += libgl libglu
else ifeq ($(BR2_PACKAGE_KODI_RENDER_SYSTEM_GLES),y)
KODI_CONF_OPTS += -DAPP_RENDER_SYSTEM=gles
KODI_DEPENDENCIES += libgles
endif
ifeq ($(BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM),y)
KODI_CORE_PLATFORM_NAME += gbm
KODI_DEPENDENCIES += libinput libxkbcommon mesa3d
endif
ifeq ($(BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND),y)
KODI_CONF_OPTS += \
-DPC_WAYLANDPP_SCANNER=$(HOST_DIR)/bin/wayland-scanner \
-DPC_WAYLANDPP_SCANNER_FOUND=ON
KODI_CORE_PLATFORM_NAME += wayland
KODI_DEPENDENCIES += libxkbcommon waylandpp
endif
ifeq ($(BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11),y)
KODI_CORE_PLATFORM_NAME += x11
KODI_DEPENDENCIES += \
xlib_libX11 \
xlib_libXext \
xlib_libXrandr
endif
KODI_CONF_OPTS += -DCORE_PLATFORM_NAME="$(KODI_CORE_PLATFORM_NAME)"
ifeq ($(BR2_ENABLE_LOCALE),)
KODI_DEPENDENCIES += libiconv
endif
ifeq ($(BR2_arceb)$(BR2_arcle),y)
KODI_CONF_OPTS += -DWITH_ARCH=arc -DWITH_CPU=arc
else ifeq ($(BR2_armeb),y)
KODI_CONF_OPTS += -DWITH_ARCH=arm -DWITH_CPU=arm
else ifeq ($(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el),y)
KODI_CONF_OPTS += \
-DWITH_ARCH=mips$(if $(BR2_ARCH_IS_64),64) \
-DWITH_CPU=mips$(if $(BR2_ARCH_IS_64),64)
else ifeq ($(BR2_powerpc)$(BR2_powerpc64le),y)
KODI_CONF_OPTS += \
-DWITH_ARCH=powerpc$(if $(BR2_ARCH_IS_64),64) \
-DWITH_CPU=powerpc$(if $(BR2_ARCH_IS_64),64)
else ifeq ($(BR2_powerpc64)$(BR2_sparc64)$(BR2_sh4)$(BR2_xtensa),y)
KODI_CONF_OPTS += -DWITH_ARCH=$(BR2_ARCH) -DWITH_CPU=$(BR2_ARCH)
else
# Kodi auto-detects ARCH, tested: arm, aarch64, i386, x86_64
# see project/cmake/scripts/linux/ArchSetup.cmake
KODI_CONF_OPTS += -DWITH_CPU=$(BR2_ARCH)
endif
ifeq ($(BR2_X86_CPU_HAS_SSE),y)
KODI_CONF_OPTS += -D_SSE_OK=ON -D_SSE_TRUE=ON
else
KODI_CONF_OPTS += -D_SSE_OK=OFF -D_SSE_TRUE=OFF
endif
ifeq ($(BR2_X86_CPU_HAS_SSE2),y)
KODI_CONF_OPTS += -D_SSE2_OK=ON -D_SSE2_TRUE=ON
else
KODI_CONF_OPTS += -D_SSE2_OK=OFF -D_SSE2_TRUE=OFF
endif
ifeq ($(BR2_X86_CPU_HAS_SSE3),y)
KODI_CONF_OPTS += -D_SSE3_OK=ON -D_SSE3_TRUE=ON
else
KODI_CONF_OPTS += -D_SSE3_OK=OFF -D_SSE3_TRUE=OFF
endif
ifeq ($(BR2_X86_CPU_HAS_SSSE3),y)
KODI_CONF_OPTS += -D_SSSE3_OK=ON -D_SSSE3_TRUE=ON
else
KODI_CONF_OPTS += -D_SSSE3_OK=OFF -D_SSSE3_TRUE=OFF
endif
ifeq ($(BR2_X86_CPU_HAS_SSE4),y)
KODI_CONF_OPTS += -D_SSE41_OK=ON -D_SSE41_TRUE=ON
else
KODI_CONF_OPTS += -D_SSE41_OK=OFF -D_SSE41_TRUE=OFF
endif
ifeq ($(BR2_X86_CPU_HAS_SSE42),y)
KODI_CONF_OPTS += -D_SSE42_OK=ON -D_SSE42_TRUE=ON
else
KODI_CONF_OPTS += -D_SSE42_OK=OFF -D_SSE42_TRUE=OFF
endif
ifeq ($(BR2_X86_CPU_HAS_AVX),y)
KODI_CONF_OPTS += -D_AVX_OK=ON -D_AVX_TRUE=ON
else
KODI_CONF_OPTS += -D_AVX_OK=OFF -D_AVX_TRUE=OFF
endif
ifeq ($(BR2_X86_CPU_HAS_AVX2),y)
KODI_CONF_OPTS += -D_AVX2_OK=ON -D_AVX2_TRUE=ON
else
KODI_CONF_OPTS += -D_AVX2_OK=OFF -D_AVX2_TRUE=OFF
endif
# mips: uses __atomic_load_8
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
KODI_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic
endif
ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_5),)
KODI_C_FLAGS += -std=gnu99
endif
ifeq ($(BR2_PACKAGE_KODI_MYSQL),y)
KODI_CONF_OPTS += -DENABLE_MYSQLCLIENT=ON
KODI_DEPENDENCIES += mysql
else
KODI_CONF_OPTS += -DENABLE_MYSQLCLIENT=OFF
endif
ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
KODI_CONF_OPTS += -DENABLE_UDEV=ON
KODI_DEPENDENCIES += udev
else
KODI_CONF_OPTS += -DENABLE_UDEV=OFF
ifeq ($(BR2_PACKAGE_KODI_LIBUSB),y)
KODI_CONF_OPTS += -DENABLE_LIBUSB=ON
KODI_DEPENDENCIES += libusb-compat
else
KODI_CONF_OPTS += -DENABLE_LIBUSB=OFF
endif
endif
ifeq ($(BR2_PACKAGE_LIBCAP),y)
KODI_CONF_OPTS += -DENABLE_CAP=ON
KODI_DEPENDENCIES += libcap
else
KODI_CONF_OPTS += -DENABLE_CAP=OFF
endif
ifeq ($(BR2_PACKAGE_LIBXML2)$(BR2_PACKAGE_LIBXSLT),yy)
KODI_CONF_OPTS += -DENABLE_XSLT=ON
KODI_DEPENDENCIES += libxml2 libxslt
else
KODI_CONF_OPTS += -DENABLE_XSLT=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_BLUEZ),y)
KODI_CONF_OPTS += -DENABLE_BLUETOOTH=ON
KODI_DEPENDENCIES += bluez5_utils
else
KODI_CONF_OPTS += -DENABLE_BLUETOOTH=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_DBUS),y)
KODI_DEPENDENCIES += dbus
KODI_CONF_OPTS += -DENABLE_DBUS=ON
else
KODI_CONF_OPTS += -DENABLE_DBUS=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_EVENTCLIENTS),y)
KODI_CONF_OPTS += -DENABLE_EVENTCLIENTS=ON
else
KODI_CONF_OPTS += -DENABLE_EVENTCLIENTS=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_ALSA_LIB),y)
KODI_CONF_OPTS += -DENABLE_ALSA=ON
KODI_DEPENDENCIES += alsa-lib
else
KODI_CONF_OPTS += -DENABLE_ALSA=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIBMICROHTTPD),y)
KODI_CONF_OPTS += -DENABLE_MICROHTTPD=ON
KODI_DEPENDENCIES += libmicrohttpd
else
KODI_CONF_OPTS += -DENABLE_MICROHTTPD=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIBSMBCLIENT),y)
KODI_DEPENDENCIES += samba4
KODI_CONF_OPTS += -DENABLE_SMBCLIENT=ON
else
KODI_CONF_OPTS += -DENABLE_SMBCLIENT=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIBNFS),y)
KODI_DEPENDENCIES += libnfs
KODI_CONF_OPTS += -DENABLE_NFS=ON
else
KODI_CONF_OPTS += -DENABLE_NFS=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIBBLURAY),y)
KODI_DEPENDENCIES += libbluray
KODI_CONF_OPTS += -DENABLE_BLURAY=ON
else
KODI_CONF_OPTS += -DENABLE_BLURAY=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIBSHAIRPLAY),y)
KODI_DEPENDENCIES += libshairplay
KODI_CONF_OPTS += -DENABLE_AIRTUNES=ON
else
KODI_CONF_OPTS += -DENABLE_AIRTUNES=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_AVAHI),y)
KODI_DEPENDENCIES += avahi
KODI_CONF_OPTS += -DENABLE_AVAHI=ON
else
KODI_CONF_OPTS += -DENABLE_AVAHI=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIBCEC),y)
KODI_DEPENDENCIES += libcec
KODI_CONF_OPTS += -DENABLE_CEC=ON
else
KODI_CONF_OPTS += -DENABLE_CEC=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LCMS2),y)
KODI_DEPENDENCIES += lcms2
KODI_CONF_OPTS += -DENABLE_LCMS2=ON
else
KODI_CONF_OPTS += -DENABLE_LCMS2=OFF
endif
ifeq ($(BR2_PACKAGE_LIRC_TOOLS),y)
KODI_DEPENDENCIES += lirc-tools
endif
ifeq ($(BR2_PACKAGE_LIBVA),y)
KODI_DEPENDENCIES += libva
KODI_CONF_OPTS += -DENABLE_VAAPI=ON
else
KODI_CONF_OPTS += -DENABLE_VAAPI=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIBVDPAU),y)
KODI_DEPENDENCIES += libvdpau
KODI_CONF_OPTS += -DENABLE_VDPAU=ON
else
KODI_CONF_OPTS += -DENABLE_VDPAU=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_UPNP),y)
KODI_CONF_OPTS += -DENABLE_UPNP=ON
else
KODI_CONF_OPTS += -DENABLE_UPNP=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_OPTICALDRIVE),y)
KODI_CONF_OPTS += -DENABLE_OPTICAL=ON
else
KODI_CONF_OPTS += -DENABLE_OPTICAL=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_PULSEAUDIO),y)
KODI_CONF_OPTS += -DENABLE_PULSEAUDIO=ON
KODI_DEPENDENCIES += pulseaudio
else
KODI_CONF_OPTS += -DENABLE_PULSEAUDIO=OFF
endif
ifeq ($(BR2_PACKAGE_LIBUDFREAD),y)
KODI_DEPENDENCIES += libudfread
else
KODI_CONF_OPTS += -DENABLE_INTERNAL_UDFREAD=OFF
endif
# Remove versioncheck addon, updating Kodi is done by building a new
# buildroot image.
KODI_ADDON_MANIFEST = $(TARGET_DIR)/usr/share/kodi/system/addon-manifest.xml
define KODI_CLEAN_UNUSED_ADDONS
rm -Rf $(TARGET_DIR)/usr/share/kodi/addons/service.xbmc.versioncheck
$(HOST_DIR)/bin/xml ed -L \
-d "/addons/addon[text()='service.xbmc.versioncheck']" \
$(KODI_ADDON_MANIFEST)
endef
KODI_POST_INSTALL_TARGET_HOOKS += KODI_CLEAN_UNUSED_ADDONS
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
endef
$(eval $(cmake-package))
+12
View File
@@ -0,0 +1,12 @@
[Unit]
Description = Kodi Entertainment Center
After = network.target
[Service]
Type = simple
ExecStart = /usr/lib/kodi/kodi.bin --standalone -fs -n
Restart = on-failure
[Install]
WantedBy = multi-user.target