gcnano-binaries.mk 2.8 KB

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