Magellan Linux

Contents of /branches/magellan-next/core/mesa/mesa-7.10.2-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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