Magellan Linux

Annotation of /smage/branches/alx07x-unstable/core/mesa/mesa-10.4.6-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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