Annotation of /branches/R11-stable/extras/mesa/mesa-9.2.3-r1.smage2
Parent Directory | Revision Log
Revision 20190 -
(hide annotations)
(download)
Tue Nov 26 11:42:47 2013 UTC (10 years, 6 months ago) by niro
File size: 20921 byte(s)
Tue Nov 26 11:42:47 2013 UTC (10 years, 6 months ago) by niro
File size: 20921 byte(s)
-release branches/R11-stable
1 | niro | 20037 | # $Id$ |
2 | |||
3 | PNAME="mesa" | ||
4 | PVER="9.2.3" | ||
5 | PBUILD="r1" | ||
6 | |||
7 | SPLIT_PACKAGES="mesa" | ||
8 | |||
9 | PCAT="media-libs" | ||
10 | HOMEPAGE="http://mesa3d.sourceforge.net/" | ||
11 | |||
12 | MESA_DEPEND=">= dev-libs/expat-2.1 | ||
13 | >= dev-libs/libffi-3.0.13 | ||
14 | >= x11-libs/libX11-1.6 | ||
15 | >= x11-libs/libXext-1.3 | ||
16 | >= x11-libs/libXxf86vm-1.1 | ||
17 | >= x11-libs/libXi-1.7 | ||
18 | >= x11-libs/libXmu-1.1 | ||
19 | >= x11-libs/libdrm-2.4.48 | ||
20 | >= x11-libs/libICE-1 | ||
21 | >= x11-base/opengl-update-2.3 | ||
22 | >= x11-libs/libxcb-1.9 | ||
23 | >= x11-libs/libXfixes-5 | ||
24 | >= x11-libs/libXdamage-1 | ||
25 | >= x11-libs/libvdpau-0.7 | ||
26 | >= x11-libs/libXvMC-1 | ||
27 | >= sys-libs/libstdc++-4.8 | ||
28 | >= sys-fs/udev-208" | ||
29 | # >= x11-libs/libva-1.0.15 | ||
30 | |||
31 | MESA_PROGS_DEPEND=">= virtual/glut" | ||
32 | |||
33 | SDEPEND="${MESA_DEPEND} | ||
34 | ${MESA_PROGS_DEPEND} | ||
35 | >= dev-util/pkgconfig-0.25 | ||
36 | >= x11-misc/makedepend-1 | ||
37 | >= x11-proto/xf86vidmodeproto-2.3 | ||
38 | >= x11-libs/libXxf86vm-1.1 | ||
39 | >= x11-proto/glproto-1.4.16 | ||
40 | >= x11-proto/inputproto-2.3 | ||
41 | >= x11-proto/xextproto-7.2 | ||
42 | >= x11-proto/xf86driproto-2.1 | ||
43 | >= x11-proto/dri2proto-2.8 | ||
44 | >= x11-proto/xcb-proto-1.8 | ||
45 | >= x11-proto/xproto-7.0.23 | ||
46 | >= x11-proto/fixesproto-5 | ||
47 | >= x11-proto/damageproto-1.2 | ||
48 | >= dev-lang/python-2.7 | ||
49 | >= sys-dev/llvm-3.3" | ||
50 | |||
51 | # must be set before the include of multilib! | ||
52 | EMUL_LINUX_32=true | ||
53 | sminclude xorg mtools multilib cleanutils | ||
54 | msetfeature "!check" | ||
55 | |||
56 | # must be set *after* the include of xorg! | ||
57 | SRCFILE="MesaLib-${PVER/_/-}.tar.bz2" | ||
58 | # libs SRCDIR | ||
59 | SRCDIR="${BUILDDIR}/Mesa-${PVER/_/-}" | ||
60 | |||
61 | # known drivers: | ||
62 | # dri: dri-swrast,dri-i915,dri-i965,dri-r200,dri-radeon,dri-i810,dri-mach64,dri-mga, | ||
63 | # dri-r128,dri-r300,dri-r600,dri-savage,dri-sis,dri-tdfx,dri-unichrome | ||
64 | # gallium: gallium-i915,gallium-i965,gallium-r300,gallium-r600,gallium-vmwgfx,gallium-swrast,gallium-nouveau, gallium-radeonsi | ||
65 | #MESA_DRIVERS="dri-swrast,dri-i915,dri-i965,dri-r200,dri-radeon" | ||
66 | #MESA_DRIVERS+="," | ||
67 | MESA_DRIVERS+="gallium-i915,gallium-nouveau,gallium-r300,gallium-r600,gallium-radeonsi,gallium-vmwgfx,gallium-swrast" | ||
68 | |||
69 | # helper functions | ||
70 | driver_enabled() | ||
71 | { | ||
72 | local driver="$1" | ||
73 | |||
74 | if [[ ${MESA_DRIVERS//${driver}} != ${MESA_DRIVERS} ]] | ||
75 | then | ||
76 | return 0 | ||
77 | else | ||
78 | return 1 | ||
79 | fi | ||
80 | } | ||
81 | |||
82 | add_dri_driver() | ||
83 | { | ||
84 | local driver="$1" | ||
85 | |||
86 | if [[ -z ${MESA_DRI_DRIVERS} ]] | ||
87 | then | ||
88 | MESA_DRI_DRIVERS="${driver}" | ||
89 | elif [[ ${MESA_DRI_DRIVERS//${driver}} = ${MESA_DRI_DRIVERS} ]] | ||
90 | then | ||
91 | MESA_DRI_DRIVERS+=",${driver}" | ||
92 | fi | ||
93 | } | ||
94 | |||
95 | add_gallium_driver() | ||
96 | { | ||
97 | local driver="$1" | ||
98 | |||
99 | if [[ -z ${MESA_GALLIUM_DRIVERS} ]] | ||
100 | then | ||
101 | MESA_GALLIUM_DRIVERS="${driver}" | ||
102 | elif [[ ${MESA_GALLIUM_DRIVERS//${driver}} = ${MESA_GALLIUM_DRIVERS} ]] | ||
103 | then | ||
104 | MESA_GALLIUM_DRIVERS+=",${driver}" | ||
105 | fi | ||
106 | } | ||
107 | |||
108 | install_dri_driver() | ||
109 | { | ||
110 | local driver="$1" | ||
111 | mmake -C src/mesa/drivers/dri/${driver} DESTDIR=${BINDIR} install || die | ||
112 | } | ||
113 | |||
114 | install_gallium_driver() | ||
115 | { | ||
116 | local driver="$1" | ||
117 | |||
118 | if [[ ${driver} = radeonsi ]] | ||
119 | then | ||
120 | # prereq - libllvmradeon${PVER}.so is needed to link the radeonsi driver | ||
121 | mmake -C src/gallium/drivers/radeon DESTDIR=${BINDIR} install || die | ||
122 | fi | ||
123 | |||
124 | mmake -C src/gallium/targets/dri-${driver} DESTDIR=${BINDIR} install || die | ||
125 | |||
126 | if [[ ${driver} = radeonsi ]] | ||
127 | then | ||
128 | # remove prereq libs | ||
129 | mmake -C src/gallium/drivers/radeon DESTDIR=${BINDIR} uninstall || die | ||
130 | fi | ||
131 | } | ||
132 | |||
133 | install_gallium_pipe_driver() | ||
134 | { | ||
135 | local driver="$1" | ||
136 | |||
137 | # prereq - libllvmradeon${PVER}.so is needed to link the pipes | ||
138 | mmake -C src/gallium/drivers/radeon DESTDIR=${BINDIR} install || die | ||
139 | |||
140 | mmake -C src/gallium/targets/pipe-loader DESTDIR=${BINDIR} install || die | ||
141 | zapmost ${BINDIR}/usr/$(mlibdir)/gallium-pipe pipe_${driver}.so || die | ||
142 | if [[ $(mlibdir) != lib ]] | ||
143 | then | ||
144 | zapmost ${BINDIR}/usr/lib/gallium-pipe pipe_${driver}.so || die | ||
145 | fi | ||
146 | |||
147 | # remove prereq libs | ||
148 | mmake -C src/gallium/drivers/radeon DESTDIR=${BINDIR} uninstall || die | ||
149 | } | ||
150 | |||
151 | install_gallium_vdpau_driver() | ||
152 | { | ||
153 | local driver="$1" | ||
154 | |||
155 | if [[ ${driver} = radeonsi ]] | ||
156 | then | ||
157 | # prereq - libllvmradeon${PVER}.so is needed to link the radeonsi vdpau driver | ||
158 | mmake -C src/gallium/drivers/radeon DESTDIR=${BINDIR} install || die | ||
159 | fi | ||
160 | |||
161 | mmake -C src/gallium/targets/vdpau-${driver} DESTDIR=${BINDIR} install || die | ||
162 | |||
163 | if [[ ${driver} = radeonsi ]] | ||
164 | then | ||
165 | # remove prereq libs | ||
166 | mmake -C src/gallium/drivers/radeon DESTDIR=${BINDIR} uninstall || die | ||
167 | fi | ||
168 | } | ||
169 | |||
170 | SRC_URI=( | ||
171 | ftp://ftp.freedesktop.org/pub/mesa/${PVER%_*}/${SRCFILE} | ||
172 | mirror://${PNAME}/${SRCFILE} | ||
173 | ) | ||
174 | |||
175 | UP2DATE="updatecmd ftp://ftp.freedesktop.org/pub/mesa/current | lasttarball" | ||
176 | |||
177 | split_info_mesa() | ||
178 | { | ||
179 | DESCRIPTION="Mesa3D OpenGL graphics library." | ||
180 | DEPEND="${MESA_DEPEND}" | ||
181 | |||
182 | PROVIDE="virtual/opengl" | ||
183 | } | ||
184 | |||
185 | if driver_enabled dri-swrast | ||
186 | then | ||
187 | SPLIT_PACKAGES+=" mesa-dri-swrast" | ||
188 | add_dri_driver swrast | ||
189 | |||
190 | split_info_mesa-dri-swrast() | ||
191 | { | ||
192 | DESCRIPTION="Mesa Software Raster DRI driver." | ||
193 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
194 | } | ||
195 | fi | ||
196 | |||
197 | if driver_enabled dri-i810 | ||
198 | then | ||
199 | SPLIT_PACKAGES+=" mesa-dri-i810" | ||
200 | add_dri_driver i810 | ||
201 | |||
202 | split_info_mesa-dri-i810() | ||
203 | { | ||
204 | DESCRIPTION="Mesa Intel i810 DRI driver." | ||
205 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
206 | } | ||
207 | fi | ||
208 | |||
209 | if driver_enabled dri-i915 | ||
210 | then | ||
211 | SPLIT_PACKAGES+=" mesa-dri-i915" | ||
212 | add_dri_driver i915 | ||
213 | |||
214 | split_info_mesa-dri-i915() | ||
215 | { | ||
216 | DESCRIPTION="Mesa Intel i915 DRI driver." | ||
217 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
218 | } | ||
219 | fi | ||
220 | |||
221 | if driver_enabled dri-i965 | ||
222 | then | ||
223 | SPLIT_PACKAGES+=" mesa-dri-i965" | ||
224 | add_dri_driver i965 | ||
225 | |||
226 | split_info_mesa-dri-i965() | ||
227 | { | ||
228 | DESCRIPTION="Mesa Intel i965 DRI driver." | ||
229 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
230 | } | ||
231 | fi | ||
232 | |||
233 | if driver_enabled dri-mach64 | ||
234 | then | ||
235 | SPLIT_PACKAGES+=" mesa-dri-mach64" | ||
236 | add_dri_driver mach64 | ||
237 | |||
238 | split_info_mesa-dri-mach64() | ||
239 | { | ||
240 | DESCRIPTION="Mesa ATI mach64 DRI driver." | ||
241 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
242 | } | ||
243 | fi | ||
244 | |||
245 | if driver_enabled dri-mga | ||
246 | then | ||
247 | SPLIT_PACKAGES+=" mesa-dri-mga" | ||
248 | add_dri_driver mga | ||
249 | |||
250 | split_info_mesa-dri-mga() | ||
251 | { | ||
252 | DESCRIPTION="Mesa Matrox mga DRI driver." | ||
253 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
254 | } | ||
255 | fi | ||
256 | |||
257 | if driver_enabled dri-r128 | ||
258 | then | ||
259 | SPLIT_PACKAGES+=" mesa-dri-r128" | ||
260 | add_dri_driver r128 | ||
261 | |||
262 | split_info_mesa-dri-r128() | ||
263 | { | ||
264 | DESCRIPTION="Mesa ATI Rage128 DRI driver." | ||
265 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
266 | } | ||
267 | fi | ||
268 | |||
269 | if driver_enabled dri-r200 | ||
270 | then | ||
271 | SPLIT_PACKAGES+=" mesa-dri-r200" | ||
272 | add_dri_driver r200 | ||
273 | |||
274 | split_info_mesa-dri-r200() | ||
275 | { | ||
276 | DESCRIPTION="Mesa ATI Radeon r200 DRI driver." | ||
277 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
278 | } | ||
279 | fi | ||
280 | |||
281 | if driver_enabled dri-r300 | ||
282 | then | ||
283 | SPLIT_PACKAGES+=" mesa-dri-r300" | ||
284 | add_dri_driver r300 | ||
285 | |||
286 | split_info_mesa-dri-r300() | ||
287 | { | ||
288 | DESCRIPTION="Mesa ATI Radeon r300 DRI driver." | ||
289 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
290 | } | ||
291 | fi | ||
292 | |||
293 | if driver_enabled dri-r600 | ||
294 | then | ||
295 | SPLIT_PACKAGES+=" mesa-dri-r600" | ||
296 | add_dri_driver r600 | ||
297 | |||
298 | split_info_mesa-dri-r600() | ||
299 | { | ||
300 | DESCRIPTION="Mesa ATI Radeon r600 DRI driver." | ||
301 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
302 | } | ||
303 | fi | ||
304 | |||
305 | if driver_enabled dri-radeon | ||
306 | then | ||
307 | SPLIT_PACKAGES+=" mesa-dri-radeon" | ||
308 | add_dri_driver radeon | ||
309 | |||
310 | split_info_mesa-dri-radeon() | ||
311 | { | ||
312 | DESCRIPTION="Mesa ATI Radeon generic DRI driver." | ||
313 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
314 | } | ||
315 | fi | ||
316 | |||
317 | if driver_enabled dri-savage | ||
318 | then | ||
319 | SPLIT_PACKAGES+=" mesa-dri-savage" | ||
320 | add_dri_driver savage | ||
321 | |||
322 | split_info_mesa-dri-savage() | ||
323 | { | ||
324 | DESCRIPTION="Mesa S3 Savage DRI driver." | ||
325 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
326 | } | ||
327 | fi | ||
328 | |||
329 | if driver_enabled dri-sis | ||
330 | then | ||
331 | SPLIT_PACKAGES+=" mesa-dri-sis" | ||
332 | add_dri_driver sis | ||
333 | |||
334 | split_info_mesa-dri-sis() | ||
335 | { | ||
336 | DESCRIPTION="Mesa SIS generic DRI driver." | ||
337 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
338 | } | ||
339 | fi | ||
340 | |||
341 | if driver_enabled dri-tdfx | ||
342 | then | ||
343 | SPLIT_PACKAGES+=" mesa-dri-tdfx" | ||
344 | add_dri_driver tdfx | ||
345 | |||
346 | split_info_mesa-dri-tdfx() | ||
347 | { | ||
348 | DESCRIPTION="Mesa 3DFX Voodoo DRI driver." | ||
349 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
350 | } | ||
351 | fi | ||
352 | |||
353 | if driver_enabled dri-unichrome | ||
354 | then | ||
355 | SPLIT_PACKAGES+=" mesa-dri-unichrome" | ||
356 | add_dri_driver unichrome | ||
357 | |||
358 | split_info_mesa-dri-unichrome() | ||
359 | { | ||
360 | DESCRIPTION="Mesa VIA Chrome DRI driver." | ||
361 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
362 | } | ||
363 | fi | ||
364 | |||
365 | if driver_enabled gallium-i915 | ||
366 | then | ||
367 | SPLIT_PACKAGES+=" mesa-gallium-i915" | ||
368 | add_gallium_driver i915 | ||
369 | |||
370 | split_info_mesa-gallium-i915() | ||
371 | { | ||
372 | DESCRIPTION="Mesa Intel i915 Gallium driver." | ||
373 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
374 | } | ||
375 | fi | ||
376 | |||
377 | if driver_enabled gallium-i965 | ||
378 | then | ||
379 | SPLIT_PACKAGES+=" mesa-gallium-i965" | ||
380 | add_gallium_driver i965 | ||
381 | |||
382 | split_info_mesa-gallium-i965() | ||
383 | { | ||
384 | DESCRIPTION="Mesa Intel i965 Gallium driver." | ||
385 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
386 | } | ||
387 | fi | ||
388 | |||
389 | if driver_enabled gallium-nouveau | ||
390 | then | ||
391 | SPLIT_PACKAGES+=" mesa-gallium-nouveau" | ||
392 | add_gallium_driver nouveau | ||
393 | |||
394 | split_info_mesa-gallium-nouveau() | ||
395 | { | ||
396 | DESCRIPTION="Mesa Nvidia Nouveau Gallium driver." | ||
397 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
398 | } | ||
399 | fi | ||
400 | |||
401 | if driver_enabled gallium-r300 | ||
402 | then | ||
403 | SPLIT_PACKAGES+=" mesa-gallium-r300" | ||
404 | add_gallium_driver r300 | ||
405 | |||
406 | split_info_mesa-gallium-r300() | ||
407 | { | ||
408 | DESCRIPTION="Mesa Ati Radeon r300 Gallium driver." | ||
409 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
410 | } | ||
411 | fi | ||
412 | |||
413 | if driver_enabled gallium-r600 | ||
414 | then | ||
415 | SPLIT_PACKAGES+=" mesa-gallium-r600" | ||
416 | add_gallium_driver r600 | ||
417 | |||
418 | split_info_mesa-gallium-r600() | ||
419 | { | ||
420 | DESCRIPTION="Mesa Ati Radeon r600 Gallium driver." | ||
421 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
422 | } | ||
423 | fi | ||
424 | |||
425 | if driver_enabled gallium-radeonsi | ||
426 | then | ||
427 | SPLIT_PACKAGES+=" mesa-gallium-radeonsi" | ||
428 | add_gallium_driver radeonsi | ||
429 | |||
430 | split_info_mesa-gallium-radeonsi() | ||
431 | { | ||
432 | DESCRIPTION="Mesa Ati Radeon radeonsi Gallium driver." | ||
433 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
434 | } | ||
435 | fi | ||
436 | |||
437 | if driver_enabled gallium-swrast | ||
438 | then | ||
439 | SPLIT_PACKAGES+=" mesa-gallium-swrast" | ||
440 | add_gallium_driver swrast | ||
441 | |||
442 | split_info_mesa-gallium-swrast() | ||
443 | { | ||
444 | DESCRIPTION="Mesa Software Raster Gallium driver." | ||
445 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
446 | } | ||
447 | fi | ||
448 | |||
449 | if driver_enabled gallium-vmwgfx | ||
450 | then | ||
451 | SPLIT_PACKAGES+=" mesa-gallium-vmwgfx" | ||
452 | add_gallium_driver svga | ||
453 | |||
454 | split_info_mesa-gallium-vmwgfx() | ||
455 | { | ||
456 | DESCRIPTION="Mesa Vmware generic Gallium driver." | ||
457 | DEPEND="== ${PCAT}/mesa-${PVER}" | ||
458 | } | ||
459 | fi | ||
460 | |||
461 | src_prepare() | ||
462 | { | ||
463 | munpack ${SRCFILE} || die | ||
464 | |||
465 | # no debug code in the drives (gentoo) | ||
466 | all-abis 'find src/mesa/drivers/dri -name *.[hc] -exec egrep -l "\#define\W+DO_DEBUG\W+1" {} \; | xargs --no-run-if-empty sed -i -re "s/\#define\W+DO_DEBUG\W+1/\#define DO_DEBUG 0/" ;' | ||
467 | |||
468 | # get rid of glut includes | ||
469 | all-abis rm -f include/GL/glut*h || die | ||
470 | |||
471 | # fix an error in the libva detection | ||
472 | # all-abis 'sed -i "s:libva = 0.31.1:libva >= 0.31.1:" configure.ac' || die | ||
473 | |||
474 | mautoreconf || die | ||
475 | } | ||
476 | |||
477 | src_compile() | ||
478 | { | ||
479 | # build without rtti and exeptions, fixes issues with llvm as well | ||
480 | export CXXFLAGS="${CXXFLAGS} -fno-rtti -fno-exceptions -DNDEBUG" | ||
481 | |||
482 | # texture-float has patent issues in non european contries | ||
483 | # disable this feature if this legal concern is affected | ||
484 | local myconf="--enable-texture-float" | ||
485 | |||
486 | mconfigure \ | ||
487 | --with-dri-driverdir=/usr/'$(mlibdir)'/dri \ | ||
488 | --with-dri-drivers=${MESA_DRI_DRIVERS} \ | ||
489 | --with-gallium-drivers=${MESA_GALLIUM_DRIVERS} \ | ||
490 | --with-egl-platforms=x11,drm \ | ||
491 | --disable-debug \ | ||
492 | --enable-glx-tls \ | ||
493 | --enable-asm \ | ||
494 | --enable-shared-glapi \ | ||
495 | --enable-egl \ | ||
496 | --enable-gles1 \ | ||
497 | --enable-gles2 \ | ||
498 | --enable-gbm \ | ||
499 | --enable-osmesa \ | ||
500 | --enable-xa \ | ||
501 | --enable-gallium-egl \ | ||
502 | --enable-gallium-llvm \ | ||
503 | --enable-vdpau \ | ||
504 | ${myconf} \ | ||
505 | || die | ||
506 | # --enable-va \ | ||
507 | |||
508 | # # only build software renderer on multilib arches for 32Bit | ||
509 | # if [[ ${ARCH} = x86_64 ]] | ||
510 | # then | ||
511 | # only-m32 "echo 'DRI_DIRS =' >> configs/autoconf" || die | ||
512 | # fi | ||
513 | |||
514 | mmake -j1 || die | ||
515 | } | ||
516 | |||
517 | src_install_mesa() | ||
518 | { | ||
519 | mmake DESTDIR=${BINDIR} install || die | ||
520 | |||
521 | # remove all la files | ||
522 | find ${BINDIR} -name \*.la | xargs rm -fv | ||
523 | |||
524 | # setup included for dynamic opengl | ||
525 | # only target arch needed on multilib systems | ||
526 | minstalldir /usr/$(mlibdir)/opengl/xorg/include/GL || die | ||
527 | for x in ${BINDIR}/usr/include/GL/{gl.h,glx.h,glext.h,glxext.h} | ||
528 | do | ||
529 | if [ -f ${x} -o -L ${x} ] | ||
530 | then | ||
531 | mv -fv ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/include/GL || die "${x}" | ||
532 | fi | ||
533 | done | ||
534 | for x in ${BINDIR}/usr/include/{EGL,GLES*,VG,KHR} | ||
535 | do | ||
536 | if [ -d ${x} ] | ||
537 | then | ||
538 | mv -fv ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/include || die "${x}" | ||
539 | fi | ||
540 | done | ||
541 | |||
542 | for abi in ${MULTILIB_ABIS} | ||
543 | do | ||
544 | [[ ${abi} = m32 ]] && ABI_LIBDIR="lib" | ||
545 | [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64" | ||
546 | cd ${SRCDIR}-${abi} | ||
547 | |||
548 | # setup dynamic opengl | ||
549 | minstalldir /usr/$(mlibdir)/opengl/xorg/lib || die | ||
550 | minstalldir /usr/$(mlibdir)/opengl/xorg/extensions || die | ||
551 | |||
552 | local x | ||
553 | for x in ${BINDIR}/usr/$(mlibdir)/lib{EGL,GL*,OpenVG}.{la,a,so*} | ||
554 | do | ||
555 | if [ -f ${x} -o -L ${x} ] | ||
556 | then | ||
557 | mv -fv ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/lib || die "${x}" | ||
558 | fi | ||
559 | done | ||
560 | |||
561 | # export LIBGL_DRIVER_PATH location. | ||
562 | # we are using '/usr/lib/dri' as hardcoded location. | ||
563 | # but nvidia and ati are using '/usr/$(mlibdir)/xorg/modules/dri' | ||
564 | # LIBGL_DRIVER_PATH overwrites the hardcoded location and | ||
565 | # if nvidia or ati driver are installed | ||
566 | # the dri modules will never be found by libGL | ||
567 | # use "LIBGL_DEBUG=verbose glxinfo" to check this issue | ||
568 | minstalldir /etc/env.d || die | ||
569 | MCONFIG=/etc/env.d/09mesa-${abi} | ||
570 | mclearconfig || die | ||
571 | maddconfig "LIBGL_DRIVERS_PATH=/usr/$(mlibdir)/dri" || die | ||
572 | |||
573 | # remove dri-drivers, they are in extra packages | ||
574 | rm -rv ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so || die | ||
575 | # remove vdpau-drivers, they are in extra packages | ||
576 | rm -rv ${BINDIR}/usr/$(mlibdir)/vdpau || die | ||
577 | # remove gbm-pipes, they are in extra packages | ||
578 | rm -rv ${BINDIR}/usr/$(mlibdir)/gallium-pipe/pipe_*.so || die | ||
579 | done | ||
580 | } | ||
581 | |||
582 | if driver_enabled dri-swrast | ||
583 | then | ||
584 | src_install_mesa-dri-swrast() | ||
585 | { | ||
586 | install_dri_driver swrast || die | ||
587 | setup_dynamic_dri classic || die | ||
588 | } | ||
589 | fi | ||
590 | |||
591 | if driver_enabled dri-i810 | ||
592 | then | ||
593 | src_install_mesa-dri-i810() | ||
594 | { | ||
595 | install_dri_driver i810 || die | ||
596 | setup_dynamic_dri classic || die | ||
597 | } | ||
598 | fi | ||
599 | |||
600 | if driver_enabled dri-i915 | ||
601 | then | ||
602 | src_install_mesa-dri-i915() | ||
603 | { | ||
604 | install_dri_driver i915 || die | ||
605 | setup_dynamic_dri classic || die | ||
606 | } | ||
607 | fi | ||
608 | |||
609 | if driver_enabled dri-i965 | ||
610 | then | ||
611 | src_install_mesa-dri-i965() | ||
612 | { | ||
613 | install_dri_driver i965 || die | ||
614 | setup_dynamic_dri classic || die | ||
615 | } | ||
616 | fi | ||
617 | |||
618 | if driver_enabled dri-mach64 | ||
619 | then | ||
620 | src_install_mesa-dri-mach64() | ||
621 | { | ||
622 | install_dri_driver mach64 || die | ||
623 | setup_dynamic_dri classic || die | ||
624 | } | ||
625 | fi | ||
626 | |||
627 | if driver_enabled dri-mga | ||
628 | then | ||
629 | src_install_mesa-dri-mga() | ||
630 | { | ||
631 | install_dri_driver mga || die | ||
632 | setup_dynamic_dri classic || die | ||
633 | } | ||
634 | fi | ||
635 | |||
636 | if driver_enabled dri-r128 | ||
637 | then | ||
638 | src_install_mesa-dri-r128() | ||
639 | { | ||
640 | install_dri_driver r128 || die | ||
641 | setup_dynamic_dri classic || die | ||
642 | } | ||
643 | fi | ||
644 | |||
645 | if driver_enabled dri-r200 | ||
646 | then | ||
647 | src_install_mesa-dri-r200() | ||
648 | { | ||
649 | install_dri_driver r200 || die | ||
650 | setup_dynamic_dri classic || die | ||
651 | } | ||
652 | fi | ||
653 | |||
654 | if driver_enabled dri-r300 | ||
655 | then | ||
656 | src_install_mesa-dri-r300() | ||
657 | { | ||
658 | install_dri_driver r300 || die | ||
659 | setup_dynamic_dri classic || die | ||
660 | } | ||
661 | fi | ||
662 | |||
663 | if driver_enabled dri-r600 | ||
664 | then | ||
665 | src_install_mesa-dri-r600() | ||
666 | { | ||
667 | install_dri_driver r600 || die | ||
668 | setup_dynamic_dri classic || die | ||
669 | } | ||
670 | fi | ||
671 | |||
672 | if driver_enabled dri-radeon | ||
673 | then | ||
674 | src_install_mesa-dri-radeon() | ||
675 | { | ||
676 | install_dri_driver radeon || die | ||
677 | setup_dynamic_dri classic || die | ||
678 | } | ||
679 | fi | ||
680 | |||
681 | if driver_enabled dri-savage | ||
682 | then | ||
683 | src_install_mesa-dri-savage() | ||
684 | { | ||
685 | install_dri_driver savaga || die | ||
686 | setup_dynamic_dri classic || die | ||
687 | } | ||
688 | fi | ||
689 | |||
690 | if driver_enabled dri-sis | ||
691 | then | ||
692 | src_install_mesa-dri-sis() | ||
693 | { | ||
694 | install_dri_driver sis || die | ||
695 | setup_dynamic_dri classic || die | ||
696 | } | ||
697 | fi | ||
698 | |||
699 | if driver_enabled dri-tdfx | ||
700 | then | ||
701 | src_install_mesa-dri-tdfx() | ||
702 | { | ||
703 | install_dri_driver tdfx || die | ||
704 | setup_dynamic_dri classic || die | ||
705 | } | ||
706 | fi | ||
707 | |||
708 | if driver_enabled dri-unichrome | ||
709 | then | ||
710 | src_install_mesa-dri-unichrome() | ||
711 | { | ||
712 | install_dri_driver unichrome || die | ||
713 | setup_dynamic_dri classic || die | ||
714 | } | ||
715 | fi | ||
716 | |||
717 | if driver_enabled gallium-i915 | ||
718 | then | ||
719 | src_install_mesa-gallium-i915() | ||
720 | { | ||
721 | install_gallium_driver i915 || die | ||
722 | setup_dynamic_dri gallium || die | ||
723 | |||
724 | # gbm | ||
725 | install_gallium_pipe_driver i915 || die | ||
726 | } | ||
727 | fi | ||
728 | |||
729 | if driver_enabled gallium-i965 | ||
730 | then | ||
731 | src_install_mesa-gallium-i965() | ||
732 | { | ||
733 | install_gallium_driver i965 || die | ||
734 | setup_dynamic_dri gallium || die | ||
735 | |||
736 | # gbm | ||
737 | install_gallium_pipe_driver i965 || die | ||
738 | } | ||
739 | fi | ||
740 | |||
741 | if driver_enabled gallium-nouveau | ||
742 | then | ||
743 | src_install_mesa-gallium-nouveau() | ||
744 | { | ||
745 | install_gallium_driver nouveau || die | ||
746 | setup_dynamic_dri gallium || die | ||
747 | |||
748 | # vdpau | ||
749 | install_gallium_vdpau_driver nouveau || die | ||
750 | |||
751 | # gbm | ||
752 | install_gallium_pipe_driver nouveau || die | ||
753 | } | ||
754 | fi | ||
755 | |||
756 | if driver_enabled gallium-r300 | ||
757 | then | ||
758 | src_install_mesa-gallium-r300() | ||
759 | { | ||
760 | install_gallium_driver r300 || die | ||
761 | setup_dynamic_dri gallium || die | ||
762 | |||
763 | # vdpau | ||
764 | install_gallium_vdpau_driver r300 || die | ||
765 | |||
766 | # gbm | ||
767 | install_gallium_pipe_driver r300 || die | ||
768 | } | ||
769 | fi | ||
770 | |||
771 | if driver_enabled gallium-r600 | ||
772 | then | ||
773 | src_install_mesa-gallium-r600() | ||
774 | { | ||
775 | install_gallium_driver r600 || die | ||
776 | setup_dynamic_dri gallium || die | ||
777 | |||
778 | # vdpau | ||
779 | install_gallium_vdpau_driver r600 || die | ||
780 | |||
781 | # gbm | ||
782 | install_gallium_pipe_driver r600 || die | ||
783 | } | ||
784 | fi | ||
785 | |||
786 | if driver_enabled gallium-radeonsi | ||
787 | then | ||
788 | src_install_mesa-gallium-radeonsi() | ||
789 | { | ||
790 | install_gallium_driver radeonsi || die | ||
791 | setup_dynamic_dri gallium || die | ||
792 | |||
793 | # vdpau | ||
794 | install_gallium_vdpau_driver radeonsi || die | ||
795 | |||
796 | # gbm | ||
797 | install_gallium_pipe_driver radeonsi || die | ||
798 | } | ||
799 | fi | ||
800 | |||
801 | if driver_enabled gallium-swrast | ||
802 | then | ||
803 | src_install_mesa-gallium-swrast() | ||
804 | { | ||
805 | install_gallium_driver swrast || die | ||
806 | setup_dynamic_dri gallium || die | ||
807 | |||
808 | # vdpau | ||
809 | install_gallium_vdpau_driver softpipe || die | ||
810 | |||
811 | # gbm | ||
812 | install_gallium_pipe_driver swrast || die | ||
813 | } | ||
814 | fi | ||
815 | |||
816 | if driver_enabled gallium-vmwgfx | ||
817 | then | ||
818 | src_install_mesa-gallium-vmwgfx() | ||
819 | { | ||
820 | install_gallium_driver vmwgfx || die | ||
821 | setup_dynamic_dri gallium || die | ||
822 | |||
823 | # gbm | ||
824 | install_gallium_pipe_driver vmwgfx || die | ||
825 | } | ||
826 | fi | ||
827 | |||
828 | # setup_dynamic_dri $impl | ||
829 | # impl may be classic or gallium atm | ||
830 | setup_dynamic_dri() | ||
831 | { | ||
832 | local impl="$1" | ||
833 | local i | ||
834 | local abi | ||
835 | |||
836 | [[ -z ${impl} ]] && die "missing dri implementation!" | ||
837 | case ${impl} in | ||
838 | classic|gallium) ;; | ||
839 | *) die "unkown dri implementation '${impl}'!" ;; | ||
840 | esac | ||
841 | |||
842 | echo "settin up dynamic dri for a '${impl} implementation..." | ||
843 | if [[ -z ${MULTILIB_ABIS} ]] | ||
844 | then | ||
845 | minstalldir /usr/$(mlibdir)/mesa/${impl} || die | ||
846 | for i in ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so | ||
847 | do | ||
848 | echo -n " processing ${i}:" | ||
849 | if [ -f ${i} -o -L ${i} ] | ||
850 | then | ||
851 | echo -n " moving" | ||
852 | mv -vf ${i} ${BINDIR}/usr/$(mlibdir)/mesa/${impl} || die "moving ${i}" | ||
853 | fi | ||
854 | done | ||
855 | else | ||
856 | for abi in ${MULTILIB_ABIS} | ||
857 | do | ||
858 | [[ ${abi} = m32 ]] && ABI_LIBDIR="lib" | ||
859 | [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64" | ||
860 | |||
861 | minstalldir /usr/$(mlibdir)/mesa/${impl} || die | ||
862 | for i in ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so | ||
863 | do | ||
864 | echo -n " processing ${i}" | ||
865 | if [ -f ${i} -o -L ${i} ] | ||
866 | then | ||
867 | echo -n " moving" | ||
868 | mv -vf ${i} ${BINDIR}/usr/$(mlibdir)/mesa/${impl} || die "moving ${i}" | ||
869 | fi | ||
870 | echo " done" | ||
871 | done | ||
872 | done | ||
873 | fi | ||
874 | } | ||
875 | |||
876 | postinstall_mesa() | ||
877 | { | ||
878 | ${MROOT}/usr/sbin/opengl-update --use-old xorg | ||
879 | } | ||
880 | |||
881 | if driver_enabled dri-swrast | ||
882 | then | ||
883 | postinstall_mesa-dri-swrast() | ||
884 | { | ||
885 | ${MROOT}/usr/sbin/dri-update --use-old classic | ||
886 | } | ||
887 | fi | ||
888 | |||
889 | if driver_enabled dri-i810 | ||
890 | then | ||
891 | postinstall_mesa-dri-i810() | ||
892 | { | ||
893 | ${MROOT}/usr/sbin/dri-update --use-old classic | ||
894 | } | ||
895 | fi | ||
896 | |||
897 | if driver_enabled dri-i915 | ||
898 | then | ||
899 | postinstall_mesa-dri-i915() | ||
900 | { | ||
901 | ${MROOT}/usr/sbin/dri-update --use-old classic | ||
902 | } | ||
903 | fi | ||
904 | |||
905 | if driver_enabled dri-i965 | ||
906 | then | ||
907 | postinstall_mesa-dri-i965() | ||
908 | { | ||
909 | ${MROOT}/usr/sbin/dri-update --use-old classic | ||
910 | } | ||
911 | fi | ||
912 | |||
913 | if driver_enabled dri-mach64 | ||
914 | then | ||
915 | postinstall_mesa-dri-mach64() | ||
916 | { | ||
917 | ${MROOT}/usr/sbin/dri-update --use-old classic | ||
918 | } | ||
919 | fi | ||
920 | |||
921 | if driver_enabled dri-mga | ||
922 | then | ||
923 | postinstall_mesa-dri-mga() | ||
924 | { | ||
925 | ${MROOT}/usr/sbin/dri-update --use-old classic | ||
926 | } | ||
927 | fi | ||
928 | |||
929 | if driver_enabled dri-r128 | ||
930 | then | ||
931 | postinstall_mesa-dri-r128() | ||
932 | { | ||
933 | ${MROOT}/usr/sbin/dri-update --use-old classic | ||
934 | } | ||
935 | fi | ||
936 | |||
937 | if driver_enabled dri-r200 | ||
938 | then | ||
939 | postinstall_mesa-dri-r200() | ||
940 | { | ||
941 | ${MROOT}/usr/sbin/dri-update --use-old classic | ||
942 | } | ||
943 | fi | ||
944 | |||
945 | if driver_enabled dri-r300 | ||
946 | then | ||
947 | postinstall_mesa-dri-r300() | ||
948 | { | ||
949 | ${MROOT}/usr/sbin/dri-update --use-old classic | ||
950 | } | ||
951 | fi | ||
952 | |||
953 | if driver_enabled dri-r600 | ||
954 | then | ||
955 | postinstall_mesa-dri-r600() | ||
956 | { | ||
957 | ${MROOT}/usr/sbin/dri-update --use-old classic | ||
958 | } | ||
959 | fi | ||
960 | |||
961 | if driver_enabled dri-radeon | ||
962 | then | ||
963 | postinstall_mesa-dri-radeon() | ||
964 | { | ||
965 | ${MROOT}/usr/sbin/dri-update --use-old classic | ||
966 | } | ||
967 | fi | ||
968 | |||
969 | if driver_enabled dri-savage | ||
970 | then | ||
971 | postinstall_mesa-dri-savage() | ||
972 | { | ||
973 | ${MROOT}/usr/sbin/dri-update --use-old classic | ||
974 | } | ||
975 | fi | ||
976 | |||
977 | if driver_enabled dri-sis | ||
978 | then | ||
979 | postinstall_mesa-dri-sis() | ||
980 | { | ||
981 | ${MROOT}/usr/sbin/dri-update --use-old classic | ||
982 | } | ||
983 | fi | ||
984 | |||
985 | if driver_enabled dri-tdfx | ||
986 | then | ||
987 | postinstall_mesa-dri-tdfx() | ||
988 | { | ||
989 | ${MROOT}/usr/sbin/dri-update --use-old classic | ||
990 | } | ||
991 | fi | ||
992 | |||
993 | if driver_enabled dri-unichrome | ||
994 | then | ||
995 | postinstall_mesa-dri-unichrome() | ||
996 | { | ||
997 | ${MROOT}/usr/sbin/dri-update --use-old classic | ||
998 | } | ||
999 | fi | ||
1000 | |||
1001 | if driver_enabled gallium-i915 | ||
1002 | then | ||
1003 | postinstall_mesa-gallium-i915() | ||
1004 | { | ||
1005 | ${MROOT}/usr/sbin/dri-update --use-old gallium | ||
1006 | } | ||
1007 | fi | ||
1008 | |||
1009 | if driver_enabled gallium-i965 | ||
1010 | then | ||
1011 | postinstall_mesa-gallium-i965() | ||
1012 | { | ||
1013 | ${MROOT}/usr/sbin/dri-update --use-old gallium | ||
1014 | } | ||
1015 | fi | ||
1016 | |||
1017 | if driver_enabled gallium-nouveau | ||
1018 | then | ||
1019 | postinstall_mesa-gallium-nouveau() | ||
1020 | { | ||
1021 | ${MROOT}/usr/sbin/dri-update --use-old gallium | ||
1022 | } | ||
1023 | fi | ||
1024 | |||
1025 | if driver_enabled gallium-r300 | ||
1026 | then | ||
1027 | postinstall_mesa-gallium-r300() | ||
1028 | { | ||
1029 | ${MROOT}/usr/sbin/dri-update --use-old gallium | ||
1030 | } | ||
1031 | fi | ||
1032 | |||
1033 | if driver_enabled gallium-r600 | ||
1034 | then | ||
1035 | postinstall_mesa-gallium-r600() | ||
1036 | { | ||
1037 | ${MROOT}/usr/sbin/dri-update --use-old gallium | ||
1038 | } | ||
1039 | fi | ||
1040 | |||
1041 | if driver_enabled gallium-radeonsi | ||
1042 | then | ||
1043 | postinstall_mesa-gallium-radeonsi() | ||
1044 | { | ||
1045 | ${MROOT}/usr/sbin/dri-update --use-old gallium | ||
1046 | } | ||
1047 | fi | ||
1048 | |||
1049 | if driver_enabled gallium-swrast | ||
1050 | then | ||
1051 | postinstall_mesa-gallium-swrast() | ||
1052 | { | ||
1053 | ${MROOT}/usr/sbin/dri-update --use-old gallium | ||
1054 | } | ||
1055 | fi | ||
1056 | |||
1057 | if driver_enabled gallium-vmwgfx | ||
1058 | then | ||
1059 | postinstall_mesa-gallium-vmwgfx() | ||
1060 | { | ||
1061 | ${MROOT}/usr/sbin/dri-update --use-old gallium | ||
1062 | } | ||
1063 | fi |