Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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