diff --git a/packages/graphics/mali-rockchip/package.mk b/packages/graphics/mali-rockchip/package.mk new file mode 100644 index 0000000000..4558992354 --- /dev/null +++ b/packages/graphics/mali-rockchip/package.mk @@ -0,0 +1,109 @@ +################################################################################ +# This file is part of LibreELEC - https://libreelec.tv +# Copyright (C) 2017-present Team LibreELEC +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ + +PKG_NAME="mali-rockchip" +PKG_VERSION="db468fa" +PKG_SHA256="986712d7b992f402ef20eefa4043cb971a83d37bb56dc284143aa3725cc2235d" +PKG_ARCH="arm aarch64" +PKG_LICENSE="nonfree" +PKG_SITE="https://github.com/rockchip-linux/libmali" +PKG_URL="https://github.com/rockchip-linux/libmali/archive/$PKG_VERSION.tar.gz" +PKG_SOURCE_DIR="libmali-$PKG_VERSION*" +PKG_SECTION="graphics" +PKG_SHORTDESC="mali-rockchip: OpenGL ES user-space binary for the ARM Mali GPU family" +PKG_LONGDESC="mali-rockchip: OpenGL ES user-space binary for the ARM Mali GPU family" +PKG_TOOLCHAIN="manual" + +if [ "$TARGET_ARCH" = "arm" ]; then + PKG_MALI_ARCH="arm-linux-gnueabihf" +elif [ "$TARGET_ARCH" = "aarch64" ]; then + PKG_MALI_ARCH="aarch64-linux-gnu" +fi + +if [ "$DISPLAYSERVER" = "x11" ]; then + PKG_MALI_SUFFIX="" +elif [ "$DISPLAYSERVER" = "weston" ]; then + PKG_MALI_SUFFIX="-wayland" +else + PKG_MALI_SUFFIX="-gbm" +fi + +if [ "$MALI_FAMILY" = "t760" ]; then + PKG_MALI_FILE="libmali-midgard-t76x-r14p0-r0p0$PKG_MALI_SUFFIX.so" +elif [ "$MALI_FAMILY" = "t860" ]; then + PKG_MALI_FILE="libmali-midgard-t86x-r14p0$PKG_MALI_SUFFIX.so" +elif [ "$MALI_FAMILY" = "450" ]; then + PKG_MALI_FILE="libmali-utgard-450-r7p0$PKG_MALI_SUFFIX.so" +elif [ "$MALI_FAMILY" = "400" ]; then + PKG_MALI_FILE="libmali-utgard-400-r7p0$PKG_MALI_SUFFIX.so" +else + echo "ERROR: Unknown MALI_FAMILY '$MALI_FAMILY', aborting." + exit 1 +fi + +configure_target() { + if [ ! -f "$PKG_BUILD/lib/$PKG_MALI_ARCH/$PKG_MALI_FILE" ]; then + echo "ERROR: $PKG_MALI_ARCH/$PKG_MALI_FILE does not exist, aborting." + exit 1 + fi +} + +makeinstall_target() { + cd $PKG_BUILD + + mkdir -p $SYSROOT_PREFIX/usr/include + cp -PRv include/EGL $SYSROOT_PREFIX/usr/include + cp -PRv include/GLES $SYSROOT_PREFIX/usr/include + cp -PRv include/GLES2 $SYSROOT_PREFIX/usr/include + if [ "$MALI_FAMILY" = "t760" -o "$MALI_FAMILY" = "t860" ]; then + cp -PRv include/GLES3 $SYSROOT_PREFIX/usr/include + fi + cp -PRv include/KHR $SYSROOT_PREFIX/usr/include + cp -PRv include/gbm.h $SYSROOT_PREFIX/usr/include + + mkdir -p $SYSROOT_PREFIX/usr/lib/pkgconfig + cp -PRv $PKG_DIR/pkgconfig/*.pc $SYSROOT_PREFIX/usr/lib/pkgconfig + if [ "$DISPLAYSERVER" != "weston" ]; then + rm -fv $SYSROOT_PREFIX/usr/lib/pkgconfig/wayland-egl.pc + fi + + mkdir -p $SYSROOT_PREFIX/usr/lib + cp -PRv lib/$PKG_MALI_ARCH/$PKG_MALI_FILE $SYSROOT_PREFIX/usr/lib + ln -sfv $PKG_MALI_FILE $SYSROOT_PREFIX/usr/lib/libmali.so + ln -sfv libmali.so $SYSROOT_PREFIX/usr/lib/libMali.so + ln -sfv libmali.so $SYSROOT_PREFIX/usr/lib/libEGL.so + ln -sfv libmali.so $SYSROOT_PREFIX/usr/lib/libGLESv2.so + ln -sfv libmali.so $SYSROOT_PREFIX/usr/lib/libgbm.so + + mkdir -p $INSTALL/usr/lib + cp -PRv lib/$PKG_MALI_ARCH/$PKG_MALI_FILE $INSTALL/usr/lib + ln -sfv $PKG_MALI_FILE $INSTALL/usr/lib/libmali.so + ln -sfv libmali.so $INSTALL/usr/lib/libMali.so + ln -sfv libmali.so $INSTALL/usr/lib/libEGL.so + ln -sfv libmali.so $INSTALL/usr/lib/libEGL.so.1 + ln -sfv libmali.so $INSTALL/usr/lib/libGLESv2.so + ln -sfv libmali.so $INSTALL/usr/lib/libGLESv2.so.2 + ln -sfv libmali.so $INSTALL/usr/lib/libgbm.so + + mkdir -p $INSTALL/usr/lib/modules-load.d + if [ "$MALI_FAMILY" = "t760" -o "$MALI_FAMILY" = "t860" ]; then + echo "mali_kbase" > $INSTALL/usr/lib/modules-load.d/mali.conf + elif [ "$MALI_FAMILY" = "450" -o "$MALI_FAMILY" = "400" ]; then + echo "mali" > $INSTALL/usr/lib/modules-load.d/mali.conf + fi +} diff --git a/packages/graphics/mali-rockchip/pkgconfig/egl.pc b/packages/graphics/mali-rockchip/pkgconfig/egl.pc new file mode 100644 index 0000000000..14da6e3323 --- /dev/null +++ b/packages/graphics/mali-rockchip/pkgconfig/egl.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: egl +Description: ARM Mali implementation of EGL +Version: 1.5 +Requires: +Libs: -L${libdir} -lEGL +Libs.private: -lm -lpthread +Cflags: -I${includedir} diff --git a/packages/graphics/mali-rockchip/pkgconfig/gbm.pc b/packages/graphics/mali-rockchip/pkgconfig/gbm.pc new file mode 100644 index 0000000000..7c99065229 --- /dev/null +++ b/packages/graphics/mali-rockchip/pkgconfig/gbm.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: gbm +Description: Mali GBM library +Requires.private: +Version: 10.4.0 +Libs: -L${libdir} -lgbm +Libs.private: +Cflags: -I${includedir} diff --git a/packages/graphics/mali-rockchip/pkgconfig/glesv2.pc b/packages/graphics/mali-rockchip/pkgconfig/glesv2.pc new file mode 100644 index 0000000000..8bdbf61dc3 --- /dev/null +++ b/packages/graphics/mali-rockchip/pkgconfig/glesv2.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: glesv2 +Description: ARM Mali implementation of OpenGL ESv2 +Version: 2.0 +Requires: +Libs: -L${libdir} -lGLESv2 +Libs.private: -lm -lpthread +Cflags: -I${includedir} diff --git a/packages/graphics/mali-rockchip/pkgconfig/wayland-egl.pc b/packages/graphics/mali-rockchip/pkgconfig/wayland-egl.pc new file mode 100644 index 0000000000..937fed1d09 --- /dev/null +++ b/packages/graphics/mali-rockchip/pkgconfig/wayland-egl.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: wayland-egl +Description: Mali EGL library +Requires.private: +Version: 7.10 +Libs: -L${libdir} -lMali +Libs.private: -lm -lpthread +Cflags: -I${includedir}