From 5b2ceba7f233ff59e6035c9b4d6950b0e617ee41 Mon Sep 17 00:00:00 2001 From: Rudi Heitbaum Date: Sun, 11 May 2025 05:49:56 +0000 Subject: [PATCH] mesa: host: enable build of reusable tools strip the tools and apply upx create a tar file of the reusable mesa:host tools --- distributions/LibreELEC/options | 8 ++++++++ packages/graphics/mesa/package.mk | 23 +++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/distributions/LibreELEC/options b/distributions/LibreELEC/options index f01cbd74d3..dbf13ea55f 100644 --- a/distributions/LibreELEC/options +++ b/distributions/LibreELEC/options @@ -270,3 +270,11 @@ # for a list of additional drivers see packages/linux-driver-addons # Space separated list is supported, DRIVER_ADDONS="crazycat digital_devices dvb-latest" + +# should reusable host tools be built: +# Space separated list is supported, +# list of options are: +# - all (for all host tools to be built) +# - mesa:host +# - save-local (saves a copy in sources/reusable/ + BUILD_REUSABLE="" diff --git a/packages/graphics/mesa/package.mk b/packages/graphics/mesa/package.mk index 3d2bc91349..acd5f15b21 100644 --- a/packages/graphics/mesa/package.mk +++ b/packages/graphics/mesa/package.mk @@ -120,6 +120,29 @@ fi makeinstall_host() { host_files="src/compiler/clc/mesa_clc src/compiler/spirv/vtn_bindgen2 src/panfrost/clc/panfrost_compile" + if listcontains "${BUILD_REUSABLE}" "(all|mesa:host)"; then + # Build the reusable mesa:host for both local and to be added to a GitHub release + strip ${host_files} + upx --lzma ${host_files} + + REUSABLE_SOURCES="${SOURCES}/mesa-reusable" + MESA_HOST="mesa-reusable-${OS_VERSION}-${PKG_VERSION}" + REUSABLE_SOURCE_NAME=${MESA_HOST}-${MACHINE_HARDWARE_NAME}.tar + + mkdir -p "${TARGET_IMG}" + + tar cf ${TARGET_IMG}/${REUSABLE_SOURCE_NAME} --transform='s|.*/||' ${host_files} + sha256sum ${TARGET_IMG}/${REUSABLE_SOURCE_NAME} | \ + cut -d" " -f1 >${TARGET_IMG}/${REUSABLE_SOURCE_NAME}.sha256 + + if listcontains "${BUILD_REUSABLE}" "save-local"; then + mkdir -p "${REUSABLE_SOURCES}" + cp -p ${TARGET_IMG}/${REUSABLE_SOURCE_NAME} ${REUSABLE_SOURCES} + cp -p ${TARGET_IMG}/${REUSABLE_SOURCE_NAME}.sha256 ${REUSABLE_SOURCES} + echo "save-local" >${REUSABLE_SOURCES}/${REUSABLE_SOURCE_NAME}.url + fi + fi + mkdir -p "${TOOLCHAIN}/bin" cp -a ${host_files} "${TOOLCHAIN}/bin" }