Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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