ti-gfx.mk 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. ################################################################################
  2. #
  3. # ti-gfx
  4. #
  5. ################################################################################
  6. TI_GFX_VERSION = 4_09_00_01
  7. TI_GFX_SO_VERSION = 1.9.2188537
  8. ifeq ($(BR2_ARM_EABIHF),y)
  9. TI_GFX_SOURCE = Graphics_SDK_setuplinux_$(TI_GFX_VERSION)_hardfp_minimal_demos.bin
  10. else
  11. TI_GFX_SOURCE = Graphics_SDK_setuplinux_$(TI_GFX_VERSION)_minimal_demos.bin
  12. endif
  13. TI_GFX_SITE = http://downloads.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/$(TI_GFX_VERSION)/exports/
  14. TI_GFX_LICENSE = Technology / Software Publicly Available
  15. TI_GFX_LICENSE_FILES = TSPA.txt
  16. TI_GFX_INSTALL_STAGING = YES
  17. TI_GFX_DEPENDENCIES = linux
  18. ifeq ($(BR2_PACKAGE_TI_GFX_ES3),y)
  19. TI_GFX_OMAPES = 3.x
  20. TI_GFX_PLATFORM = omap3
  21. endif
  22. ifeq ($(BR2_PACKAGE_TI_GFX_ES5),y)
  23. TI_GFX_OMAPES = 5.x
  24. TI_GFX_PLATFORM = omap3630
  25. endif
  26. ifeq ($(BR2_PACKAGE_TI_GFX_ES6),y)
  27. TI_GFX_OMAPES = 6.x
  28. TI_GFX_PLATFORM = ti81xx
  29. endif
  30. ifeq ($(BR2_PACKAGE_TI_GFX_ES8),y)
  31. TI_GFX_OMAPES = 8.x
  32. TI_GFX_PLATFORM = ti335x
  33. endif
  34. ifeq ($(BR2_PACKAGE_TI_GFX_DEBUG),y)
  35. TI_GFX_DEBUG_LIB = dbg
  36. TI_GFX_DEBUG_KM = debug
  37. else
  38. TI_GFX_DEBUG_LIB = rel
  39. TI_GFX_DEBUG_KM = release
  40. endif
  41. TI_GFX_BIN_PATH = gfx_$(TI_GFX_DEBUG_LIB)_es$(TI_GFX_OMAPES)
  42. TI_GFX_KM_MAKE_OPTS = \
  43. $(LINUX_MAKE_FLAGS) \
  44. BUILD=$(TI_GFX_DEBUG_KM) \
  45. TI_PLATFORM=$(TI_GFX_PLATFORM) \
  46. OMAPES=$(TI_GFX_OMAPES) \
  47. SUPPORT_XORG=0 \
  48. KERNELDIR=$(LINUX_DIR)
  49. TI_GFX_DEMO_MAKE_OPTS = \
  50. PLATFORM=LinuxARMV7 \
  51. X11BUILD=0 \
  52. PLAT_CC="$(TARGET_CC)" \
  53. PLAT_CPP="$(TARGET_CXX)" \
  54. PLAT_AR="$(TARGET_AR)"
  55. # The only required binary is pvrsrvctl all others are optional
  56. TI_GFX_BIN = pvrsrvctl
  57. ifeq ($(BR2_PACKAGE_TI_GFX_DEBUG),y)
  58. TI_GFX_BIN += \
  59. eglinfo ews_server ews_server_es2 ews_test_gles1 ews_test_gles2 \
  60. ews_test_swrender gles1test1 gles2test1 pvr2d_test services_test \
  61. sgx_blit_test sgx_clipblit_test sgx_flip_test sgx_init_test \
  62. sgx_render_flip_test xeglinfo xgles1test1 xgles2test1 xmultiegltest
  63. endif
  64. TI_GFX_LIBS = \
  65. libews libpvr2d libpvrEWS_WSEGL libpvrPVR2D_BLITWSEGL libpvrPVR2D_DRIWSEGL \
  66. libpvrPVR2D_FLIPWSEGL libpvrPVR2D_FRONTWSEGL libpvrPVR2D_LINUXFBWSEGL \
  67. libPVRScopeServices libsrv_init libsrv_um libusc pvr_drv
  68. TI_GFX_EGLIMAGE_LIBS = \
  69. libEGL libGLES_CM libGLESv2 libglslcompiler libIMGegl
  70. TI_GFX_DEMOS = ChameleonMan MagicLantern
  71. TI_GFX_DEMOS_LOC = GFX_Linux_SDK/OGLES2/SDKPackage/Demos
  72. TI_GFX_DEMOS_MAKE_LOC = OGLES2/Build/LinuxGeneric
  73. TI_GFX_DEMOS_BIN_LOC = OGLES2/Build/LinuxARMV7/ReleaseRaw/
  74. TI_GFX_HDR_DIRS = OGLES2/EGL OGLES2/EWS OGLES2/GLES2 OGLES2/KHR \
  75. OGLES/GLES bufferclass_ti/ pvr2d/ wsegl/
  76. define TI_GFX_EXTRACT_CMDS
  77. $(RM) -rf $(TI_GFX_DIR)
  78. chmod +x $(DL_DIR)/$(TI_GFX_SOURCE)
  79. printf "Y\nY\n qY\n\n" | $(DL_DIR)/$(TI_GFX_SOURCE) \
  80. --prefix $(@D) \
  81. --mode console
  82. endef
  83. define TI_GFX_BUILD_KM_CMDS
  84. $(MAKE) $(TI_GFX_KM_MAKE_OPTS) -C $(@D)/GFX_Linux_KM all
  85. endef
  86. ifeq ($(BR2_PACKAGE_TI_GFX_DEMOS),y)
  87. define TI_GFX_BUILD_DEMO_CMDS
  88. $(foreach demo, $(TI_GFX_DEMOS), \
  89. $(TARGET_MAKE_ENV) $(MAKE1) -C \
  90. $(@D)/$(TI_GFX_DEMOS_LOC)/$(demo)/$(TI_GFX_DEMOS_MAKE_LOC) \
  91. $(TI_GFX_DEMO_MAKE_OPTS) all
  92. )
  93. endef
  94. endif
  95. define TI_GFX_BUILD_CMDS
  96. $(TI_GFX_BUILD_KM_CMDS)
  97. $(TI_GFX_BUILD_DEMO_CMDS)
  98. endef
  99. # Install libs
  100. # argument 1 is the location to install to (e.g. STAGING_DIR, TARGET_DIR)
  101. define TI_GFX_INSTALL_LIBS
  102. $(foreach lib,$(TI_GFX_LIBS),
  103. $(INSTALL) -D -m 0644 $(@D)/$(TI_GFX_BIN_PATH)/$(lib).so \
  104. $(1)/usr/lib/$(lib).so.$(TI_GFX_SO_VERSION); \
  105. ln -sf $(lib).so.$(TI_GFX_SO_VERSION) \
  106. $(1)/usr/lib/$(lib).so
  107. )
  108. $(foreach lib,$(TI_GFX_EGLIMAGE_LIBS),
  109. $(if $(BR2_PACKAGE_TI_GFX_EGLIMAGE),
  110. $(INSTALL) -D -m 0644 $(@D)/$(TI_GFX_BIN_PATH)/$(lib)_eglimage.so \
  111. $(1)/usr/lib/$(lib).so.$(TI_GFX_SO_VERSION);
  112. ,
  113. $(INSTALL) -D -m 0644 $(@D)/$(TI_GFX_BIN_PATH)/$(lib).so \
  114. $(1)/usr/lib/$(lib).so.$(TI_GFX_SO_VERSION);
  115. )
  116. ln -sf $(lib).so.$(TI_GFX_SO_VERSION) \
  117. $(1)/usr/lib/$(lib).so
  118. )
  119. endef
  120. define TI_GFX_INSTALL_STAGING_CMDS
  121. $(foreach incdir,$(TI_GFX_HDR_DIRS),
  122. $(INSTALL) -d $(STAGING_DIR)/usr/include/$(notdir $(incdir)); \
  123. $(INSTALL) -D -m 0644 $(@D)/include/$(incdir)/*.h \
  124. $(STAGING_DIR)/usr/include/$(notdir $(incdir))/
  125. )
  126. $(call TI_GFX_INSTALL_LIBS,$(STAGING_DIR))
  127. $(INSTALL) -D -m 0644 package/ti-gfx/egl.pc \
  128. $(STAGING_DIR)/usr/lib/pkgconfig/egl.pc
  129. $(INSTALL) -D -m 0644 package/ti-gfx/glesv2.pc \
  130. $(STAGING_DIR)/usr/lib/pkgconfig/glesv2.pc
  131. endef
  132. define TI_GFX_INSTALL_KM_CMDS
  133. $(MAKE) $(TI_GFX_KM_MAKE_OPTS) -C $(@D)/GFX_Linux_KM install
  134. endef
  135. define TI_GFX_INSTALL_BINS_CMDS
  136. $(foreach bin,$(TI_GFX_BIN),
  137. $(INSTALL) -D -m 0755 $(@D)/$(TI_GFX_BIN_PATH)/$(bin) \
  138. $(TARGET_DIR)/usr/bin/$(bin)
  139. )
  140. $(if $(BR2_PACKAGE_TI_GFX_DEBUG),
  141. $(INSTALL) -D -m 0755 package/ti-gfx/esrev.sh \
  142. $(TARGET_DIR)/usr/sbin/esrev
  143. )
  144. endef
  145. define TI_GFX_INSTALL_CONF_CMDS
  146. # libs use the following file for configuration.
  147. $(INSTALL) -D -m 0644 package/ti-gfx/powervr.ini \
  148. $(TARGET_DIR)/etc/powervr.ini
  149. endef
  150. ifeq ($(BR2_PACKAGE_TI_GFX_DEMOS),y)
  151. define TI_GFX_INSTALL_DEMOS_CMDS
  152. $(foreach demo,$(TI_GFX_DEMOS),
  153. $(INSTALL) -D -m 0755 \
  154. $(@D)/$(TI_GFX_DEMOS_LOC)/$(demo)/$(TI_GFX_DEMOS_BIN_LOC)/OGLES2$(demo) \
  155. $(TARGET_DIR)/usr/bin/OGLES2$(demo)
  156. )
  157. endef
  158. endif
  159. define TI_GFX_INSTALL_INIT_SYSV
  160. $(INSTALL) -D -m 0755 package/ti-gfx/S80ti-gfx \
  161. $(TARGET_DIR)/etc/init.d/S80ti-gfx
  162. endef
  163. define TI_GFX_INSTALL_TARGET_CMDS
  164. $(TI_GFX_INSTALL_KM_CMDS)
  165. $(TI_GFX_INSTALL_BINS_CMDS)
  166. $(call TI_GFX_INSTALL_LIBS,$(TARGET_DIR))
  167. $(TI_GFX_INSTALL_CONF_CMDS)
  168. $(TI_GFX_INSTALL_DEMOS_CMDS)
  169. endef
  170. $(eval $(generic-package))