Magellan Linux

Contents of /smage/trunk/core/mesa/mesa-7.10-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1619 - (show annotations) (download)
Wed Mar 9 18:09:00 2011 UTC (13 years, 1 month ago) by niro
File size: 10279 byte(s)
-split package: put every dri driver to a sub-package
1 # $Id$
2
3 PNAME="mesa"
4 PVER="7.10"
5 PBUILD="r2"
6
7 PCATEGORIE="media-libs"
8 STATE="unstable"
9
10 SPLIT_PACKAGES="mesa
11 mesa-dev
12 mesa-dri-swrast
13 mesa-dri-i810
14 mesa-dri-i915
15 mesa-dri-i965
16 mesa-dri-mach64
17 mesa-dri-mga
18 mesa-dri-r128
19 mesa-dri-r200
20 mesa-dri-r300
21 mesa-dri-r600
22 mesa-dri-radeon
23 mesa-dri-savage
24 mesa-dri-sis
25 mesa-dri-tdfx
26 mesa-dri-unichrome"
27
28 HOMEPAGE="http://mesa3d.sourceforge.net/"
29
30 COMMON_DEPEND=">= dev-libs/expat-2
31 >= x11-libs/libX11-1
32 >= x11-libs/libXext-1
33 >= x11-libs/libXxf86vm-1
34 >= x11-libs/libXi-1
35 >= x11-libs/libXmu-1
36 >= x11-libs/libdrm-2.4
37 >= x11-libs/libICE-1
38 >= x11-libs/libXfixes-4
39 >= x11-libs/libXdamage-1
40 >= sys-libs/talloc-2"
41
42 SDEPEND="${COMMON_DEPEND}
43 >= dev-util/pkgconfig-0.25
44 >= x11-misc/makedepend-1
45 >= x11-proto/xf86vidmodeproto-2.3
46 >= x11-libs/libXxf86vm-1.1
47 >= x11-proto/glproto-1.4.9
48 >= x11-proto/inputproto-1
49 >= x11-proto/xextproto-7
50 >= x11-proto/xf86driproto-2
51 >= x11-proto/dri2proto-2.0
52 >= x11-proto/xproto-7
53 >= x11-proto/fixesproto-4
54 >= x11-proto/damageproto-1
55 >= dev-lang/python-2.7
56 >= dev-libs/libxml2-2.7"
57
58 # must be set before the include of multilib!
59 EMUL_LINUX_32=true
60 sminclude xorg mtools multilib cleanutils mcore
61
62 # must be set *after* the include of xorg!
63 SRCFILE="MesaLib-${PVER/_/-}.tar.gz"
64 SRCDIR="${BUILDDIR}/Mesa-${PVER/_/-}"
65
66 SRC_URI=(
67 ftp://ftp.freedesktop.org/pub/mesa/${PVER}/${SRCFILE}
68 sourceforge://mesa3d/${SRCFILE}
69 mirror://${PNAME}/${SRCFILE}
70 mirror://${PNAME}/libGLU.la
71 mirror://${PNAME}/libGL.la
72 )
73
74 UP2DATE="updatecmd_sourceforge mesa3d MesaLib"
75
76 split_info_mesa()
77 {
78 DESCRIPTION="Mesa3D OpenGL graphics library."
79 DEPEND="${COMMON_DEPEND}"
80 PROVIDE="virtual/opengl"
81 }
82
83 split_info_mesa-dev()
84 {
85 DESCRIPTION="Development files for ${PCATEGORIE}/mesa-${PVER}."
86 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
87 }
88
89 split_info_mesa-dri-swrast()
90 {
91 DESCRIPTION="Mesa Software Raster DRI driver."
92 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
93 }
94
95 split_info_mesa-dri-i810()
96 {
97 DESCRIPTION="Mesa Intel i810 DRI driver."
98 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
99 }
100
101 split_info_mesa-dri-i915()
102 {
103 DESCRIPTION="Mesa Intel i915 DRI driver."
104 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
105 }
106
107 split_info_mesa-dri-i965()
108 {
109 DESCRIPTION="Mesa Intel i965 DRI driver."
110 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
111 }
112
113 split_info_mesa-dri-mach64()
114 {
115 DESCRIPTION="Mesa ATI mach64 DRI driver."
116 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
117 }
118
119 split_info_mesa-dri-mga()
120 {
121 DESCRIPTION="Mesa Matrox mga DRI driver."
122 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
123 }
124
125 split_info_mesa-dri-r128()
126 {
127 DESCRIPTION="Mesa ATI Rage128 DRI driver."
128 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
129 }
130
131 split_info_mesa-dri-r200()
132 {
133 DESCRIPTION="Mesa ATI Radeon r200 DRI driver."
134 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
135 }
136
137 split_info_mesa-dri-r300()
138 {
139 DESCRIPTION="Mesa ATI Radeon r300 DRI driver."
140 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
141 }
142
143 split_info_mesa-dri-r600()
144 {
145 DESCRIPTION="Mesa ATI Radeon r600 DRI driver."
146 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
147 }
148
149 split_info_mesa-dri-radeon()
150 {
151 DESCRIPTION="Mesa ATI Radeon generic DRI driver."
152 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
153 }
154
155 split_info_mesa-dri-savage()
156 {
157 DESCRIPTION="Mesa S3 Savage DRI driver."
158 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
159 }
160
161 split_info_mesa-dri-sis()
162 {
163 DESCRIPTION="Mesa SIS generic DRI driver."
164 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
165 }
166
167 split_info_mesa-dri-tdfx()
168 {
169 DESCRIPTION="Mesa 3DFX Voodoo DRI driver."
170 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
171 }
172
173 split_info_mesa-dri-unichrome()
174 {
175 DESCRIPTION="Mesa VIA Chrome DRI driver."
176 DEPEND="== ${PCATEGORIE}/mesa-${PVER}"
177 }
178
179 src_prepare()
180 {
181 munpack ${SRCFILE} || die
182
183 # no debug code in the drives (gentoo)
184 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/" ;'
185
186 # get rid of glut includes
187 all-abis rm -f include/GL/glut*h || die
188 }
189
190 src_compile()
191 {
192 # gallium is highly experimental, disabled atm!
193 mconfigure \
194 --with-driver=dri \
195 --with-dri-driverdir=/usr/'$(mlibdir)'/dri \
196 --disable-debug \
197 --disable-glut \
198 --disable-ttm-api \
199 --without-demos \
200 --enable-glx-tls \
201 --enable-asm \
202 --disable-xcb \
203 --enable-glw \
204 --disable-gallium \
205 --disable-egl \
206 || die
207
208 # only build software renderer on multilib arches
209 if [[ ${ARCH} = x86_64 ]]
210 then
211 only-m32 "echo 'DRI_DIRS =' >> configs/autoconf" || die
212 fi
213
214 mmake || die
215 }
216
217 src_install_mesa()
218 {
219 # needed directories
220 minstalldir /etc/env.d || die
221
222 mmake DESTDIR=${BINDIR} install || die
223
224 for abi in ${MULTILIB_ABIS}
225 do
226 [[ ${abi} = m32 ]] && ABI_LIBDIR="lib"
227 [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64"
228 cd ${SRCDIR}-${abi}
229
230 # fix opengl-symlinks
231 # first remove invalid symlinks
232 find ${BINDIR}/usr/$(mlibdir) -name libGL\.* -type l | xargs rm -f
233 # now create required opengl-symlinks
234 mlink libGL.so.1.2 /usr/$(mlibdir)/libGL.so || die
235 mlink libGL.so.1.2 /usr/$(mlibdir)/libGL.so.1 || die
236
237 # now setup dynamic opengl
238 minstalldir /usr/$(mlibdir)/opengl/xorg/lib || die
239 minstalldir /usr/$(mlibdir)/opengl/xorg/extensions || die
240 minstalldir /usr/$(mlibdir)/opengl/xorg/include || die
241
242 local x
243 for x in ${BINDIR}/usr/$(mlibdir)/libGL.so*
244 do
245 if [ -f ${x} -o -L ${x} ]
246 then
247 # libGL.a cause problems with tuxracer, etc
248 mv -f ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/lib || die "${x}"
249 fi
250 done
251
252 # create the two-number versioned libs (.so.#.#), since only .so.# and
253 # .so.#.#.# were made
254 local x
255 for x in ${BINDIR}/usr/$(mlibdir)/libGLU.so.*.*.* \
256 ${BINDIR}/usr/$(mlibdir)/libGLw.so.*.*.*
257 do
258 local lib_name_dot3="$(basename $(ls ${x}))"
259 local lib_name_dot2="${lib_name_dot3%.*}"
260 local lib_name_dot1="${lib_name_dot2%.*}"
261 local lib_name_dot0="${lib_name_dot1%.*}"
262 mlink ${lib_name_dot3} /usr/$(mlibdir)/${lib_name_dot2} || die "${x}"
263 mlink ${lib_name_dot3} /usr/$(mlibdir)/${lib_name_dot1} || die "${x}"
264 mlink ${lib_name_dot3} /usr/$(mlibdir)/${lib_name_dot0} || die "${x}"
265 done
266
267 # export LIBGL_DRIVER_PATH location.
268 # we are using '/usr/lib/dri' as hardcoded location.
269 # but nvidia and ati are using '/usr/$(mlibdir)/xorg/modules/dri'
270 # LIBGL_DRIVER_PATH overwrites the hardcoded location and
271 # if nvidia or ati driver are installed
272 # the dri modules will never be found by libGL
273 # use "LIBGL_DEBUG=verbose glxinfo" to check this issue
274 echo "LIBGL_DRIVERS_PATH=/usr/$(mlibdir)/dri" > ${BINDIR}/etc/env.d/09mesa-${abi} || die
275 done
276
277 # cleanup
278 zapmost ${BINDIR} etc/env.d usr/$(mlibdir)/*.so usr/$(mlibdir)/*.so.* \
279 usr/$(mlibdir)/opengl/xorg/lib/*.so usr/$(mlibdir)/opengl/xorg/lib/*.so.* \
280 $(if [[ $(mlibdir) != lib ]];then echo "usr/lib/*.so usr/lib/*.so.* usr/lib/opengl/xorg/lib/*.so usr/lib/opengl/xorg/lib/*.so.*"; fi) \
281 || die
282 }
283
284 src_install_mesa-dev()
285 {
286 mmake DESTDIR=${BINDIR} install || die
287
288 # missing gl headers
289 minstallfile src/glw/GLwDrawA.h /usr/include/GL || die
290
291 # remove private headers
292 rm -f ${BINDIR}/usr/include/GL/GLw*P.h || die
293
294 for abi in ${MULTILIB_ABIS}
295 do
296 [[ ${abi} = m32 ]] && ABI_LIBDIR="lib"
297 [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64"
298 cd ${SRCDIR}-${abi}
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.la \
307 ${BINDIR}/usr/$(mlibdir)/libGL.a
308 do
309 if [ -f ${x} -o -L ${x} ]
310 then
311 # libGL.a cause problems with tuxracer, etc
312 mv -f ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/lib || die "${x}"
313 fi
314 done
315 for x in ${BINDIR}/usr/include/GL/{gl.h,glx.h,glext.h,glxext.h}
316 do
317 if [ -f ${x} -o -L ${x} ]
318 then
319 mv -f ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/include || die "${x}"
320 fi
321 done
322
323 # satisfy libtool
324 minstallfile -s libGLU.la /usr/$(mlibdir) || die
325 minstallfile -s libGL.la /usr/$(mlibdir)/opengl/xorg/lib || die
326
327 # fix libdir on 64bit arches
328 if [[ $(mlibdir) != lib ]]
329 then
330 sed -i "s:/usr/lib:/usr/$(mlibdir):g" ${BINDIR}/usr/$(mlibdir)/libGLU.la || die
331 sed -i "s:/usr/lib:/usr/$(mlibdir):g" ${BINDIR}/usr/$(mlibdir)/opengl/xorg/lib/libGL.la || die
332 fi
333 done
334
335 # cleanup
336 rm -r ${BINDIR}/usr/$(mlibdir)/*.so || die
337 rm -r ${BINDIR}/usr/$(mlibdir)/*.so.* || die
338 #rm -r ${BINDIR}/usr/$(mlibdir)/opengl/xorg/lib/*.so || die
339 #rm -r ${BINDIR}/usr/$(mlibdir)/opengl/xorg/lib/*.so.* || die
340 rm -r ${BINDIR}/usr/$(mlibdir)/dri || die
341 if [[ $(mlibdir) != lib ]]
342 then
343 rm -r ${BINDIR}/usr/lib/*.so || die
344 rm -r ${BINDIR}/usr/lib/*.so.* || die
345 #rm -r ${BINDIR}/usr/lib/opengl/xorg/lib/*.so || die
346 #rm -r ${BINDIR}/usr/lib/opengl/xorg/lib/*.so.* || die
347 rm -r ${BINDIR}/usr/lib/dri || die
348 fi
349 }
350
351 src_install_mesa-dri-swrast()
352 {
353 mmake -C src/mesa/drivers/dri/swrast DESTDIR=${BINDIR} install || die
354 }
355
356 src_install_mesa-dri-i810()
357 {
358 mmake -C src/mesa/drivers/dri/i810 DESTDIR=${BINDIR} install || die
359 }
360
361 src_install_mesa-dri-i915()
362 {
363 mmake -C src/mesa/drivers/dri/i915 DESTDIR=${BINDIR} install || die
364 }
365
366 src_install_mesa-dri-i965()
367 {
368 mmake -C src/mesa/drivers/dri/i965 DESTDIR=${BINDIR} install || die
369 }
370
371 src_install_mesa-dri-mach64()
372 {
373 mmake -C src/mesa/drivers/dri/mach64 DESTDIR=${BINDIR} install || die
374 }
375 src_install_mesa-dri-mga()
376 {
377 mmake -C src/mesa/drivers/dri/mga DESTDIR=${BINDIR} install || die
378 }
379
380 src_install_mesa-dri-r128()
381 {
382 mmake -C src/mesa/drivers/dri/r128 DESTDIR=${BINDIR} install || die
383 }
384
385 src_install_mesa-dri-r200()
386 {
387 mmake -C src/mesa/drivers/dri/r200 DESTDIR=${BINDIR} install || die
388 }
389
390 src_install_mesa-dri-r300()
391 {
392 mmake -C src/mesa/drivers/dri/r300 DESTDIR=${BINDIR} install || die
393 }
394
395 src_install_mesa-dri-r600()
396 {
397 mmake -C src/mesa/drivers/dri/r600 DESTDIR=${BINDIR} install || die
398 }
399
400 src_install_mesa-dri-radeon()
401 {
402 mmake -C src/mesa/drivers/dri/radeon DESTDIR=${BINDIR} install || die
403 }
404
405 src_install_mesa-dri-savage()
406 {
407 mmake -C src/mesa/drivers/dri/savage DESTDIR=${BINDIR} install || die
408 }
409
410 src_install_mesa-dri-sis()
411 {
412 mmake -C src/mesa/drivers/dri/sis DESTDIR=${BINDIR} install || die
413 }
414
415 src_install_mesa-dri-tdfx()
416 {
417 mmake -C src/mesa/drivers/dri/tdfx DESTDIR=${BINDIR} install || die
418 }
419
420 src_install_mesa-dri-unichrome()
421 {
422 mmake -C src/mesa/drivers/dri/unichrome DESTDIR=${BINDIR} install || die
423 }