Magellan Linux

Annotation of /smage/trunk/core/mesa/mesa-7.10-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1405 - (hide annotations) (download)
Tue Mar 1 22:23:52 2011 UTC (13 years, 2 months ago) by niro
File size: 5210 byte(s)
-only keep so in opengl/xorg/lib dir for the mcore package and all la files in the dev package
1 niro 1399 # $Id$
2    
3     PNAME="mesa"
4     PVER="7.10"
5     PBUILD="r1"
6    
7     PCATEGORIE="media-libs"
8     STATE="unstable"
9    
10     DESCRIPTION="Mesa3D OpenGL graphics library."
11     HOMEPAGE="http://mesa3d.sourceforge.net/"
12    
13     DEPEND=">= dev-libs/expat-2
14     >= x11-libs/libX11-1
15     >= x11-libs/libXext-1
16     >= x11-libs/libXxf86vm-1
17     >= x11-libs/libXi-1
18     >= x11-libs/libXmu-1
19     >= x11-libs/libdrm-2.4
20     >= x11-libs/libICE-1
21     >= x11-libs/libXfixes-4
22 niro 1401 >= x11-libs/libXdamage-1
23     >= sys-libs/talloc-2"
24 niro 1399
25     SDEPEND=">= dev-util/pkgconfig-0.23
26     >= x11-misc/makedepend-1
27     >= x11-proto/xf86vidmodeproto-2.3
28     >= x11-libs/libXxf86vm-1.1
29     >= x11-proto/glproto-1.4.9
30     >= x11-proto/inputproto-1
31     >= x11-proto/xextproto-7
32     >= x11-proto/xf86driproto-2
33     >= x11-proto/dri2proto-2.0
34     >= x11-proto/xproto-7
35     >= x11-proto/fixesproto-4
36 niro 1403 >= x11-proto/damageproto-1
37     >= dev-lang/python-2.7
38     >= dev-libs/libxml2-2.7"
39 niro 1399
40     PROVIDE="virtual/opengl"
41    
42     MCORE_ONLY_KEEP="etc/env.d
43     usr/$(mlibdir)/*.so
44     usr/$(mlibdir)/*.so.*
45     usr/$(mlibdir)/dri
46 niro 1405 usr/$(mlibdir)/opengl/xorg/lib/*.so
47     usr/$(mlibdir)/opengl/xorg/lib/*.so.*"
48 niro 1399
49     # must be set before the include of multilib!
50     EMUL_LINUX_32=true
51     sminclude xorg mtools multilib mcore-split
52    
53     # must be set *after* the include of xorg!
54     SRCFILE="MesaLib-${PVER/_/-}.tar.gz"
55     SRCDIR="${BUILDDIR}/Mesa-${PVER/_/-}"
56    
57     SRC_URI=(
58     ftp://ftp.freedesktop.org/pub/mesa/${PVER}/${SRCFILE}
59     sourceforge://mesa3d/${SRCFILE}
60     mirror://${PNAME}/${SRCFILE}
61     mirror://${PNAME}/libGLU.la
62     mirror://${PNAME}/libGL.la
63     )
64    
65     UP2DATE="updatecmd_sourceforge mesa3d MesaLib"
66    
67     src_prepare()
68     {
69     munpack ${SRCFILE} || die
70    
71     # no debug code in the drives (gentoo)
72     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/" ;'
73    
74     # get rid of glut includes
75     all-abis rm -f include/GL/glut*h || die
76     }
77    
78     src_compile()
79     {
80     # gallium is highly experimental, disabled atm!
81     mconfigure \
82     --with-driver=dri \
83     --with-dri-driverdir=/usr/'$(mlibdir)'/dri \
84     --disable-debug \
85     --disable-glut \
86     --disable-ttm-api \
87     --without-demos \
88     --enable-glx-tls \
89     --enable-asm \
90     --disable-xcb \
91     --enable-glw \
92     --disable-gallium \
93     --disable-egl \
94     || die
95    
96     # only build software renderer on multilib arches
97     if [[ ${ARCH} = x86_64 ]]
98     then
99     only-m32 "echo 'DRI_DIRS =' >> configs/autoconf" || die
100     fi
101    
102     mmake || die
103     }
104    
105     mcore_generic_src_install()
106     {
107     # needed directories
108     minstalldir /etc/env.d || die
109    
110     mmake DESTDIR=${BINDIR} install || die
111    
112     # missing gl headers
113     minstallfile src/glw/GLwDrawA.h /usr/include/GL || die
114    
115     # remove private headers
116     rm -f ${BINDIR}/usr/include/GL/GLw*P.h || die
117    
118     for abi in ${MULTILIB_ABIS}
119     do
120     [[ ${abi} = m32 ]] && ABI_LIBDIR="lib"
121     [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64"
122     cd ${SRCDIR}-${abi}
123    
124     # fix opengl-symlinks
125     # first remove invalid symlinks
126     find ${BINDIR}/usr/$(mlibdir) -name libGL\.* -type l | xargs rm -f
127     # now create required opengl-symlinks
128     mlink libGL.so.1.2 /usr/$(mlibdir)/libGL.so || die
129     mlink libGL.so.1.2 /usr/$(mlibdir)/libGL.so.1 || die
130    
131     # now setup dynamic opengl
132     minstalldir /usr/$(mlibdir)/opengl/xorg/lib || die
133     minstalldir /usr/$(mlibdir)/opengl/xorg/extensions || die
134     minstalldir /usr/$(mlibdir)/opengl/xorg/include || die
135    
136     local x
137     for x in ${BINDIR}/usr/$(mlibdir)/libGL.so* \
138     ${BINDIR}/usr/$(mlibdir)/libGL.la \
139     ${BINDIR}/usr/$(mlibdir)/libGL.a
140     do
141     if [ -f ${x} -o -L ${x} ]
142     then
143     # libGL.a cause problems with tuxracer, etc
144     mv -f ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/lib || die "${x}"
145     fi
146     done
147     for x in ${BINDIR}/usr/include/GL/{gl.h,glx.h,glext.h,glxext.h}
148     do
149     if [ -f ${x} -o -L ${x} ]
150     then
151     mv -f ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/include || die "${x}"
152     fi
153     done
154    
155     # satisfy libtool
156     minstallfile -s libGLU.la /usr/$(mlibdir) || die
157     minstallfile -s libGL.la /usr/$(mlibdir)/opengl/xorg/lib || die
158    
159     # fix libdir on 64bit arches
160     if [[ $(mlibdir) != lib ]]
161     then
162     sed -i "s:/usr/lib:/usr/$(mlibdir):g" ${BINDIR}/usr/$(mlibdir)/libGLU.la || die
163     sed -i "s:/usr/lib:/usr/$(mlibdir):g" ${BINDIR}/usr/$(mlibdir)/opengl/xorg/lib/libGL.la || die
164     fi
165    
166     # create the two-number versioned libs (.so.#.#), since only .so.# and
167     # .so.#.#.# were made
168     local x
169     for x in ${BINDIR}/usr/$(mlibdir)/libGLU.so.*.*.* \
170     ${BINDIR}/usr/$(mlibdir)/libGLw.so.*.*.*
171     do
172     local lib_name_dot3="$(basename $(ls ${x}))"
173     local lib_name_dot2="${lib_name_dot3%.*}"
174     local lib_name_dot1="${lib_name_dot2%.*}"
175     local lib_name_dot0="${lib_name_dot1%.*}"
176     mlink ${lib_name_dot3} /usr/$(mlibdir)/${lib_name_dot2} || die "${x}"
177     mlink ${lib_name_dot3} /usr/$(mlibdir)/${lib_name_dot1} || die "${x}"
178     mlink ${lib_name_dot3} /usr/$(mlibdir)/${lib_name_dot0} || die "${x}"
179     done
180    
181     # export LIBGL_DRIVER_PATH location.
182     # we are using '/usr/lib/dri' as hardcoded location.
183     # but nvidia and ati are using '/usr/$(mlibdir)/xorg/modules/dri'
184     # LIBGL_DRIVER_PATH overwrites the hardcoded location and
185     # if nvidia or ati driver are installed
186     # the dri modules will never be found by libGL
187     # use "LIBGL_DEBUG=verbose glxinfo" to check this issue
188     echo "LIBGL_DRIVERS_PATH=/usr/$(mlibdir)/dri" > ${BINDIR}/etc/env.d/09mesa-${abi} || die
189     done
190     }