Magellan Linux

Contents of /trunk/core/mesa/mesa-9.2.2-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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