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