Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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