Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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