Magellan Linux

Contents of /trunk/extras/mesa/mesa-10.2.7-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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