Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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