Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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