summaryrefslogtreecommitdiffstats
path: root/meta-architech-extras/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
diff options
context:
space:
mode:
Diffstat (limited to 'meta-architech-extras/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc')
-rw-r--r--meta-architech-extras/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc246
1 files changed, 0 insertions, 246 deletions
diff --git a/meta-architech-extras/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc b/meta-architech-extras/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
deleted file mode 100644
index 6b0cd3c..0000000
--- a/meta-architech-extras/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
+++ /dev/null
@@ -1,246 +0,0 @@
1# Copyright (C) 2012-2013 Freescale Semiconductor
2# Copyright (C) 2012-2013 O.S. Systems Software LTDA.
3# Released under the MIT license (see COPYING.MIT for the terms)
4
5DESCRIPTION = "GPU driver and apps for imx6"
6SECTION = "libs"
7LICENSE = "Proprietary"
8LIC_FILES_CHKSUM = "file://usr/include/gc_vdk.h;endline=11;md5=19f5925343fa3da65596eeaa4ddb5fd3"
9DEPENDS += "${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxdamage libxext libxfixes mesa', '', d)}"
10PROVIDES += "virtual/wayland-egl virtual/libgl virtual/libgal-x11 virtual/egl virtual/libgles1 virtual/libgles2 virtual/libopenvg"
11
12PE = "1"
13
14inherit fsl-eula-unpack
15
16SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true \
17 file://egl.pc \
18 file://egl_x11.pc \
19 file://glesv1_cm.pc \
20 file://glesv1_cm_x11.pc \
21 file://glesv2.pc \
22 file://glesv2_x11.pc \
23 file://vg.pc \
24 file://vg_x11.pc \
25 file://gc_wayland_protocol.pc \
26 file://wayland-egl.pc \
27 file://wayland-viv.pc \
28 "
29
30PACKAGES =+ "libclc-mx6 libclc-mx6-dev libclc-mx6-dbg \
31 libgl-mx6 libgl-mx6-dev libgl-mx6-dbg \
32 libgles-mx6 libgles-mx6-dev libgles-mx6-dbg \
33 libgles2-mx6 libgles2-mx6-dev libgles2-mx6-dbg \
34 libglslc-mx6 libglslc-mx6-dev libglslc-mx6-dbg \
35 libopencl-mx6 libopencl-mx6-dev libopencl-mx6-dbg \
36 libopenvg-mx6 libopenvg-mx6-dev libopenvg-mx6-dbg \
37 libvdk-mx6 libvdk-mx6-dev libvdk-mx6-dbg \
38 libegl-mx6 libegl-mx6-dev libegl-mx6-dbg \
39 libgal-mx6 libgal-mx6-dev libgal-mx6-dbg \
40 libvivante-mx6 libvivante-mx6-dev libvivante-mx6-dbg \
41 libvivante-dri-mx6 \
42 libvivante-dfb-mx6 \
43 libwayland-viv-mx6 libwayland-viv-mx6-dev libwayland-viv-mx6-dbg \
44 libgc-wayland-protocol-mx6 libgc-wayland-protocol-mx6-dev libgc-wayland-protocol-mx6-dbg \
45 libwayland-egl-mx6-dev \
46"
47
48# Skip package if it does not match the machine float-point type in use
49python __anonymous () {
50 is_machine_hardfp = base_contains("TUNE_FEATURES", "callconvention-hard", True, False, d)
51 is_package_hardfp = d.getVar("PACKAGE_FP_TYPE", True) == "hardfp"
52
53 if is_package_hardfp != is_machine_hardfp:
54 PN = d.getVar("PN", True)
55 PV = d.getVar("PV", True)
56 bb.debug(1, "Skipping %s (%s) as machine and package float-point does not match" % (PN, PV))
57 raise bb.parse.SkipPackage("Package Float-Point is not compatible with the machine")
58}
59
60USE_X11 = "${@base_contains("DISTRO_FEATURES", "x11", "yes", "no", d)}"
61USE_DFB = "${@base_contains("DISTRO_FEATURES", "directfb", "yes", "no", d)}"
62USE_WL = "${@base_contains("DISTRO_FEATURES", "wayland", "yes", "no", d)}"
63
64# Inhibit warnings about files being stripped.
65INHIBIT_PACKAGE_STRIP = "1"
66INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
67
68# FIXME: The provided binary doesn't provide soname. If in future BSP
69# release the libraries are fixed, we can drop this hack.
70REALSOLIBS := "${SOLIBS}"
71SOLIBS = "${SOLIBSDEV}"
72
73# For the packages that make up the OpenGL interfaces, inject variables so that
74# they don't get Debian-renamed (which would remove the -mx6 suffix).
75#
76# FIXME: All binaries lack GNU_HASH in elf binary but as we don't have
77# the source we cannot fix it. Disable the insane check for now.
78python __anonymous() {
79 packages = d.getVar('PACKAGES', True).split()
80 for p in packages:
81 d.appendVar("INSANE_SKIP_%s" % p, " ldflags")
82
83 for p in (("libegl", "libegl1"), ("libgl", "libgl1"),
84 ("libgles1", "libglesv1-cm1"), ("libgles2", "libglesv2-2"),
85 ("libgles3",)):
86 fullp = p[0] + "-mx6"
87 pkgs = " ".join(p)
88 d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1")
89 d.appendVar("RREPLACES_" + fullp, pkgs)
90 d.appendVar("RPROVIDES_" + fullp, pkgs)
91 d.appendVar("RCONFLICTS_" + fullp, pkgs)
92
93 # For -dev, the first element is both the Debian and original name
94 fullp += "-dev"
95 pkgs = p[0] + "-dev"
96 d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1")
97 d.appendVar("RREPLACES_" + fullp, pkgs)
98 d.appendVar("RPROVIDES_" + fullp, pkgs)
99 d.appendVar("RCONFLICTS_" + fullp, pkgs)
100}
101
102do_install () {
103 install -d ${D}${libdir}
104 install -d ${D}${includedir}
105
106 cp -a ${S}/usr/lib/*.so* ${D}${libdir}
107 cp -axr ${S}/usr/include/* ${D}${includedir}
108 cp -axr ${S}/opt ${D}
109
110 install -d ${D}${libdir}/pkgconfig
111
112 # The preference order, based in DISTRO_FEATURES, is x11, wayland, directfb and fb
113 if [ "${USE_X11}" = "yes" ]; then
114 cp -r ${S}/usr/lib/dri ${D}${libdir}
115 backend=x11
116
117 install -m 0644 ${WORKDIR}/egl_x11.pc ${D}${libdir}/pkgconfig/egl.pc
118 install -m 0644 ${WORKDIR}/glesv1_cm_x11.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc
119 install -m 0644 ${WORKDIR}/glesv2_x11.pc ${D}${libdir}/pkgconfig/glesv2.pc
120 install -m 0644 ${WORKDIR}/vg_x11.pc ${D}${libdir}/pkgconfig/vg.pc
121 #FIXME: WL & X11 is not currently functional
122 #if [ "${USE_WL}" = "yes" ]; then
123 # install -m 0644 ${WORKDIR}/gc_wayland_protocol.pc ${D}${libdir}/pkgconfig/gc_wayland_protocol.pc
124 # install -m 0644 ${WORKDIR}/wayland-egl.pc ${D}${libdir}/pkgconfig/wayland-egl.pc
125 # install -m 0644 ${WORKDIR}/wayland-viv.pc ${D}${libdir}/pkgconfig/wayland-viv.pc
126 #fi
127 elif [ "${USE_WL}" = "yes" ]; then
128 backend=wl
129
130 install -m 0644 ${WORKDIR}/egl.pc ${D}${libdir}/pkgconfig/egl.pc
131 install -m 0644 ${WORKDIR}/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc
132 install -m 0644 ${WORKDIR}/glesv2.pc ${D}${libdir}/pkgconfig/glesv2.pc
133 install -m 0644 ${WORKDIR}/vg.pc ${D}${libdir}/pkgconfig/vg.pc
134 install -m 0644 ${WORKDIR}/gc_wayland_protocol.pc ${D}${libdir}/pkgconfig/gc_wayland_protocol.pc
135 install -m 0644 ${WORKDIR}/wayland-egl.pc ${D}${libdir}/pkgconfig/wayland-egl.pc
136 install -m 0644 ${WORKDIR}/wayland-viv.pc ${D}${libdir}/pkgconfig/wayland-viv.pc
137 else
138 install -m 0644 ${WORKDIR}/egl.pc ${D}${libdir}/pkgconfig/egl.pc
139 install -m 0644 ${WORKDIR}/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc
140 install -m 0644 ${WORKDIR}/glesv2.pc ${D}${libdir}/pkgconfig/glesv2.pc
141 install -m 0644 ${WORKDIR}/vg.pc ${D}${libdir}/pkgconfig/vg.pc
142
143 if [ "${USE_DFB}" = "yes" ]; then
144 cp -r ${S}/usr/lib/directfb-1.6-0 ${D}${libdir}
145 backend=dfb
146 else
147 # Regular framebuffer
148 backend=fb
149 fi
150 fi
151
152 # We'll only have one backend here so we rename it to generic name
153 # and avoid rework in other packages, when possible
154 mv ${D}${libdir}/libGL.so.1.2 ${D}${libdir}/libGL.so.1.2.0
155 ln -sf libGL.so.1.2.0 ${D}${libdir}/libGL.so.1.2
156 ln -sf libGL.so.1.2.0 ${D}${libdir}/libGL.so
157 mv ${D}${libdir}/libEGL-${backend}.so ${D}${libdir}/libEGL.so.1.0
158 ln -sf libEGL.so.1.0 ${D}${libdir}/libEGL.so.1
159 ln -sf libEGL.so.1.0 ${D}${libdir}/libEGL.so
160 mv ${D}${libdir}/libGAL-${backend}.so ${D}${libdir}/libGAL.so
161 mv ${D}${libdir}/libVIVANTE-${backend}.so ${D}${libdir}/libVIVANTE.so
162
163 for backend in wl x11 fb dfb; do
164 find ${D}${libdir} -name "*-$backend.so" -exec rm '{}' ';'
165 done
166
167 find ${D}${libdir} -type f -exec chmod 644 {} \;
168 find ${D}${includedir} -type f -exec chmod 644 {} \;
169}
170
171S = "${WORKDIR}/${PN}-${PV}"
172
173FILES_${PN} += "/opt"
174FILES_${PN}-dev = "${includedir}"
175FILES_${PN}-dbg = "${libdir}/.debug /opt/viv_samples/*/*/.debug"
176
177FILES_libclc-mx6 = "${libdir}/libCLC${SOLIBS}"
178FILES_libclc-mx6-dev = "${includedir}/CL ${libdir}/libCLC${SOLIBSDEV}"
179FILES_libclc-mx6-dbg = "${libdir}/.debug/libCLC${SOLIBS}"
180
181# libEGL.so is used by some demo apps from Freescale
182INSANE_SKIP_libegl-mx6 += "dev-so"
183FILES_libegl-mx6 = "${libdir}/libEGL${REALSOLIBS} ${libdir}/libEGL${SOLIBSDEV} "
184FILES_libegl-mx6-dev = "${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc"
185FILES_libegl-mx6-dbg = "${libdir}/.debug/libEGL${SOLIBS}"
186
187FILES_libgal-mx6 = "${libdir}/libGAL${SOLIBS}"
188FILES_libgal-mx6-dev = "${libdir}/libGAL${SOLIBSDEV}"
189FILES_libgal-mx6-dbg = "${libdir}/.debug/libGAL${SOLIBS}"
190
191FILES_libgl-mx6 = "${libdir}/libGL${REALSOLIBS}"
192FILES_libgl-mx6-dev = "${libdir}/libGL${SOLIBSDEV}"
193FILES_libgl-mx6-dbg = "${libdir}/.debug/libGL.${SOLIBS}"
194RDEPENDS_libgl-mx6-dev = "libgl-mesa-dev"
195
196# libEGL needs to open libGLESv1.so
197INSANE_SKIP_libgles-mx6 += "dev-so"
198FILES_libgles-mx6 = "${libdir}/libGLESv1*${REALSOLIBS} ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${SOLIBS}"
199FILES_libgles-mx6-dev = "${includedir}/GLES ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${SOLIBSDEV} ${libdir}/pkgconfig/glesv1_cm.pc"
200FILES_libgles-mx6-dbg = "${libdir}/.debug/libGLESv1*${SOLIBS} ${libdir}/.debug/libGLES_*${SOLIBS}"
201
202# libEGL needs to open libGLESv2.so
203INSANE_SKIP_libgles2-mx6 += "dev-so"
204FILES_libgles2-mx6 = "${libdir}/libGLESv2${REALSOLIBS} ${libdir}/libGLESv2${SOLIBS}"
205FILES_libgles2-mx6-dev = "${includedir}/GLES2 ${libdir}/libGLESv2${SOLIBSDEV} ${libdir}/pkgconfig/glesv2.pc"
206FILES_libgles2-mx6-dbg = "${libdir}/.debug/libGLESv2${SOLIBS}"
207RDEPENDS_libgles2-mx6 = "libglslc-mx6"
208
209FILES_libglslc-mx6 = "${libdir}/libGLSLC${SOLIBS}"
210FILES_libglslc-mx6-dev = "${includedir}/CL ${libdir}/libGLSLC${SOLIBSDEV}"
211FILES_libglslc-mx6-dbg = "${libdir}/.debug/libGLSLC${SOLIBS}"
212
213FILES_libopencl-mx6 = "${libdir}/libOpenCL${SOLIBS}"
214FILES_libopencl-mx6-dev = "${includedir}/CL ${libdir}/libOpenCL${SOLIBSDEV}"
215FILES_libopencl-mx6-dbg = "${libdir}/.debug/libOpenCL${SOLIBS}"
216RDEPENDS_libopencl-mx6 = "libclc-mx6"
217
218FILES_libopenvg-mx6 = "${libdir}/libOpenVG*${SOLIBS}"
219FILES_libopenvg-mx6-dev = "${includedir}/VG ${libdir}/libOpenVG*${SOLIBSDEV} ${libdir}/pkgconfig/vg.pc"
220FILES_libopenvg-mx6-dbg = "${libdir}/.debug/libOpenVG*${SOLIBS}"
221
222FILES_libvdk-mx6 = "${libdir}/libVDK${SOLIBS}"
223FILES_libvdk-mx6-dev = "${includedir}/*vdk.h ${libdir}/libVDK${SOLIBSDEV}"
224FILES_libvdk-mx6-dbg = "${libdir}/.debug/libVDK${SOLIBS}"
225
226FILES_libvivante-mx6 = "${libdir}/libVIVANTE${SOLIBS}"
227FILES_libvivante-mx6-dev = "${libdir}/libVIVANTE${SOLIBSDEV}"
228FILES_libvivante-mx6-dbg = "${libdir}/.debug/libVIVANTE${SOLIBS}"
229
230FILES_libvivante-dri-mx6 = "${libdir}/dri/vivante_dri.so"
231
232FILES_libvivante-dfb-mx6 = "${libdir}/directfb-1.6-0/gfxdrivers/libdirectfb_gal.so"
233
234INSANE_SKIP_libwayland-viv-mx6 += "dev-so"
235FILES_libwayland-viv-mx6 = "${libdir}/libwayland-viv${REALSOLIBS} ${libdir}/libwayland-viv${SOLIBS}"
236FILES_libwayland-viv-mx6-dev = "${libdir})/libwayland-viv${SOLIBSDEV} ${libdir}/pkgconfig/wayland-viv.pc"
237FILES_libwayland-viv-mx6-dbg = "${libdir}/.debug/libwayland-viv${SOLIBS}"
238
239INSANE_SKIP_libgc-wayland-protocol-mx6 += "dev-so"
240FILES_libgc-wayland-protocol-mx6 = "${libdir}/libgc_wayland_protocol${REALSOLIBS} ${libdir}/libgc_wayland_protocol${SOLIBS}"
241FILES_libgc-wayland-protocol-mx6-dev = "${libdir}/libgc_wayland_protocol${SOLIBSDEV} ${libdir}/pkgconfig/gc_wayland_protocol.pc"
242FILES_libgc-wayland-protocol-mx6-dbg = "${libdir}/libgc_wayland_protocol${SOLIBS}"
243
244FILES_libwayland-egl-mx6-dev = "${libdir}/pkgconfig/wayland-egl.pc"
245
246COMPATIBLE_MACHINE = "(mx6)"