Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 8455 - (hide annotations) (download)
Mon Jul 18 20:44:06 2011 UTC (12 years, 10 months ago) by niro
File size: 15176 byte(s)
-fixed nouveau patch version
1 niro 8450 # $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 niro 8455 mirror://${PNAME}/${PNAME}-7.10.2-nouveau-missing-headers.patch
83 niro 8450 )
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 niro 8455 mpatch ${PNAME}-7.10.2-nouveau-missing-headers.patch || die
326 niro 8450
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     }