Magellan Linux

Contents of /smage/trunk/core/mesa/mesa-10.1.2-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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