Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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