Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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