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