1*4882a593Smuzhiyun################################################################################ 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# gcnano-binaries 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun################################################################################ 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunGCNANO_BINARIES_LIB_VERSION = 6.4 8*4882a593SmuzhiyunGCNANO_BINARIES_LIB_REVISION = 3 9*4882a593SmuzhiyunGCNANO_BINARIES_LIB_FULL_VERSION = $(GCNANO_BINARIES_LIB_VERSION).$(GCNANO_BINARIES_LIB_REVISION) 10*4882a593SmuzhiyunGCNANO_BINARIES_DRIVER_VERSION = $(GCNANO_BINARIES_LIB_FULL_VERSION) 11*4882a593SmuzhiyunGCNANO_BINARIES_USERLAND_VERSION = $(GCNANO_BINARIES_LIB_FULL_VERSION)-20200902 12*4882a593SmuzhiyunGCNANO_BINARIES_VERSION = 1534c3eaabb5ae545a8f97e95f853531365a13fc 13*4882a593SmuzhiyunGCNANO_BINARIES_SITE = $(call github,STMicroelectronics,gcnano-binaries,$(GCNANO_BINARIES_VERSION)) 14*4882a593Smuzhiyun 15*4882a593SmuzhiyunGCNANO_BINARIES_LICENSE = MIT, Vivante End User Software License Terms 16*4882a593SmuzhiyunGCNANO_BINARIES_LICENSE_FILES = EULA 17*4882a593SmuzhiyunGCNANO_BINARIES_REDISTRIBUTE = NO 18*4882a593Smuzhiyun 19*4882a593SmuzhiyunGCNANO_BINARIES_DEPENDENCIES = linux wayland libdrm 20*4882a593Smuzhiyun 21*4882a593SmuzhiyunGCNANO_BINARIES_INSTALL_STAGING = YES 22*4882a593Smuzhiyun 23*4882a593SmuzhiyunGCNANO_BINARIES_PROVIDES = libegl libgles libgbm 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun# The Github repository doesn't contain the source code as-is: it 26*4882a593Smuzhiyun# contains a tarball with the kernel driver source code, and a 27*4882a593Smuzhiyun# self-extractible binary for the user-space parts. So we extract both 28*4882a593Smuzhiyun# below, and also extract the EULA text from the self-extractible binary 29*4882a593Smuzhiyundefine GCNANO_BINARIES_EXTRACT_HELPER 30*4882a593Smuzhiyun tar --strip-components=1 -xJf $(@D)/gcnano-driver-$(GCNANO_BINARIES_DRIVER_VERSION).tar.xz -C $(@D) 31*4882a593Smuzhiyun awk 'BEGIN { start = 0; } \ 32*4882a593Smuzhiyun /^EOEULA/ { start = 0; } \ 33*4882a593Smuzhiyun { if (start) print; } \ 34*4882a593Smuzhiyun /<<EOEULA/ { start = 1; }' \ 35*4882a593Smuzhiyun $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_USERLAND_VERSION).bin > $(@D)/EULA 36*4882a593Smuzhiyun cd $(@D) && sh gcnano-userland-multi-$(GCNANO_BINARIES_USERLAND_VERSION).bin --auto-accept 37*4882a593Smuzhiyunendef 38*4882a593Smuzhiyun 39*4882a593SmuzhiyunGCNANO_BINARIES_POST_EXTRACT_HOOKS += GCNANO_BINARIES_EXTRACT_HELPER 40*4882a593Smuzhiyun 41*4882a593SmuzhiyunGCNANO_BINARIES_MODULE_MAKE_OPTS = \ 42*4882a593Smuzhiyun KERNEL_DIR=$(LINUX_DIR) \ 43*4882a593Smuzhiyun SOC_PLATFORM=st-st \ 44*4882a593Smuzhiyun AQROOT=$(@D) \ 45*4882a593Smuzhiyun DEBUG=0 46*4882a593Smuzhiyun 47*4882a593SmuzhiyunGCNANO_BINARIES_LIBRARIES = \ 48*4882a593Smuzhiyun libgbm_viv libEGL libGAL libgbm libGLESv1_CM \ 49*4882a593Smuzhiyun libGLESv2 libGLSLC libOpenVG libVSC 50*4882a593Smuzhiyun 51*4882a593SmuzhiyunGCNANO_BINARIES_USERLAND_SUBDIR = gcnano-userland-multi-$(GCNANO_BINARIES_USERLAND_VERSION) 52*4882a593Smuzhiyun 53*4882a593SmuzhiyunGCNANO_BINARIES_PKG_CONFIGS = egl gbm glesv1_cm glesv2 vg 54*4882a593Smuzhiyun 55*4882a593Smuzhiyundefine GCNANO_BINARIES_INSTALL 56*4882a593Smuzhiyun $(foreach lib,$(GCNANO_BINARIES_LIBRARIES), \ 57*4882a593Smuzhiyun $(INSTALL) -D -m 0755 $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/usr/lib/$(lib).$(GCNANO_BINARIES_LIB_VERSION).multi.release.so \ 58*4882a593Smuzhiyun $(1)/usr/lib/$(lib).$(GCNANO_BINARIES_LIB_VERSION).multi.release.so ; \ 59*4882a593Smuzhiyun cp -a $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/usr/lib/$(lib).so* $(1)/usr/lib 60*4882a593Smuzhiyun ) 61*4882a593Smuzhiyun mkdir -p $(1)/usr/include 62*4882a593Smuzhiyun cp -a $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/usr/include/* $(1)/usr/include/ 63*4882a593Smuzhiyun $(foreach pkgconfig,$(GCNANO_BINARIES_PKG_CONFIGS), \ 64*4882a593Smuzhiyun $(INSTALL) -D -m 0644 $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/usr/lib/pkgconfig/$(pkgconfig).pc \ 65*4882a593Smuzhiyun $(1)/usr/lib/pkgconfig/$(pkgconfig).pc 66*4882a593Smuzhiyun ) 67*4882a593Smuzhiyunendef 68*4882a593Smuzhiyun 69*4882a593Smuzhiyundefine GCNANO_BINARIES_INSTALL_TARGET_CMDS 70*4882a593Smuzhiyun $(call GCNANO_BINARIES_INSTALL,$(TARGET_DIR)) 71*4882a593Smuzhiyunendef 72*4882a593Smuzhiyun 73*4882a593Smuzhiyundefine GCNANO_BINARIES_INSTALL_STAGING_CMDS 74*4882a593Smuzhiyun $(call GCNANO_BINARIES_INSTALL,$(STAGING_DIR)) 75*4882a593Smuzhiyunendef 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun$(eval $(kernel-module)) 78*4882a593Smuzhiyun$(eval $(generic-package)) 79