Magellan Linux

Contents of /branches/R11-stable/extras/mesa/mesa-10.2.1-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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