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