Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 7736 - (hide annotations) (download)
Mon May 30 18:35:14 2011 UTC (12 years, 11 months ago) by niro
File size: 14420 byte(s)
-version 2.2.13
1 niro 7721 # $Id$
2    
3     PNAME="mesa"
4     PVER="7.10.2"
5     PBUILD="r1"
6    
7     STATE="unstable"
8 niro 7734 PCATEGORIE="media-libs"
9 niro 7721
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 niro 7734 >= x11-base/opengl-update-magellan-2.2.14
21 niro 7721 >= 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 niro 7732 >= x11-proto/damageproto-1.2
42     >= dev-lang/python-2.7"
43 niro 7721
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 niro 7724 # libs SRCDIR
51 niro 7721 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 niro 7734 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 niro 7721
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 niro 7733 mirror://${PNAME}/${PNAME}-${PVER}-nouveau-missing-headers.patch
84 niro 7721 )
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 niro 7731 PROVIDE="virtual/opengl"
94    
95 niro 7721 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 niro 7734 postinstall()
106     {
107     ${MROOT}/usr/sbin/dri-update --use-old classic
108     }
109 niro 7721 }
110    
111     split_info_mesa-dri-i810()
112     {
113     DESCRIPTION="Mesa Intel i810 DRI driver."
114     DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
115 niro 7734 postinstall()
116     {
117     ${MROOT}/usr/sbin/dri-update --use-old classic
118     }
119 niro 7721 }
120    
121     split_info_mesa-dri-i915()
122     {
123     DESCRIPTION="Mesa Intel i915 DRI driver."
124     DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
125 niro 7734 postinstall()
126     {
127     ${MROOT}/usr/sbin/dri-update --use-old classic
128     }
129 niro 7721 }
130    
131     split_info_mesa-dri-i965()
132     {
133     DESCRIPTION="Mesa Intel i965 DRI driver."
134     DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
135 niro 7734 postinstall()
136     {
137     ${MROOT}/usr/sbin/dri-update --use-old classic
138     }
139 niro 7721 }
140    
141     split_info_mesa-dri-mach64()
142     {
143     DESCRIPTION="Mesa ATI mach64 DRI driver."
144     DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
145 niro 7734 postinstall()
146     {
147     ${MROOT}/usr/sbin/dri-update --use-old classic
148     }
149 niro 7721 }
150    
151     split_info_mesa-dri-mga()
152     {
153     DESCRIPTION="Mesa Matrox mga DRI driver."
154     DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
155 niro 7734 postinstall()
156     {
157     ${MROOT}/usr/sbin/dri-update --use-old classic
158     }
159 niro 7721 }
160    
161     split_info_mesa-dri-r128()
162     {
163     DESCRIPTION="Mesa ATI Rage128 DRI driver."
164     DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
165 niro 7734 postinstall()
166     {
167     ${MROOT}/usr/sbin/dri-update --use-old classic
168     }
169 niro 7721 }
170    
171     split_info_mesa-dri-r200()
172     {
173     DESCRIPTION="Mesa ATI Radeon r200 DRI driver."
174     DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
175 niro 7734 postinstall()
176     {
177     ${MROOT}/usr/sbin/dri-update --use-old classic
178     }
179 niro 7721 }
180    
181     split_info_mesa-dri-r300()
182     {
183     DESCRIPTION="Mesa ATI Radeon r300 DRI driver."
184     DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
185 niro 7734 postinstall()
186     {
187     ${MROOT}/usr/sbin/dri-update --use-old classic
188     }
189 niro 7721 }
190    
191     split_info_mesa-dri-r600()
192     {
193     DESCRIPTION="Mesa ATI Radeon r600 DRI driver."
194     DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
195 niro 7734 postinstall()
196     {
197     ${MROOT}/usr/sbin/dri-update --use-old classic
198     }
199 niro 7721 }
200    
201     split_info_mesa-dri-radeon()
202     {
203     DESCRIPTION="Mesa ATI Radeon generic DRI driver."
204     DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
205 niro 7734 postinstall()
206     {
207     ${MROOT}/usr/sbin/dri-update --use-old classic
208     }
209 niro 7721 }
210    
211     split_info_mesa-dri-savage()
212     {
213     DESCRIPTION="Mesa S3 Savage DRI driver."
214     DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
215 niro 7734 postinstall()
216     {
217     ${MROOT}/usr/sbin/dri-update --use-old classic
218     }
219 niro 7721 }
220    
221     split_info_mesa-dri-sis()
222     {
223     DESCRIPTION="Mesa SIS generic DRI driver."
224     DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
225 niro 7734 postinstall()
226     {
227     ${MROOT}/usr/sbin/dri-update --use-old classic
228     }
229 niro 7721 }
230    
231     split_info_mesa-dri-tdfx()
232     {
233     DESCRIPTION="Mesa 3DFX Voodoo DRI driver."
234     DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
235 niro 7734 postinstall()
236     {
237     ${MROOT}/usr/sbin/dri-update --use-old classic
238     }
239 niro 7721 }
240    
241     split_info_mesa-dri-unichrome()
242     {
243     DESCRIPTION="Mesa VIA Chrome DRI driver."
244     DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
245 niro 7734 postinstall()
246     {
247     ${MROOT}/usr/sbin/dri-update --use-old classic
248     }
249 niro 7721 }
250    
251 niro 7734 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 niro 7721 src_prepare()
322     {
323     munpack ${SRCFILE} || die
324    
325 niro 7733 # fix missing nouveau headers
326     mpatch ${PNAME}-${PVER}-nouveau-missing-headers.patch || die
327    
328 niro 7721 # 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 niro 7729 --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 niro 7721 || 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 niro 7729 mmake -j1 || die
370 niro 7721 }
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 niro 7734 # remove dri-drivers, they are in extra packages
459     rm -r ${BINDIR}/usr/$(mlibdir)/dri || die
460 niro 7721 }
461    
462     src_install_mesa-dri-swrast()
463     {
464     mmake -C src/mesa/drivers/dri/swrast DESTDIR=${BINDIR} install || die
465 niro 7736 # now setup dynamic dri
466     setup_dynamic_dri classic
467 niro 7721 }
468    
469     src_install_mesa-dri-i810()
470     {
471     mmake -C src/mesa/drivers/dri/i810 DESTDIR=${BINDIR} install || die
472 niro 7734 # now setup dynamic dri
473     setup_dynamic_dri classic
474 niro 7721 }
475    
476     src_install_mesa-dri-i915()
477     {
478     mmake -C src/mesa/drivers/dri/i915 DESTDIR=${BINDIR} install || die
479 niro 7734 # now setup dynamic dri
480     setup_dynamic_dri classic
481 niro 7721 }
482    
483     src_install_mesa-dri-i965()
484     {
485     mmake -C src/mesa/drivers/dri/i965 DESTDIR=${BINDIR} install || die
486 niro 7734 # now setup dynamic dri
487     setup_dynamic_dri classic
488 niro 7721 }
489    
490     src_install_mesa-dri-mach64()
491     {
492     mmake -C src/mesa/drivers/dri/mach64 DESTDIR=${BINDIR} install || die
493 niro 7734 # now setup dynamic dri
494     setup_dynamic_dri classic
495 niro 7721 }
496 niro 7734
497 niro 7721 src_install_mesa-dri-mga()
498     {
499     mmake -C src/mesa/drivers/dri/mga DESTDIR=${BINDIR} install || die
500 niro 7734 # now setup dynamic dri
501     setup_dynamic_dri classic
502 niro 7721 }
503    
504     src_install_mesa-dri-r128()
505     {
506     mmake -C src/mesa/drivers/dri/r128 DESTDIR=${BINDIR} install || die
507 niro 7734 # now setup dynamic dri
508     setup_dynamic_dri classic
509 niro 7721 }
510    
511     src_install_mesa-dri-r200()
512     {
513     mmake -C src/mesa/drivers/dri/r200 DESTDIR=${BINDIR} install || die
514 niro 7734 # now setup dynamic dri
515     setup_dynamic_dri classic
516 niro 7721 }
517    
518     src_install_mesa-dri-r300()
519     {
520     mmake -C src/mesa/drivers/dri/r300 DESTDIR=${BINDIR} install || die
521 niro 7734 # now setup dynamic dri
522     setup_dynamic_dri classic
523 niro 7721 }
524    
525     src_install_mesa-dri-r600()
526     {
527     mmake -C src/mesa/drivers/dri/r600 DESTDIR=${BINDIR} install || die
528 niro 7734 # now setup dynamic dri
529     setup_dynamic_dri classic
530 niro 7721 }
531    
532     src_install_mesa-dri-radeon()
533     {
534     mmake -C src/mesa/drivers/dri/radeon DESTDIR=${BINDIR} install || die
535 niro 7734 # now setup dynamic dri
536     setup_dynamic_dri classic
537 niro 7721 }
538    
539     src_install_mesa-dri-savage()
540     {
541     mmake -C src/mesa/drivers/dri/savage DESTDIR=${BINDIR} install || die
542 niro 7734 # now setup dynamic dri
543     setup_dynamic_dri classic
544 niro 7721 }
545    
546     src_install_mesa-dri-sis()
547     {
548     mmake -C src/mesa/drivers/dri/sis DESTDIR=${BINDIR} install || die
549 niro 7734 # now setup dynamic dri
550     setup_dynamic_dri classic
551 niro 7721 }
552    
553     src_install_mesa-dri-tdfx()
554     {
555     mmake -C src/mesa/drivers/dri/tdfx DESTDIR=${BINDIR} install || die
556 niro 7734 # now setup dynamic dri
557     setup_dynamic_dri classic
558 niro 7721 }
559    
560     src_install_mesa-dri-unichrome()
561     {
562     mmake -C src/mesa/drivers/dri/unichrome DESTDIR=${BINDIR} install || die
563 niro 7734 # now setup dynamic dri
564     setup_dynamic_dri classic
565 niro 7721 }
566 niro 7729
567 niro 7734 src_install_mesa-gallium-i915()
568     {
569     mmake -C src/gallium/targets/dri-i915 DESTDIR=${BINDIR} install || die
570     # now setup dynamic dri
571     setup_dynamic_dri gallium
572     }
573    
574     src_install_mesa-gallium-i965()
575     {
576     mmake -C src/gallium/targets/dri-i965 DESTDIR=${BINDIR} install || die
577     # now setup dynamic dri
578     setup_dynamic_dri gallium
579     }
580    
581     src_install_mesa-gallium-nouveau()
582     {
583     mmake -C src/gallium/targets/dri-nouveau DESTDIR=${BINDIR} install || die
584     # now setup dynamic dri
585     setup_dynamic_dri gallium
586     }
587    
588     src_install_mesa-gallium-r300()
589     {
590     mmake -C src/gallium/targets/dri-r300 DESTDIR=${BINDIR} install || die
591     # now setup dynamic dri
592     setup_dynamic_dri gallium
593     }
594    
595     src_install_mesa-gallium-r600()
596     {
597     mmake -C src/gallium/targets/dri-r600 DESTDIR=${BINDIR} install || die
598     # now setup dynamic dri
599     setup_dynamic_dri gallium
600     }
601    
602     src_install_mesa-gallium-swrast()
603     {
604     mmake -C src/gallium/targets/dri-swrast DESTDIR=${BINDIR} install || die
605     # now setup dynamic dri
606     setup_dynamic_dri gallium
607     }
608    
609     src_install_mesa-gallium-vmwgfx()
610     {
611     mmake -C src/gallium/targets/dri-vmwgfx DESTDIR=${BINDIR} install || die
612     # now setup dynamic dri
613     setup_dynamic_dri gallium
614     }
615    
616     # setup_dynamic_dri $impl
617     # impl may be classic or gallium atm
618     setup_dynamic_dri()
619     {
620     local impl="$1"
621     local i
622    
623     [[ -z ${impl} ]] && die "missing dri implementation!"
624     case ${impl} in
625     classic|gallium) continue ;;
626     *) die "unkown dri implementation '${impl}'!" ;;
627     esac
628    
629     minstalldir /usr/$(mlibdir)/mesa/${impl} || die
630     for i in ${BINDIR}/usr/$(mlibdir)/dri/*
631     do
632     if [ -f ${i} -o -L ${i} ]
633     then
634     mv -f ${i} ${BINDIR}/usr/$(mlibdir)/mesa/${impl} || die "moving ${i}"
635     fi
636     done
637     }