Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 12098 - (hide annotations) (download)
Mon Aug 27 08:37:25 2018 UTC (5 years, 8 months ago) by niro
File size: 26440 byte(s)
auto added: ver bump to 18.1.7-r1
1 niro 12098 # $Id$
2    
3     PNAME="mesa"
4     PVER="18.1.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="6.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.93
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++-6.2
30     >= sys-fs/libudev-233
31     >= sys-libs/libelf-0.171"
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.93
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-6.3
51     >= sys-fs/libudev-dev-233
52     >= sys-libs/libelf-dev-0.171"
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     ${myconf} \
622     || die
623     # --enable-va \
624    
625     # # only build software renderer on multilib arches for 32Bit
626     # if [[ ${ARCH} = x86_64 ]]
627     # then
628     # only-m32 "echo 'DRI_DIRS =' >> configs/autoconf" || die
629     # fi
630    
631     mmake -j1 || die
632     }
633    
634     src_install_mesa()
635     {
636     mmake DESTDIR=${BINDIR} install || die
637    
638     # remove all la files
639     find ${BINDIR} -name \*.la | xargs rm -fv
640    
641     # setup included for dynamic opengl
642     # only target arch needed on multilib systems
643     for abi in ${MULTILIB_ABIS}
644     do
645     [[ ${abi} = m32 ]] && ABI_LIBDIR="lib"
646     [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64"
647     cd ${SRCDIR}-${abi}
648    
649     # setup dynamic opengl
650     minstalldir /usr/$(mlibdir)/opengl/xorg/lib || die
651     minstalldir /usr/$(mlibdir)/opengl/xorg/extensions || die
652    
653     local x
654     for x in ${BINDIR}/usr/$(mlibdir)/lib{EGL,GL*,OpenVG}.so.*
655     do
656     if [ -f ${x} -o -L ${x} ]
657     then
658     mv -fv ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/lib || die "${x}"
659     fi
660     done
661    
662     # export LIBGL_DRIVER_PATH location.
663     # we are using '/usr/lib/dri' as hardcoded location.
664     # but nvidia and ati are using '/usr/$(mlibdir)/xorg/modules/dri'
665     # LIBGL_DRIVER_PATH overwrites the hardcoded location and
666     # if nvidia or ati driver are installed
667     # the dri modules will never be found by libGL
668     # use "LIBGL_DEBUG=verbose glxinfo" to check this issue
669     minstalldir /etc/env.d || die
670     MCONFIG=/etc/env.d/09mesa-${abi}
671     mclearconfig || die
672     maddconfig "LIBGL_DRIVERS_PATH=/usr/$(mlibdir)/dri" || die
673    
674     # remove dri-drivers, they are in extra packages
675     rm -rv ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so || die
676     # remove vdpau-drivers, they are in extra packages
677     # rm -rv ${BINDIR}/usr/$(mlibdir)/vdpau || die
678     # remove gbm-pipes, they are in extra packages
679     # rm -rv ${BINDIR}/usr/$(mlibdir)/gallium-pipe/pipe_*.so || die
680     done
681    
682     zapmost ${BINDIR} \
683     usr/$(mlibdir)/*.so.* \
684     $([[ $(mlibdir) != lib ]] && echo 'usr/lib/*.so.*') \
685     usr/$(mlibdir)/dri \
686     $([[ $(mlibdir) != lib ]] && echo 'usr/lib/dri') \
687     usr/$(mlibdir)/opengl \
688     $([[ $(mlibdir) != lib ]] && echo 'usr/lib/opengl') \
689     || die
690     # usr/$(mlibdir)/egl \
691     # $([[ $(mlibdir) != lib ]] && echo 'usr/lib/egl')
692    
693     # remove xa-tracker
694     mdelete /usr/$(mlibdir)/libxatracker.\* || die
695     if [[ $(mlibdir) != lib ]]
696     then
697     mdelete /usr/lib/libxatracker.\* || die
698     fi
699     }
700    
701     src_install_mesa-dev()
702     {
703     mmake DESTDIR=${BINDIR} install || die
704    
705     # remove all la files
706     find ${BINDIR} -name \*.la | xargs rm -fv
707    
708     # setup included for dynamic opengl
709     # only target arch needed on multilib systems
710     minstalldir /usr/$(mlibdir)/opengl/xorg/include/GL || die
711     for x in ${BINDIR}/usr/include/GL/{gl.h,glx.h,glext.h,glxext.h}
712     do
713     if [ -f ${x} -o -L ${x} ]
714     then
715     mv -fv ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/include/GL || die "${x}"
716     fi
717     done
718     for x in ${BINDIR}/usr/include/{EGL,GLES*,VG,KHR}
719     do
720     if [ -d ${x} ]
721     then
722     mv -fv ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/include || die "${x}"
723     fi
724     done
725    
726     for abi in ${MULTILIB_ABIS}
727     do
728     [[ ${abi} = m32 ]] && ABI_LIBDIR="lib"
729     [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64"
730     cd ${SRCDIR}-${abi}
731    
732     # setup dynamic opengl
733     minstalldir /usr/$(mlibdir)/opengl/xorg/lib || die
734     minstalldir /usr/$(mlibdir)/opengl/xorg/extensions || die
735    
736     local x
737     for x in ${BINDIR}/usr/$(mlibdir)/lib{EGL,GL*,OpenVG}.{la,a,so}
738     do
739     if [ -f ${x} -o -L ${x} ]
740     then
741     mv -fv ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/lib || die "${x}"
742     fi
743     done
744    
745     # remove dri-drivers, they are in extra packages
746     rm -rv ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so || die
747     # remove vdpau-drivers, they are in extra packages
748     # rm -rv ${BINDIR}/usr/$(mlibdir)/vdpau || die
749     # remove gbm-pipes, they are in extra packages
750     # rm -rv ${BINDIR}/usr/$(mlibdir)/gallium-pipe/pipe_*.so || die
751     done
752    
753     # includes in mesa package
754     rm -r ${BINDIR}/usr/$(mlibdir)/*.so.* || die
755     mdelete -r /usr/$(mlibdir)/dri || die
756     # mdelete -r /usr/$(mlibdir)/egl || die
757     if [[ $(mlibdir) != lib ]]
758     then
759     rm -r ${BINDIR}/usr/lib/*.so.* || die
760     mdelete -r /usr/lib/dri || die
761     # mdelete -r /usr/lib/egl || die
762     fi
763     }
764    
765     src_install_mesa-xa-tracker()
766     {
767     mmake DESTDIR=${BINDIR} install || die
768    
769     zapmost ${BINDIR} \
770     usr/$(mlibdir)/libxatracker.so.* \
771     $([[ $(mlibdir) != lib ]] && echo 'usr/lib/libxatracker.so.*') \
772     || die
773     }
774    
775     if driver_enabled dri-swrast
776     then
777     src_install_mesa-dri-swrast()
778     {
779     install_dri_driver swrast || die
780     setup_dynamic_dri classic || die
781     }
782     fi
783    
784     if driver_enabled dri-i810
785     then
786     src_install_mesa-dri-i810()
787     {
788     install_dri_driver i810 || die
789     setup_dynamic_dri classic || die
790     }
791     fi
792    
793     if driver_enabled dri-i915
794     then
795     src_install_mesa-dri-i915()
796     {
797     install_dri_driver i915 || die
798     setup_dynamic_dri classic || die
799     }
800     fi
801    
802     if driver_enabled dri-i965
803     then
804     src_install_mesa-dri-i965()
805     {
806     install_dri_driver i965 || die
807     setup_dynamic_dri classic || die
808     }
809     fi
810    
811     if driver_enabled dri-mach64
812     then
813     src_install_mesa-dri-mach64()
814     {
815     install_dri_driver mach64 || die
816     setup_dynamic_dri classic || die
817     }
818     fi
819    
820     if driver_enabled dri-mga
821     then
822     src_install_mesa-dri-mga()
823     {
824     install_dri_driver mga || die
825     setup_dynamic_dri classic || die
826     }
827     fi
828    
829     if driver_enabled dri-r128
830     then
831     src_install_mesa-dri-r128()
832     {
833     install_dri_driver r128 || die
834     setup_dynamic_dri classic || die
835     }
836     fi
837    
838     if driver_enabled dri-nouveau
839     then
840     src_install_mesa-dri-nouveau()
841     {
842     install_dri_driver nouveau || die
843     setup_dynamic_dri classic || die
844     }
845     fi
846    
847     if driver_enabled dri-r200
848     then
849     src_install_mesa-dri-r200()
850     {
851     install_dri_driver r200 || die
852     setup_dynamic_dri classic || die
853     }
854     fi
855    
856     if driver_enabled dri-r300
857     then
858     src_install_mesa-dri-r300()
859     {
860     install_dri_driver r300 || die
861     setup_dynamic_dri classic || die
862     }
863     fi
864    
865     if driver_enabled dri-r600
866     then
867     src_install_mesa-dri-r600()
868     {
869     install_dri_driver r600 || die
870     setup_dynamic_dri classic || die
871     }
872     fi
873    
874     if driver_enabled dri-radeon
875     then
876     src_install_mesa-dri-radeon()
877     {
878     install_dri_driver radeon || die
879     setup_dynamic_dri classic || die
880     }
881     fi
882    
883     if driver_enabled dri-savage
884     then
885     src_install_mesa-dri-savage()
886     {
887     install_dri_driver savage || die
888     setup_dynamic_dri classic || die
889     }
890     fi
891    
892     if driver_enabled dri-sis
893     then
894     src_install_mesa-dri-sis()
895     {
896     install_dri_driver sis || die
897     setup_dynamic_dri classic || die
898     }
899     fi
900    
901     if driver_enabled dri-tdfx
902     then
903     src_install_mesa-dri-tdfx()
904     {
905     install_dri_driver tdfx || die
906     setup_dynamic_dri classic || die
907     }
908     fi
909    
910     if driver_enabled dri-unichrome
911     then
912     src_install_mesa-dri-unichrome()
913     {
914     install_dri_driver unichrome || die
915     setup_dynamic_dri classic || die
916     }
917     fi
918    
919     if driver_enabled gallium-i915
920     then
921     src_install_mesa-gallium-i915()
922     {
923     install_gallium_driver i915 || die
924     setup_dynamic_dri gallium || die
925    
926     # gbm
927     # install_gallium_pipe_driver i915 || die
928     }
929     fi
930    
931     if driver_enabled gallium-i965
932     then
933     src_install_mesa-gallium-i965()
934     {
935     install_gallium_driver i965 || die
936     setup_dynamic_dri gallium || die
937    
938     # gbm
939     # install_gallium_pipe_driver i965 || die
940     }
941     fi
942    
943     if driver_enabled gallium-nouveau
944     then
945     src_install_mesa-gallium-nouveau()
946     {
947     install_gallium_driver nouveau || die
948     setup_dynamic_dri gallium || die
949    
950     # vdpau
951     # install_gallium_vdpau_driver nouveau || die
952    
953     # gbm
954     # install_gallium_pipe_driver nouveau || die
955     }
956     fi
957    
958     if driver_enabled gallium-r300
959     then
960     src_install_mesa-gallium-r300()
961     {
962     install_gallium_driver r300 || die
963     setup_dynamic_dri gallium || die
964    
965     # vdpau
966     # install_gallium_vdpau_driver r300 || die
967    
968     # gbm
969     # install_gallium_pipe_driver r300 || die
970     }
971     fi
972    
973     if driver_enabled gallium-r600
974     then
975     src_install_mesa-gallium-r600()
976     {
977     install_gallium_driver r600 || die
978     setup_dynamic_dri gallium || die
979    
980     # vdpau
981     # install_gallium_vdpau_driver r600 || die
982    
983     # gbm
984     # install_gallium_pipe_driver r600 || die
985     }
986     fi
987    
988     if driver_enabled gallium-radeonsi
989     then
990     src_install_mesa-gallium-radeonsi()
991     {
992     install_gallium_driver radeonsi || die
993     setup_dynamic_dri gallium || die
994    
995     # vdpau
996     # install_gallium_vdpau_driver radeonsi || die
997    
998     # gbm
999     # install_gallium_pipe_driver radeonsi || die
1000     }
1001     fi
1002    
1003     if driver_enabled gallium-swrast
1004     then
1005     src_install_mesa-gallium-swrast()
1006     {
1007     install_gallium_driver swrast || die
1008     setup_dynamic_dri gallium || die
1009    
1010     # vdpau
1011     # install_gallium_vdpau_driver softpipe || die
1012    
1013     # gbm
1014     # install_gallium_pipe_driver swrast || die
1015     }
1016     fi
1017    
1018     if driver_enabled gallium-vmwgfx
1019     then
1020     src_install_mesa-gallium-vmwgfx()
1021     {
1022     install_gallium_driver vmwgfx || die
1023     setup_dynamic_dri gallium || die
1024    
1025     # gbm
1026     # install_gallium_pipe_driver vmwgfx || die
1027     }
1028     fi
1029    
1030     # setup_dynamic_dri $impl
1031     # impl may be classic or gallium atm
1032     setup_dynamic_dri()
1033     {
1034     local impl="$1"
1035     local i
1036     local abi
1037    
1038     [[ -z ${impl} ]] && die "missing dri implementation!"
1039     case ${impl} in
1040     classic|gallium) ;;
1041     *) die "unkown dri implementation '${impl}'!" ;;
1042     esac
1043    
1044     echo "settin up dynamic dri for a '${impl} implementation..."
1045     if [[ -z ${MULTILIB_ABIS} ]]
1046     then
1047     minstalldir /usr/$(mlibdir)/mesa/${impl} || die
1048     for i in ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so
1049     do
1050     echo -n " processing ${i}:"
1051     if [ -f ${i} -o -L ${i} ]
1052     then
1053     echo -n " moving"
1054     mv -vf ${i} ${BINDIR}/usr/$(mlibdir)/mesa/${impl} || die "moving ${i}"
1055     fi
1056     done
1057     else
1058     for abi in ${MULTILIB_ABIS}
1059     do
1060     [[ ${abi} = m32 ]] && ABI_LIBDIR="lib"
1061     [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64"
1062    
1063     minstalldir /usr/$(mlibdir)/mesa/${impl} || die
1064     for i in ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so
1065     do
1066     echo -n " processing ${i}"
1067     if [ -f ${i} -o -L ${i} ]
1068     then
1069     echo -n " moving"
1070     mv -vf ${i} ${BINDIR}/usr/$(mlibdir)/mesa/${impl} || die "moving ${i}"
1071     fi
1072     echo " done"
1073     done
1074     done
1075     fi
1076     }
1077    
1078     postinstall_mesa()
1079     {
1080     ${MROOT}/usr/sbin/opengl-update --use-old xorg
1081     }
1082    
1083     postinstall_mesa-dev()
1084     {
1085     ${MROOT}/usr/sbin/opengl-update --use-old xorg
1086     }
1087    
1088     if driver_enabled dri-swrast
1089     then
1090     postinstall_mesa-dri-swrast()
1091     {
1092     ${MROOT}/usr/sbin/dri-update --use-old classic
1093     }
1094     fi
1095    
1096     if driver_enabled dri-i810
1097     then
1098     postinstall_mesa-dri-i810()
1099     {
1100     ${MROOT}/usr/sbin/dri-update --use-old classic
1101     }
1102     fi
1103    
1104     if driver_enabled dri-i915
1105     then
1106     postinstall_mesa-dri-i915()
1107     {
1108     ${MROOT}/usr/sbin/dri-update --use-old classic
1109     }
1110     fi
1111    
1112     if driver_enabled dri-i965
1113     then
1114     postinstall_mesa-dri-i965()
1115     {
1116     ${MROOT}/usr/sbin/dri-update --use-old classic
1117     }
1118     fi
1119    
1120     if driver_enabled dri-mach64
1121     then
1122     postinstall_mesa-dri-mach64()
1123     {
1124     ${MROOT}/usr/sbin/dri-update --use-old classic
1125     }
1126     fi
1127    
1128     if driver_enabled dri-mga
1129     then
1130     postinstall_mesa-dri-mga()
1131     {
1132     ${MROOT}/usr/sbin/dri-update --use-old classic
1133     }
1134     fi
1135    
1136     if driver_enabled dri-nouveau
1137     then
1138     postinstall_mesa-dri-nouveau()
1139     {
1140     ${MROOT}/usr/sbin/dri-update --use-old classic
1141     }
1142     fi
1143    
1144     if driver_enabled dri-r128
1145     then
1146     postinstall_mesa-dri-r128()
1147     {
1148     ${MROOT}/usr/sbin/dri-update --use-old classic
1149     }
1150     fi
1151    
1152     if driver_enabled dri-r200
1153     then
1154     postinstall_mesa-dri-r200()
1155     {
1156     ${MROOT}/usr/sbin/dri-update --use-old classic
1157     }
1158     fi
1159    
1160     if driver_enabled dri-r300
1161     then
1162     postinstall_mesa-dri-r300()
1163     {
1164     ${MROOT}/usr/sbin/dri-update --use-old classic
1165     }
1166     fi
1167    
1168     if driver_enabled dri-r600
1169     then
1170     postinstall_mesa-dri-r600()
1171     {
1172     ${MROOT}/usr/sbin/dri-update --use-old classic
1173     }
1174     fi
1175    
1176     if driver_enabled dri-radeon
1177     then
1178     postinstall_mesa-dri-radeon()
1179     {
1180     ${MROOT}/usr/sbin/dri-update --use-old classic
1181     }
1182     fi
1183    
1184     if driver_enabled dri-savage
1185     then
1186     postinstall_mesa-dri-savage()
1187     {
1188     ${MROOT}/usr/sbin/dri-update --use-old classic
1189     }
1190     fi
1191    
1192     if driver_enabled dri-sis
1193     then
1194     postinstall_mesa-dri-sis()
1195     {
1196     ${MROOT}/usr/sbin/dri-update --use-old classic
1197     }
1198     fi
1199    
1200     if driver_enabled dri-tdfx
1201     then
1202     postinstall_mesa-dri-tdfx()
1203     {
1204     ${MROOT}/usr/sbin/dri-update --use-old classic
1205     }
1206     fi
1207    
1208     if driver_enabled dri-unichrome
1209     then
1210     postinstall_mesa-dri-unichrome()
1211     {
1212     ${MROOT}/usr/sbin/dri-update --use-old classic
1213     }
1214     fi
1215    
1216     if driver_enabled gallium-i915
1217     then
1218     postinstall_mesa-gallium-i915()
1219     {
1220     ${MROOT}/usr/sbin/dri-update --use-old gallium
1221     }
1222     fi
1223    
1224     if driver_enabled gallium-i965
1225     then
1226     postinstall_mesa-gallium-i965()
1227     {
1228     ${MROOT}/usr/sbin/dri-update --use-old gallium
1229     }
1230     fi
1231    
1232     if driver_enabled gallium-nouveau
1233     then
1234     postinstall_mesa-gallium-nouveau()
1235     {
1236     ${MROOT}/usr/sbin/dri-update --use-old gallium
1237     }
1238     fi
1239    
1240     if driver_enabled gallium-r300
1241     then
1242     postinstall_mesa-gallium-r300()
1243     {
1244     ${MROOT}/usr/sbin/dri-update --use-old gallium
1245     }
1246     fi
1247    
1248     if driver_enabled gallium-r600
1249     then
1250     postinstall_mesa-gallium-r600()
1251     {
1252     ${MROOT}/usr/sbin/dri-update --use-old gallium
1253     }
1254     fi
1255    
1256     if driver_enabled gallium-radeonsi
1257     then
1258     postinstall_mesa-gallium-radeonsi()
1259     {
1260     ${MROOT}/usr/sbin/dri-update --use-old gallium
1261     }
1262     fi
1263    
1264     if driver_enabled gallium-swrast
1265     then
1266     postinstall_mesa-gallium-swrast()
1267     {
1268     ${MROOT}/usr/sbin/dri-update --use-old gallium
1269     }
1270     fi
1271    
1272     if driver_enabled gallium-vmwgfx
1273     then
1274     postinstall_mesa-gallium-vmwgfx()
1275     {
1276     ${MROOT}/usr/sbin/dri-update --use-old gallium
1277     }
1278     fi