Magellan Linux

Contents of /trunk/extras/mesa/mesa-10.0.2-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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