Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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