Magellan Linux

Contents of /trunk/core/mesa/mesa-7.11.2-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 10167 - (show annotations) (download)
Wed Jan 18 13:34:07 2012 UTC (12 years, 4 months ago) by niro
File size: 15230 byte(s)
-fixed PCATEGORIE -> PCAT
1 # $Id$
2
3 PNAME="mesa"
4 PVER="7.11.2"
5 PBUILD="r2"
6
7 PCAT="media-libs"
8
9 HOMEPAGE="http://mesa3d.sourceforge.net/"
10
11 MESA_DEPEND=">= dev-libs/expat-2
12 >= x11-libs/libX11-1.4
13 >= x11-libs/libXext-1.3
14 >= x11-libs/libXxf86vm-1.1
15 >= x11-libs/libXi-1.4
16 >= x11-libs/libXmu-1.1
17 >= x11-libs/libdrm-2.4.30
18 >= x11-libs/libICE-1
19 >= x11-base/opengl-update-magellan-2.2.16
20 >= x11-libs/libxcb-1
21 >= x11-libs/libXfixes-5
22 >= x11-libs/libXdamage-1
23 >= sys-libs/libstdc++-4.6"
24
25 MESA_PROGS_DEPEND=">= virtual/glut"
26
27 SDEPEND="${MESA_DEPEND}
28 ${MESA_PROGS_DEPEND}
29 >= dev-util/pkgconfig-0.25
30 >= x11-misc/makedepend-1
31 >= x11-proto/xf86vidmodeproto-2.3
32 >= x11-libs/libXxf86vm-1.1
33 >= x11-proto/glproto-1.4.12
34 >= x11-proto/inputproto-2
35 >= x11-proto/xextproto-7.2
36 >= x11-proto/xf86driproto-2.1
37 >= x11-proto/dri2proto-2.3
38 >= x11-proto/xcb-proto-1.6
39 >= x11-proto/xproto-7
40 >= x11-proto/fixesproto-5
41 >= x11-proto/damageproto-1.2
42 >= dev-lang/python-2.7
43 >= sys-dev/llvm-2.9"
44
45 # must be set before the include of multilib!
46 EMUL_LINUX_32=true
47 sminclude xorg mtools multilib
48 msetfeature "!check"
49
50 # must be set *after* the include of xorg!
51 SRCFILE="MesaLib-${PVER/_/-}.tar.bz2"
52 # libs SRCDIR
53 SRCDIR="${BUILDDIR}/Mesa-${PVER/_/-}"
54
55 SPLIT_PACKAGES="mesa
56 mesa-dri-swrast
57 mesa-dri-i810
58 mesa-dri-i915
59 mesa-dri-i965
60 mesa-dri-mach64
61 mesa-dri-mga
62 mesa-dri-r128
63 mesa-dri-r200
64 mesa-dri-r300
65 mesa-dri-r600
66 mesa-dri-radeon
67 mesa-dri-savage
68 mesa-dri-sis
69 mesa-dri-tdfx
70 mesa-dri-unichrome
71 mesa-gallium-nouveau
72 mesa-gallium-r300
73 mesa-gallium-r600
74 mesa-gallium-swrast"
75 #mesa-gallium-vmwgfx
76 #mesa-gallium-i915
77 #mesa-gallium-i965
78
79 SRC_URI=(
80 ftp://ftp.freedesktop.org/pub/mesa/${PVER}/${SRCFILE}
81 #sourceforge://mesa3d/${SRCFILE}
82 mirror://${PNAME}/${SRCFILE}
83 mirror://${PNAME}/libGLU.la
84 mirror://${PNAME}/libGL.la
85 )
86
87 UP2DATE="updatecmd ftp://ftp.freedesktop.org/pub/mesa/current | lasttarball"
88
89 split_info_mesa()
90 {
91 DESCRIPTION="Mesa3D OpenGL graphics library."
92 DEPEND="${MESA_DEPEND}"
93
94 PROVIDE="virtual/opengl"
95 }
96
97 split_info_mesa-dri-swrast()
98 {
99 DESCRIPTION="Mesa Software Raster DRI driver."
100 DEPEND="== ${PCAT}/mesa-${PVER}"
101 }
102
103 split_info_mesa-dri-i810()
104 {
105 DESCRIPTION="Mesa Intel i810 DRI driver."
106 DEPEND="== ${PCAT}/mesa-${PVER}"
107 }
108
109 split_info_mesa-dri-i915()
110 {
111 DESCRIPTION="Mesa Intel i915 DRI driver."
112 DEPEND="== ${PCAT}/mesa-${PVER}"
113 }
114
115 split_info_mesa-dri-i965()
116 {
117 DESCRIPTION="Mesa Intel i965 DRI driver."
118 DEPEND="== ${PCAT}/mesa-${PVER}"
119 }
120
121 split_info_mesa-dri-mach64()
122 {
123 DESCRIPTION="Mesa ATI mach64 DRI driver."
124 DEPEND="== ${PCAT}/mesa-${PVER}"
125 }
126
127 split_info_mesa-dri-mga()
128 {
129 DESCRIPTION="Mesa Matrox mga DRI driver."
130 DEPEND="== ${PCAT}/mesa-${PVER}"
131 }
132
133 split_info_mesa-dri-r128()
134 {
135 DESCRIPTION="Mesa ATI Rage128 DRI driver."
136 DEPEND="== ${PCAT}/mesa-${PVER}"
137 }
138
139 split_info_mesa-dri-r200()
140 {
141 DESCRIPTION="Mesa ATI Radeon r200 DRI driver."
142 DEPEND="== ${PCAT}/mesa-${PVER}"
143 }
144
145 split_info_mesa-dri-r300()
146 {
147 DESCRIPTION="Mesa ATI Radeon r300 DRI driver."
148 DEPEND="== ${PCAT}/mesa-${PVER}"
149 }
150
151 split_info_mesa-dri-r600()
152 {
153 DESCRIPTION="Mesa ATI Radeon r600 DRI driver."
154 DEPEND="== ${PCAT}/mesa-${PVER}"
155 }
156
157 split_info_mesa-dri-radeon()
158 {
159 DESCRIPTION="Mesa ATI Radeon generic DRI driver."
160 DEPEND="== ${PCAT}/mesa-${PVER}"
161 }
162
163 split_info_mesa-dri-savage()
164 {
165 DESCRIPTION="Mesa S3 Savage DRI driver."
166 DEPEND="== ${PCAT}/mesa-${PVER}"
167 }
168
169 split_info_mesa-dri-sis()
170 {
171 DESCRIPTION="Mesa SIS generic DRI driver."
172 DEPEND="== ${PCAT}/mesa-${PVER}"
173 }
174
175 split_info_mesa-dri-tdfx()
176 {
177 DESCRIPTION="Mesa 3DFX Voodoo DRI driver."
178 DEPEND="== ${PCAT}/mesa-${PVER}"
179 }
180
181 split_info_mesa-dri-unichrome()
182 {
183 DESCRIPTION="Mesa VIA Chrome DRI driver."
184 DEPEND="== ${PCAT}/mesa-${PVER}"
185 }
186
187 #split_info_mesa-gallium-i915()
188 #{
189 # DESCRIPTION="Mesa Intel i915 Gallium driver."
190 # DEPEND="== ${PCAT}/mesa-${PVER}"
191 #}
192
193 #split_info_mesa-gallium-i965()
194 #{
195 # DESCRIPTION="Mesa Intel i965 Gallium driver."
196 # DEPEND="== ${PCAT}/mesa-${PVER}"
197 #}
198
199 split_info_mesa-gallium-nouveau()
200 {
201 DESCRIPTION="Mesa Nvidia Nouveau Gallium driver."
202 DEPEND="== ${PCAT}/mesa-${PVER}"
203 }
204
205 split_info_mesa-gallium-r300()
206 {
207 DESCRIPTION="Mesa Ati Radeon r300 Gallium driver."
208 DEPEND="== ${PCAT}/mesa-${PVER}"
209 }
210
211 split_info_mesa-gallium-r600()
212 {
213 DESCRIPTION="Mesa Ati Radeon r600 Gallium driver."
214 DEPEND="== ${PCAT}/mesa-${PVER}"
215 }
216
217 split_info_mesa-gallium-swrast()
218 {
219 DESCRIPTION="Mesa Software Raster Gallium driver."
220 DEPEND="== ${PCAT}/mesa-${PVER}"
221 }
222
223 #split_info_mesa-gallium-vmwgfx()
224 #{
225 # DESCRIPTION="Mesa Vmware generic Gallium driver."
226 # DEPEND="== ${PCAT}/mesa-${PVER}"
227 #}
228
229 src_prepare()
230 {
231 munpack ${SRCFILE} || die
232
233 # no debug code in the drives (gentoo)
234 all-abis 'find src/mesa/drivers/dri -name *.[hc] -exec egrep -l "\#define\W+DO_DEBUG\W+1" {} \; | xargs sed -i -re "s/\#define\W+DO_DEBUG\W+1/\#define DO_DEBUG 0/" ;'
235
236 # get rid of glut includes
237 all-abis rm -f include/GL/glut*h || die
238 }
239
240 src_compile()
241 {
242 # gallium is highly experimental, disabled atm!
243 mconfigure \
244 --with-driver=dri \
245 --with-dri-driverdir=/usr/'$(mlibdir)'/dri \
246 --disable-debug \
247 --disable-glut \
248 --disable-ttm-api \
249 --without-demos \
250 --enable-glx-tls \
251 --enable-asm \
252 --enable-xcb \
253 --enable-shared-glapi \
254 --enable-shared-dricore \
255 --enable-glw \
256 --enable-egl \
257 --enable-gles1 \
258 --enable-gles2 \
259 --enable-gallium-egl \
260 --enable-gallium-llvm \
261 --with-gallium-drivers=r300,r600,nouveau,swrast \
262 --with-state-trackers=glx,dri,egl,vega \
263 || die
264
265 # only build software renderer on multilib arches
266 if [[ ${ARCH} = x86_64 ]]
267 then
268 only-m32 "echo 'DRI_DIRS =' >> configs/autoconf" || die
269 fi
270
271 mmake -j1 || die
272 }
273
274 src_install_mesa()
275 {
276 # needed directories
277 minstalldir /etc/env.d || die
278
279 mmake DESTDIR=${BINDIR} install || die
280
281 # missing gl headers
282 minstallfile src/glw/GLwDrawA.h /usr/include/GL || die
283
284 # remove private headers
285 rm -f ${BINDIR}/usr/include/GL/GLw*P.h || die
286
287 for abi in ${MULTILIB_ABIS}
288 do
289 [[ ${abi} = m32 ]] && ABI_LIBDIR="lib"
290 [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64"
291 cd ${SRCDIR}-${abi}
292
293 # fix opengl-symlinks
294 # first remove invalid symlinks
295 find ${BINDIR}/usr/$(mlibdir) -name libGL\.* -type l | xargs rm -f
296 # now create required opengl-symlinks
297 mlink libGL.so.1.2 /usr/$(mlibdir)/libGL.so || die
298 mlink libGL.so.1.2 /usr/$(mlibdir)/libGL.so.1 || die
299
300 # now setup dynamic opengl
301 minstalldir /usr/$(mlibdir)/opengl/xorg/lib || die
302 minstalldir /usr/$(mlibdir)/opengl/xorg/extensions || die
303 minstalldir /usr/$(mlibdir)/opengl/xorg/include || die
304
305 local x
306 for x in ${BINDIR}/usr/$(mlibdir)/libGL.so* \
307 ${BINDIR}/usr/$(mlibdir)/libGL.la \
308 ${BINDIR}/usr/$(mlibdir)/libGL.a
309 do
310 if [ -f ${x} -o -L ${x} ]
311 then
312 # libGL.a cause problems with tuxracer, etc
313 mv -f ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/lib || die "${x}"
314 fi
315 done
316 for x in ${BINDIR}/usr/include/GL/{gl.h,glx.h,glext.h,glxext.h}
317 do
318 if [ -f ${x} -o -L ${x} ]
319 then
320 mv -f ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/include || die "${x}"
321 fi
322 done
323
324 # satisfy libtool
325 minstallfile -s libGLU.la /usr/$(mlibdir) || die
326 minstallfile -s libGL.la /usr/$(mlibdir)/opengl/xorg/lib || die
327
328 # fix libdir on 64bit arches
329 if [[ $(mlibdir) != lib ]]
330 then
331 sed -i "s:/usr/lib:/usr/$(mlibdir):g" ${BINDIR}/usr/$(mlibdir)/libGLU.la || die
332 sed -i "s:/usr/lib:/usr/$(mlibdir):g" ${BINDIR}/usr/$(mlibdir)/opengl/xorg/lib/libGL.la || die
333 fi
334
335 # create the two-number versioned libs (.so.#.#), since only .so.# and
336 # .so.#.#.# were made
337 local x
338 for x in ${BINDIR}/usr/$(mlibdir)/libGLU.so.*.*.* \
339 ${BINDIR}/usr/$(mlibdir)/libGLw.so.*.*.*
340 do
341 local lib_name_dot3="$(basename $(ls ${x}))"
342 local lib_name_dot2="${lib_name_dot3%.*}"
343 local lib_name_dot1="${lib_name_dot2%.*}"
344 local lib_name_dot0="${lib_name_dot1%.*}"
345 mlink ${lib_name_dot3} /usr/$(mlibdir)/${lib_name_dot2} || die "${x}"
346 mlink ${lib_name_dot3} /usr/$(mlibdir)/${lib_name_dot1} || die "${x}"
347 mlink ${lib_name_dot3} /usr/$(mlibdir)/${lib_name_dot0} || die "${x}"
348 done
349
350 # export LIBGL_DRIVER_PATH location.
351 # we are using '/usr/lib/dri' as hardcoded location.
352 # but nvidia and ati are using '/usr/$(mlibdir)/xorg/modules/dri'
353 # LIBGL_DRIVER_PATH overwrites the hardcoded location and
354 # if nvidia or ati driver are installed
355 # the dri modules will never be found by libGL
356 # use "LIBGL_DEBUG=verbose glxinfo" to check this issue
357 echo "LIBGL_DRIVERS_PATH=/usr/$(mlibdir)/dri" > ${BINDIR}/etc/env.d/09mesa-${abi} || die
358
359 # remove dri-drivers, they are in extra packages
360 rm -r ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so || die
361 done
362 }
363
364 src_install_mesa-dri-swrast()
365 {
366 mmake -C src/mesa/drivers/dri/swrast DESTDIR=${BINDIR} install || die
367 # now setup dynamic dri
368 setup_dynamic_dri classic || die
369 }
370
371 src_install_mesa-dri-i810()
372 {
373 mmake -C src/mesa/drivers/dri/i810 DESTDIR=${BINDIR} install || die
374 # now setup dynamic dri
375 setup_dynamic_dri classic || die
376 }
377
378 src_install_mesa-dri-i915()
379 {
380 mmake -C src/mesa/drivers/dri/i915 DESTDIR=${BINDIR} install || die
381 # now setup dynamic dri
382 setup_dynamic_dri classic || die
383 }
384
385 src_install_mesa-dri-i965()
386 {
387 mmake -C src/mesa/drivers/dri/i965 DESTDIR=${BINDIR} install || die
388 # now setup dynamic dri
389 setup_dynamic_dri classic || die
390 }
391
392 src_install_mesa-dri-mach64()
393 {
394 mmake -C src/mesa/drivers/dri/mach64 DESTDIR=${BINDIR} install || die
395 # now setup dynamic dri
396 setup_dynamic_dri classic || die
397 }
398
399 src_install_mesa-dri-mga()
400 {
401 mmake -C src/mesa/drivers/dri/mga DESTDIR=${BINDIR} install || die
402 # now setup dynamic dri
403 setup_dynamic_dri classic || die
404 }
405
406 src_install_mesa-dri-r128()
407 {
408 mmake -C src/mesa/drivers/dri/r128 DESTDIR=${BINDIR} install || die
409 # now setup dynamic dri
410 setup_dynamic_dri classic || die
411 }
412
413 src_install_mesa-dri-r200()
414 {
415 mmake -C src/mesa/drivers/dri/r200 DESTDIR=${BINDIR} install || die
416 # now setup dynamic dri
417 setup_dynamic_dri classic || die
418 }
419
420 src_install_mesa-dri-r300()
421 {
422 mmake -C src/mesa/drivers/dri/r300 DESTDIR=${BINDIR} install || die
423 # now setup dynamic dri
424 setup_dynamic_dri classic || die
425 }
426
427 src_install_mesa-dri-r600()
428 {
429 mmake -C src/mesa/drivers/dri/r600 DESTDIR=${BINDIR} install || die
430 # now setup dynamic dri
431 setup_dynamic_dri classic || die
432 }
433
434 src_install_mesa-dri-radeon()
435 {
436 mmake -C src/mesa/drivers/dri/radeon DESTDIR=${BINDIR} install || die
437 # now setup dynamic dri
438 setup_dynamic_dri classic || die
439 }
440
441 src_install_mesa-dri-savage()
442 {
443 mmake -C src/mesa/drivers/dri/savage DESTDIR=${BINDIR} install || die
444 # now setup dynamic dri
445 setup_dynamic_dri classic || die
446 }
447
448 src_install_mesa-dri-sis()
449 {
450 mmake -C src/mesa/drivers/dri/sis DESTDIR=${BINDIR} install || die
451 # now setup dynamic dri
452 setup_dynamic_dri classic || die
453 }
454
455 src_install_mesa-dri-tdfx()
456 {
457 mmake -C src/mesa/drivers/dri/tdfx DESTDIR=${BINDIR} install || die
458 # now setup dynamic dri
459 setup_dynamic_dri classic || die
460 }
461
462 src_install_mesa-dri-unichrome()
463 {
464 mmake -C src/mesa/drivers/dri/unichrome DESTDIR=${BINDIR} install || die
465 # now setup dynamic dri
466 setup_dynamic_dri classic || die
467 }
468
469 #src_install_mesa-gallium-i915()
470 #{
471 # mmake -C src/gallium/targets/dri-i915 DESTDIR=${BINDIR} install || die
472 # # now setup dynamic dri
473 # setup_dynamic_dri gallium || die
474 #}
475
476 #src_install_mesa-gallium-i965()
477 #{
478 # mmake -C src/gallium/targets/dri-i965 DESTDIR=${BINDIR} install || die
479 # # now setup dynamic dri
480 # setup_dynamic_dri gallium || die
481 #}
482
483 src_install_mesa-gallium-nouveau()
484 {
485 mmake -C src/gallium/targets/dri-nouveau DESTDIR=${BINDIR} install || die
486 # now setup dynamic dri
487 setup_dynamic_dri gallium || die
488 }
489
490 src_install_mesa-gallium-r300()
491 {
492 mmake -C src/gallium/targets/dri-r300 DESTDIR=${BINDIR} install || die
493 # now setup dynamic dri
494 setup_dynamic_dri gallium || die
495 }
496
497 src_install_mesa-gallium-r600()
498 {
499 mmake -C src/gallium/targets/dri-r600 DESTDIR=${BINDIR} install || die
500 # now setup dynamic dri
501 setup_dynamic_dri gallium || die
502 }
503
504 src_install_mesa-gallium-swrast()
505 {
506 mmake -C src/gallium/targets/dri-swrast DESTDIR=${BINDIR} install || die
507 # now setup dynamic dri
508 setup_dynamic_dri gallium || die
509 }
510
511 #src_install_mesa-gallium-vmwgfx()
512 #{
513 # mmake -C src/gallium/targets/dri-vmwgfx DESTDIR=${BINDIR} install || die
514 # # now setup dynamic dri
515 # setup_dynamic_dri gallium || die
516 #}
517
518 # setup_dynamic_dri $impl
519 # impl may be classic or gallium atm
520 setup_dynamic_dri()
521 {
522 local impl="$1"
523 local i
524 local abi
525
526 [[ -z ${impl} ]] && die "missing dri implementation!"
527 case ${impl} in
528 classic|gallium) ;;
529 *) die "unkown dri implementation '${impl}'!" ;;
530 esac
531
532 echo "settin up dynamic dri for a '${impl} implementation..."
533 if [[ -z ${MULTILIB_ABIS} ]]
534 then
535 minstalldir /usr/$(mlibdir)/mesa/${impl} || die
536 for i in ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so
537 do
538 echo -n " processing ${i}:"
539 if [ -f ${i} -o -L ${i} ]
540 then
541 echo -n " moving"
542 mv -vf ${i} ${BINDIR}/usr/$(mlibdir)/mesa/${impl} || die "moving ${i}"
543 fi
544 done
545 else
546 for abi in ${MULTILIB_ABIS}
547 do
548 [[ ${abi} = m32 ]] && ABI_LIBDIR="lib"
549 [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64"
550
551 minstalldir /usr/$(mlibdir)/mesa/${impl} || die
552 for i in ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so
553 do
554 echo -n " processing ${i}"
555 if [ -f ${i} -o -L ${i} ]
556 then
557 echo -n " moving"
558 mv -vf ${i} ${BINDIR}/usr/$(mlibdir)/mesa/${impl} || die "moving ${i}"
559 fi
560 echo " done"
561 done
562 done
563 fi
564 }
565
566 postinstall_mesa()
567 {
568 ${MROOT}/usr/sbin/opengl-update --use-old xorg
569 }
570
571 postinstall_mesa-dri-swrast()
572 {
573 ${MROOT}/usr/sbin/dri-update --use-old classic
574 }
575
576 postinstall_mesa-dri-i810()
577 {
578 ${MROOT}/usr/sbin/dri-update --use-old classic
579 }
580
581 postinstall_mesa-dri-i915()
582 {
583 ${MROOT}/usr/sbin/dri-update --use-old classic
584 }
585
586 postinstall_mesa-dri-i965()
587 {
588 ${MROOT}/usr/sbin/dri-update --use-old classic
589 }
590
591 postinstall_mesa-dri-mach64()
592 {
593 ${MROOT}/usr/sbin/dri-update --use-old classic
594 }
595
596 postinstall_mesa-dri-mga()
597 {
598 ${MROOT}/usr/sbin/dri-update --use-old classic
599 }
600
601 postinstall_mesa-dri-r128()
602 {
603 ${MROOT}/usr/sbin/dri-update --use-old classic
604 }
605
606 postinstall_mesa-dri-r200()
607 {
608 ${MROOT}/usr/sbin/dri-update --use-old classic
609 }
610
611 postinstall_mesa-dri-r300()
612 {
613 ${MROOT}/usr/sbin/dri-update --use-old classic
614 }
615
616 postinstall_mesa-dri-r600()
617 {
618 ${MROOT}/usr/sbin/dri-update --use-old classic
619 }
620
621 postinstall_mesa-dri-radeon()
622 {
623 ${MROOT}/usr/sbin/dri-update --use-old classic
624 }
625
626 postinstall_mesa-dri-savage()
627 {
628 ${MROOT}/usr/sbin/dri-update --use-old classic
629 }
630
631 postinstall_mesa-dri-sis()
632 {
633 ${MROOT}/usr/sbin/dri-update --use-old classic
634 }
635
636 postinstall_mesa-dri-tdfx()
637 {
638 ${MROOT}/usr/sbin/dri-update --use-old classic
639 }
640
641 postinstall_mesa-dri-unichrome()
642 {
643 ${MROOT}/usr/sbin/dri-update --use-old classic
644 }
645
646 postinstall_mesa-gallium-i915()
647 {
648 ${MROOT}/usr/sbin/dri-update --use-old gallium
649 }
650
651 postinstall_mesa-gallium-i965()
652 {
653 ${MROOT}/usr/sbin/dri-update --use-old gallium
654 }
655
656 postinstall_mesa-gallium-nouveau()
657 {
658 ${MROOT}/usr/sbin/dri-update --use-old gallium
659 }
660
661 postinstall_mesa-gallium-r300()
662 {
663 ${MROOT}/usr/sbin/dri-update --use-old gallium
664 }
665
666 postinstall_mesa-gallium-r600()
667 {
668 ${MROOT}/usr/sbin/dri-update --use-old gallium
669 }
670
671 postinstall_mesa-gallium-swrast()
672 {
673
674 ${MROOT}/usr/sbin/dri-update --use-old gallium
675 }
676
677 postinstall_mesa-gallium-vmwgfx()
678 {
679 ${MROOT}/usr/sbin/dri-update --use-old gallium
680 }