Magellan Linux

Contents of /smage/trunk/core/mesa/mesa-17.1.5-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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