blob: 03912ea585d2e2f639c9b0a4b4be78bb26c373b3 [file] [log] [blame]
################################################################################
#
# gcnano-binaries
#
################################################################################
GCNANO_BINARIES_LIB_VERSION = 6.4.15
GCNANO_BINARIES_DRIVER_VERSION = $(GCNANO_BINARIES_LIB_VERSION)
GCNANO_BINARIES_SITE = $(call github,STMicroelectronics,gcnano-binaries,$(GCNANO_BINARIES_VERSION))
GCNANO_BINARIES_VERSION = bbaae49a0e4859ed53f898a250269c8a237261bc
ifeq ($(BR2_arm),y)
GCNANO_BINARIES_USERLAND_VERSION = stm32mp1-$(GCNANO_BINARIES_LIB_VERSION)-20240206
GCNANO_BINARIES_ARCH_TYPE = arm
GCNANO_BINARIES_SOC_PLATFORM = st-mp1
else
GCNANO_BINARIES_USERLAND_VERSION = stm32mp2-$(GCNANO_BINARIES_LIB_VERSION)-20240517
GCNANO_BINARIES_ARCH_TYPE = arm64
GCNANO_BINARIES_SOC_PLATFORM = st-mp2
endif
GCNANO_BINARIES_LICENSE = MIT, Vivante End User Software License Terms
GCNANO_BINARIES_LICENSE_FILES = EULA
GCNANO_BINARIES_REDISTRIBUTE = NO
GCNANO_BINARIES_DEPENDENCIES = linux wayland libdrm
GCNANO_BINARIES_INSTALL_STAGING = YES
GCNANO_BINARIES_PROVIDES = libegl libgles libgbm
# The Github repository doesn't contain the source code as-is: it
# contains a tarball with the kernel driver source code, and a
# self-extractible binary for the user-space parts. So we extract both
# below, and also extract the EULA text from the self-extractible binary
define GCNANO_BINARIES_EXTRACT_HELPER
awk 'BEGIN { start = 0; } \
/^EOEULA/ { start = 0; } \
{ if (start) print; } \
/<<EOEULA/ { start = 1; }' \
$(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_USERLAND_VERSION).bin > $(@D)/EULA
cd $(@D) && sh gcnano-userland-multi-$(GCNANO_BINARIES_USERLAND_VERSION).bin --auto-accept
endef
GCNANO_BINARIES_POST_EXTRACT_HOOKS += GCNANO_BINARIES_EXTRACT_HELPER
GCNANO_BINARIES_MODULE_SUBDIRS = gcnano-driver-stm32mp
GCNANO_BINARIES_MODULE_MAKE_OPTS = \
ARCH_TYPE=$(GCNANO_BINARIES_ARCH_TYPE) \
KERNEL_DIR=$(LINUX_DIR) \
SOC_PLATFORM=$(GCNANO_BINARIES_SOC_PLATFORM) \
AQROOT=$(@D)/gcnano-driver-stm32mp \
DEBUG=0
GCNANO_BINARIES_USERLAND_SUBDIR = gcnano-userland-multi-$(GCNANO_BINARIES_USERLAND_VERSION)
define GCNANO_BINARIES_INSTALL
cd $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/release/drivers/ ; \
find . -type f -exec $(INSTALL) -D -m 0755 {} $(1)/usr/lib/{} \; ; \
for sharelib in *.so.*; do \
dev_lib_name=`echo $${sharelib} | awk -F'.so' '{print $$1}'`.so ; \
link_name=`$(TARGET_OBJDUMP) -x $${sharelib} 2>/dev/null | grep SONAME | sed 's/.* //'` ; \
ln -sf $${sharelib} $(1)/usr/lib/$${dev_lib_name} ; \
ln -sf $${sharelib} $(1)/usr/lib/$${link_name} ; \
done
mkdir -p $(1)/usr/include
cp -a $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/release/include/* $(1)/usr/include/
cd $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/pkgconfig/ ; \
for file in *.pc ; do \
sed -e "s|#PREFIX#|/usr|" -e "s|#VERSION#|23.0.3|" $$file > $$file.temp ; \
$(INSTALL) -D -m 0644 $$file.temp $(1)/usr/lib/pkgconfig/$$file ; \
done
endef
define GCNANO_BINARIES_INSTALL_TARGET_CMDS
$(call GCNANO_BINARIES_INSTALL,$(TARGET_DIR))
endef
define GCNANO_BINARIES_INSTALL_STAGING_CMDS
$(call GCNANO_BINARIES_INSTALL,$(STAGING_DIR))
endef
$(eval $(kernel-module))
$(eval $(generic-package))