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