Magellan Linux

Annotation of /smage/branches/alx07x-stable/core/mesa/mesa-19.0.7-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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