Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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