Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 21801 - (hide 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 niro 21494 # $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