Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 9150 - (show annotations) (download)
Mon Nov 7 22:45:28 2011 UTC (12 years, 5 months ago) by niro
File size: 15306 byte(s)
-fixed drm dependency
1 # $Id$
2
3 PNAME="mesa"
4 PVER="7.11"
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.27
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
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 )
83
84 UP2DATE="updatecmd ftp://ftp.freedesktop.org/pub/mesa/current | lasttarball"
85
86 split_info_mesa()
87 {
88 DESCRIPTION="Mesa3D OpenGL graphics library."
89 DEPEND="${MESA_DEPEND}"
90
91 PROVIDE="virtual/opengl"
92 }
93
94 split_info_mesa-dri-swrast()
95 {
96 DESCRIPTION="Mesa Software Raster DRI driver."
97 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
98 }
99
100 split_info_mesa-dri-i810()
101 {
102 DESCRIPTION="Mesa Intel i810 DRI driver."
103 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
104 }
105
106 split_info_mesa-dri-i915()
107 {
108 DESCRIPTION="Mesa Intel i915 DRI driver."
109 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
110 }
111
112 split_info_mesa-dri-i965()
113 {
114 DESCRIPTION="Mesa Intel i965 DRI driver."
115 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
116 }
117
118 split_info_mesa-dri-mach64()
119 {
120 DESCRIPTION="Mesa ATI mach64 DRI driver."
121 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
122 }
123
124 split_info_mesa-dri-mga()
125 {
126 DESCRIPTION="Mesa Matrox mga DRI driver."
127 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
128 }
129
130 split_info_mesa-dri-r128()
131 {
132 DESCRIPTION="Mesa ATI Rage128 DRI driver."
133 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
134 }
135
136 split_info_mesa-dri-r200()
137 {
138 DESCRIPTION="Mesa ATI Radeon r200 DRI driver."
139 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
140 }
141
142 split_info_mesa-dri-r300()
143 {
144 DESCRIPTION="Mesa ATI Radeon r300 DRI driver."
145 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
146 }
147
148 split_info_mesa-dri-r600()
149 {
150 DESCRIPTION="Mesa ATI Radeon r600 DRI driver."
151 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
152 }
153
154 split_info_mesa-dri-radeon()
155 {
156 DESCRIPTION="Mesa ATI Radeon generic DRI driver."
157 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
158 }
159
160 split_info_mesa-dri-savage()
161 {
162 DESCRIPTION="Mesa S3 Savage DRI driver."
163 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
164 }
165
166 split_info_mesa-dri-sis()
167 {
168 DESCRIPTION="Mesa SIS generic DRI driver."
169 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
170 }
171
172 split_info_mesa-dri-tdfx()
173 {
174 DESCRIPTION="Mesa 3DFX Voodoo DRI driver."
175 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
176 }
177
178 split_info_mesa-dri-unichrome()
179 {
180 DESCRIPTION="Mesa VIA Chrome DRI driver."
181 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
182 }
183
184 split_info_mesa-gallium-i915()
185 {
186 DESCRIPTION="Mesa Intel i915 Gallium driver."
187 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
188 }
189
190 split_info_mesa-gallium-i965()
191 {
192 DESCRIPTION="Mesa Intel i965 Gallium driver."
193 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
194 }
195
196 split_info_mesa-gallium-nouveau()
197 {
198 DESCRIPTION="Mesa Nvidia Nouveau Gallium driver."
199 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
200 }
201
202 split_info_mesa-gallium-r300()
203 {
204 DESCRIPTION="Mesa Ati Radeon r300 Gallium driver."
205 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
206 }
207
208 split_info_mesa-gallium-r600()
209 {
210 DESCRIPTION="Mesa Ati Radeon r600 Gallium driver."
211 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
212 }
213
214 split_info_mesa-gallium-swrast()
215 {
216 DESCRIPTION="Mesa Software Raster Gallium driver."
217 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
218 }
219
220 split_info_mesa-gallium-vmwgfx()
221 {
222 DESCRIPTION="Mesa Vmware generic Gallium driver."
223 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
224 }
225
226 src_prepare()
227 {
228 munpack ${SRCFILE} || die
229
230 # no debug code in the drives (gentoo)
231 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/" ;'
232
233 # get rid of glut includes
234 all-abis rm -f include/GL/glut*h || die
235 }
236
237 src_compile()
238 {
239 # gallium is highly experimental, disabled atm!
240 mconfigure \
241 --with-driver=dri \
242 --with-dri-driverdir=/usr/'$(mlibdir)'/dri \
243 --disable-debug \
244 --disable-glut \
245 --disable-ttm-api \
246 --without-demos \
247 --enable-glx-tls \
248 --enable-asm \
249 --enable-xcb \
250 --enable-glw \
251 --enable-egl \
252 --enable-gles1 \
253 --enable-gles2 \
254 --enable-galium-egl \
255 --enable-gallium-svga \
256 --enable-gallium-radeon \
257 --enable-gallium-r600 \
258 --enable-gallium-nouveau \
259 --enable-gallium-swrast \
260 --enable-gallium-i915 \
261 --enable-gallium-i965 \
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 || 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 }