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