Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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