Magellan Linux

Contents of /smage/trunk/core/mesa/mesa-11.2.2-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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