Magellan Linux

Annotation of /branches/R11-stable/extras/mesa/mesa-9.2.3-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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