xref: /OK3568_Linux_fs/buildroot/package/ti-gfx/ti-gfx.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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