Magellan Linux

Contents of /smage/branches/alx07x-unstable/core/mesa/mesa-18.1.7-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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