Magellan Linux

Annotation of /smage/trunk/core/mesa/mesa-17.1.5-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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