xref: /OK3568_Linux_fs/buildroot/package/gcnano-binaries/gcnano-binaries.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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