Magellan Linux

Contents of /smage/trunk/core/mesa/mesa-11.0.8-r3.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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