libgpg-error: fix riscv64
[openadk.git] / package / kodi / Makefile
blob9fb6deccb409f628cd33cc537ed4756b3514a682
1 # This file is part of the OpenADK project. OpenADK is copyrighted
2 # material, please see the LICENCE file in the top-level directory.
4 include $(ADK_TOPDIR)/rules.mk
6 PKG_NAME:= kodi
7 PKG_VERSION:= 21.0b2
8 PKG_RELEASE:= 1
9 PKG_HASH:= b9d6ecbb8769cdfe00cbbe5da5c330a7624eee50cffb87d87f6271033f1ee74b
10 PKG_DESCR:= software media player
11 PKG_SECTION:= mm/video
12 PKG_DEPENDS:= python3 libsquish libressl libxz libfmt rapidjson
13 PKG_DEPENDS+= libass libmpeg2 libmad libmodplug libcurl libxshmfence
14 PKG_DEPENDS+= libflac libbz2 libtiff libnettle librtmp liblzo
15 PKG_DEPENDS+= yajl tinyxml libsqlite libpcrecpp libncurses libpng
16 PKG_DEPENDS+= libpcre libcdio libfreetype libsamplerate libuuid
17 PKG_DEPENDS+= taglib libjasper libmp3lame libgpg-error giflib
18 PKG_DEPENDS+= glib libdcadec libffmpeg libxvidcore libiconv harfbuzz
19 PKG_DEPENDS+= flatbuffers fstrcmp spdlog mesa libinput libxkbcommon
20 PKG_DEPENDS+= xkeyboard-config tinyxml2 libdisplay-info libudfread
21 PKG_BUILDDEP:= python3 libass ffmpeg rtmpdump libiconv libudfread
22 PKG_BUILDDEP+= libmpeg2 libmad libjpeg-turbo fmt rapidjson
23 PKG_BUILDDEP+= curl flac bzip2 libtiff yajl cmake-host libdisplay-info
24 PKG_BUILDDEP+= tinyxml tinyxml2 sqlite pcre libcdio freetype libpng
25 PKG_BUILDDEP+= libsamplerate taglib libjasper giflib xkeyboard-config
26 PKG_BUILDDEP+= glib libmodplug libgpg-error xvidcore libxshmfence
27 PKG_BUILDDEP+= swig-host liblzo-host libpng-host libjpeg-turbo-host
28 PKG_BUILDDEP+= zip-host unzip-host giflib-host libsquish libdcadec
29 PKG_BUILDDEP+= libcrossguid libressl xz bzip2 liblzo harfbuzz
30 PKG_BUILDDEP+= flatbuffers fstrcmp spdlog mesa libinput libxkbcommon
31 PKG_NEEDS:= threads c++ data iconv
32 PKG_URL:= http://kodi.tv/
33 PKG_SITES:= https://github.com/xbmc/xbmc/archive/
35 DISTFILES:= $(PKG_VERSION)-Omega.tar.gz
36 WRKDIST= ${WRKDIR}/xbmc-$(PKG_VERSION)-Omega
37 WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
39 PKG_SYSTEM_DEPENDS:= raspberry-pi raspberry-pi2 raspberry-pi3 raspberry-pi4 raspberry-pi4-64 rockpi4-plus raspberry-pi5
41 PKG_FLAVOURS_KODI:= WITH_ALSA WITH_CEC WITH_PULSEAUDIO WITH_SMB
42 PKG_FLAVOURS_KODI+= WITH_MICROHTTPD WITH_SSH WITH_AVAHI
43 PKGFD_WITH_ALSA:= enable alsa support
44 PKGFS_WITH_ALSA:= alsa-lib
45 PKGFB_WITH_ALSA:= alsa-lib
46 PKGFD_WITH_AVAHI:= enable avahi support
47 PKGFS_WITH_AVAHI:= libavahi
48 PKGFB_WITH_AVAHI:= avahi
49 PKGFD_WITH_CEC:= enable cec support
50 PKGFS_WITH_CEC:= libcec
51 PKGFB_WITH_CEC:= libcec
52 PKGFD_WITH_MICROHTTPD:= enable microhttpd support
53 PKGFS_WITH_MICROHTTPD:= libmicrohttpd
54 PKGFB_WITH_MICROHTTPD:= libmicrohttpd
55 PKGFD_WITH_PULSEAUDIO:= enable pulseaudio support
56 PKGFS_WITH_PULSEAUDIO:= pulseaudio
57 PKGFB_WITH_PULSEAUDIO:= pulseaudio
58 PKGFD_WITH_SMB:= enable smb support
59 PKGFS_WITH_SMB:= samba
60 PKGFB_WITH_SMB:= samba
61 PKGFD_WITH_SSH:= enable ssh support
62 PKGFS_WITH_SSH:= libssh
63 PKGFB_WITH_SSH:= libssh
65 include $(ADK_TOPDIR)/mk/package.mk
67 $(eval $(call PKG_template,KODI,kodi,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
69 HOST_CXXFLAGS:= -DTARGET_POSIX -DTARGET_LINUX -D_LINUX -I$(WRKSRC)/xbmc/linux
70 CONFIG_STYLE:= cmake
71 CMAKE_FLAGS+= -DENABLE_CCACHE=OFF \
72 -DCMAKE_BUILD_TYPE=Release \
73 -DVERBOSE=ON \
74 -DENABLE_DVDCSS=ON \
75 -DENABLE_INTERNAL_CROSSGUID=OFF \
76 -DENABLE_INTERNAL_FFMPEG=OFF \
77 -DENABLE_INTERNAL_RapidJSON=OFF \
78 -DWITH_FFMPEG=$(STAGING_TARGET_DIR)/usr \
79 -DPYTHON_EXECUTABLE=$(STAGING_HOST_DIR)/usr/bin/python3 \
80 -DPYTHON_INCLUDE_DIRS=$(STAGING_TARGET_DIR)/usr/include/python3.11 \
81 -DPYTHON_PATH=$(STAGING_TARGET_DIR)/usr/lib/python3.11 \
82 -DPYTHON_VER=3.11 \
83 -DKODI_DEPENDSBUILD=OFF \
84 -DENABLE_OPENSSL=ON \
85 -DENABLE_MYSQLCLIENT=OFF \
86 -DENABLE_NONFREE=ON \
87 -DENABLE_CAP=OFF \
88 -DENABLE_XSLT=OFF \
89 -DENABLE_BLUETOOTH=OFF \
90 -DENABLE_BLURAY=OFF \
91 -DENABLE_AIRTUNES=OFF \
92 -DENABLE_LCMS2=OFF \
93 -DENABLE_LIRC=OFF \
94 -DENABLE_UPNP=OFF \
95 -DENABLE_OPTICAL=OFF \
96 -DENABLE_DBUS=OFF \
97 -DENABLE_EVENTCLIENTS=OFF \
98 -DENABLE_UDEV=ON \
99 -DENABLE_PLIST=OFF \
100 -DNATIVEPREFIX=$(STAGING_HOST_DIR)/usr \
101 -DDEPENDS_PATH=$(STAGING_TARGET_DIR)/usr \
102 -DWITH_TEXTUREPACKER=$(STAGING_HOST_DIR)/usr/bin/TexturePacker \
103 -DWITH_JSONSCHEMABUILDER=$(STAGING_HOST_DIR)/usr/bin/JsonSchemaBuilder \
104 -DCMAKE_EXE_LINKER_FLAGS=-latomic \
105 -DLIBDVDCSS_URL=$(DL_DIR)/libdvdcss-1.4.3-Next-Nexus-Alpha2-2.tar.gz \
106 -DLIBDVDNAV_URL=$(DL_DIR)/libdvdnav-6.1.1-Next-Nexus-Alpha2-2.tar.gz \
107 -DLIBDVDREAD_URL=$(DL_DIR)/libdvdread-6.1.3-Next-Nexus-Alpha2-2.tar.gz
109 ifeq ($(ADK_TARGET_ARCH_AARCH64),y)
110 CMAKE_FLAGS+= -DWITH_ARCH=aarch64 \
111 -DWITH_CPU=aarch64 \
112 -DENABLE_NEON=OFF
113 endif
114 ifeq ($(ADK_TARGET_ARCH_ARM),y)
115 -DWITH_ARCH=arm \
116 -DWITH_CPU=arm \
117 -DENABLE_NEON=ON
118 endif
120 ifeq ($(ADK_TARGET_BOARD_BCM28XX),y)
121 CMAKE_FLAGS+= -DCORE_PLATFORM_NAME=gbm \
122 -DAPP_RENDER_SYSTEM=gles \
123 -DENABLE_OPENGL=OFF \
124 -DENABLE_X11=OFF \
125 -DENABLE_OPENGLES=ON
126 endif
128 ifeq ($(ADK_PACKAGE_KODI_WITH_ALSA),y)
129 CMAKE_FLAGS+= -DENABLE_ALSA=ON
130 else
131 CMAKE_FLAGS+= -DENABLE_ALSA=OFF
132 endif
133 ifeq ($(ADK_PACKAGE_KODI_WITH_AVAHI),y)
134 CMAKE_FLAGS+= -DENABLE_AVAHI=ON
135 else
136 CMAKE_FLAGS+= -DENABLE_AVAHI=OFF
137 endif
138 ifeq ($(ADK_PACKAGE_KODI_WITH_CEC),y)
139 CMAKE_FLAGS+= -DENABLE_CEC=ON
140 else
141 CMAKE_FLAGS+= -DENABLE_CEC=OFF
142 endif
143 ifeq ($(ADK_PACKAGE_KODI_WITH_MICROHTTPD),y)
144 CMAKE_FLAGS+= -DENABLE_MICROHTTPD=ON
145 else
146 CMAKE_FLAGS+= -DENABLE_MICROHTTPD=OFF
147 endif
148 ifeq ($(ADK_PACKAGE_KODI_WITH_PULSEAUDIO),y)
149 CMAKE_FLAGS+= -DENABLE_PULSEAUDIO=ON
150 else
151 CMAKE_FLAGS+= -DENABLE_PULSEAUDIO=OFF
152 endif
153 ifeq ($(ADK_PACKAGE_KODI_WITH_SMB),y)
154 CMAKE_FLAGS+= -DENABLE_SMBCLIENT=ON
155 else
156 CMAKE_FLAGS+= -DENABLE_SMBCLIENT=OFF
157 endif
158 ifeq ($(ADK_PACKAGE_KODI_WITH_SSH),y)
159 CMAKE_FLAGS+= -DENABLE_SSH=ON
160 else
161 CMAKE_FLAGS+= -DENABLE_SSH=OFF
162 endif
164 XAKE_FLAGS+= VERBOSE=1
165 TARGET_LDFLAGS+= -latomic -liconv
167 KODI_LIBDVDCSS_VERSION = 1.4.3-Next-Nexus-Alpha2-2
168 KODI_LIBDVDNAV_VERSION = 6.1.1-Next-Nexus-Alpha2-2
169 KODI_LIBDVDREAD_VERSION = 6.1.3-Next-Nexus-Alpha2-2
171 pre-configure:
172 #(cd $(WRKSRC)/tools/depends/native/JsonSchemaBuilder/src && PATH='$(HOST_PATH)' cmake .)
173 #PATH='$(HOST_PATH)' make -C $(WRKSRC)/tools/depends/native/JsonSchemaBuilder/src
174 #cp $(WRKSRC)/tools/depends/native/JsonSchemaBuilder/src/JsonSchemaBuilder \
175 # $(STAGING_HOST_DIR)/usr/bin/JsonSchemaBuilder
176 #(cd $(WRKSRC)/tools/depends/native/TexturePacker/src && PATH='$(HOST_PATH)' cmake \
177 # -DKODI_SOURCE_DIR=$(WRKSRC) \
178 # -DCMAKE_MODULE_PATH=$(WRKSRC)/cmake/modules \
179 # -DCMAKE_CXX_FLAGS="$(HOST_CXXFLAGS)" .)
180 #PATH='$(HOST_PATH)' make -C $(WRKSRC)/tools/depends/native/TexturePacker/src
181 #cp $(WRKSRC)/tools/depends/native/TexturePacker/src/TexturePacker \
182 # $(STAGING_HOST_DIR)/usr/bin
183 (cd $(DL_DIR) && wget -O libdvdcss-$(KODI_LIBDVDCSS_VERSION).tar.gz https://github.com/xbmc/libdvdcss/archive/refs/tags/$(KODI_LIBDVDCSS_VERSION).tar.gz)
184 (cd $(DL_DIR) && wget -O libdvdnav-$(KODI_LIBDVDNAV_VERSION).tar.gz https://github.com/xbmc/libdvdnav/archive/refs/tags/$(KODI_LIBDVDNAV_VERSION).tar.gz)
185 (cd $(DL_DIR) && wget -O libdvdread-$(KODI_LIBDVDREAD_VERSION).tar.gz https://github.com/xbmc/libdvdread/archive/refs/tags/$(KODI_LIBDVDREAD_VERSION).tar.gz)
187 kodi-install:
188 $(INSTALL_DIR) $(STAGING_TARGET_DIR)/usr/share/kodi
189 $(CP) $(WRKINST)/usr/share/kodi/* \
190 $(STAGING_TARGET_DIR)/usr/share/kodi
191 # we need a symlink to /data
192 cd $(IDIR_KODI)/ && ln -sf ../data/kodi .kodi
193 $(INSTALL_DIR) $(IDIR_KODI)/usr/lib/kodi/addons
194 $(CP) $(WRKINST)/usr/lib/kodi/* \
195 $(IDIR_KODI)/usr/lib/kodi
196 $(INSTALL_DIR) $(IDIR_KODI)/usr/share/kodi
197 $(CP) $(WRKINST)/usr/share/kodi/* \
198 $(IDIR_KODI)/usr/share/kodi
199 $(INSTALL_DIR) $(IDIR_KODI)/usr/bin
200 $(INSTALL_BIN) $(WRKINST)/usr/bin/kodi-standalone \
201 $(IDIR_KODI)/usr/bin
202 $(INSTALL_BIN) $(WRKINST)/usr/bin/kodi \
203 $(IDIR_KODI)/usr/bin
205 include ${ADK_TOPDIR}/mk/pkg-bottom.mk