summaryrefslogtreecommitdiff
blob: 51fb298c195e39a6becc813c8dad3985f73bfa6f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# Copyright 1999-2000 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License, v2 or later
# Author Achim Gottinger <achim@gentoo.org>
# $Header: /var/cvsroot/gentoo-x86/media-libs/mesa/mesa-3.4.2.ebuild,v 1.3 2001/10/27 14:18:30 agriffis Exp $

P=Mesa-${PV}
S=${WORKDIR}/${P}
DESCRIPTION="OpenGL like graphic library for Linux"
SRC_URI="http://download.sourceforge.net/mesa3d/MesaLib-${PV}.tar.bz2
         http://download.sourceforge.net/mesa3d/MesaDemos-${PV}.tar.bz2"
HOMEPAGE="http://mesa3d.sourceforge.net/"

DEPEND="virtual/glibc
        X? ( virtual/x11 )
        ggi? ( >=media-libs/libggi-2.0_beta3 )
        svga? ( >=media-libs/svgalib-1.4.2-r1 )"

if [ "`use X`" ]
then
	PROVIDE="virtual/opengl virtual/glu virtual/glut"
else
	PROVIDE="virtual/opengl"
fi

src_compile() {
	local myconf

	if [ "`use mmx`" ]
	then
		myconf="--enable-mmx"
	else
		myconf="--disable-mmx"
	fi

	if [ "`use 3dnow`" ]
	then
		myconf="${myconf} --enable-3dnow"
	else
		myconf="${myconf} --disable-3dnow"
	fi

	if [ "`use sse`" ]
	then
		myconf="${myconf} --enable-sse"
	else
		myconf="${myconf} --disable-sse"
	fi

	if [ "`use X`" ]
	then
		myconf="${myconf} --with-x --without-glut"
		# --without-glut means that mesa is forced to use and install
		# his own version of glut.
	else
		myconf="${myconf} --without-x"
		rm -rf src-glut
	fi

	if [ -z "`use ggi`" ] || [ -z "`use fbcon`" ]
	then
		myconf="${myconf} --disable-ggi-fbdev --without-ggi"
	fi

	if [ -z "`use svga`" ]
	then
		myconf="${myconf} --without-svga"
	fi

	cp configure configure.orig
	sed -e "s:^ggi_confdir.*:ggi_confdir=/etc/ggi:" \
		-e "s:^ggi_libdir.*:ggi_libdir=\$prefix/lib:" \
		configure.orig > configure

	./configure --prefix=/usr --sysconfdir=/etc/mesa --host=${CHOST} $myconf \
		|| die

	if [ "`use ggi`" ] && [ "`use fbcon`" ]
	then
		cd ${S}/src/GGI
		cp Makefile Makefile.orig
		sed -e "s:^ggimesaconfdatadir.*:ggimesaconfdatadir = \${ggi_confdir}:" \
			Makefile.orig > Makefile

		cd ${S}/src/GGI/default
		cp stubs.c stubs.c.orig
		sed -e "s:Texture.Enabled:Texture.ReallyEnabled:" stubs.c.orig > stubs.c

		cd ${S}/src/GGI/include/ggi/mesa
		cp display_fbdev.h display_fbdev.h.orig
		sed -e "s:fbdev_hook:ggi_fbdev_priv:" display_fbdev.h.orig > display_fbdev.h

		cd ${S}
		mkdir gg
		ln -s /usr/lib/libgg*.so .
	fi

	make || die
	# Don't worry about errors or failures in making the demos
	cd ${S}/demos; for f in *.c; do make "${f%.c}"; done
	cd ${S}/xdemos; for f in *.c; do make "${f%.c}"; done

	if [ "`use ggi`" ]
	then
		cd ${S}/ggi/ggiglut
		make libglut_la_LIBADD="-lggi -lgg -L${S}/src/.libs -lGL" \
			|| die
	fi
}

src_install () {
	if [ "`use ggi`" ]
	then
	  cd ggi/ggiglut
	  make DESTDIR=${D} install || die
	  cd ${D}/usr/lib
	  cp libglut.la libglut.orig
	  sed -e "s:-L${S}/src/.libs::g" libglut.orig > libglut.la
	  rm libglut.orig
	fi
	cd ${S}
	make DESTDIR=${D} install || die
	cd ${D}/usr/lib
	if [ "$PN" = "mesa-glu" ]
	then
		rm -f libGL.*
		rm -f ../include/GL/gl.h
		rm -f ../include/GL/glx.h
		rm -f ../include/GL/osmesa.h
	else
		ln -s libGL.so.2.1.030402 libMesaGL.so.3
	fi
	ln -s libGLU.so.1.1.030402 libMesaGLU.so.3

	cd ${S}
	dodoc docs/*

	# Install any demos that successfully built
	for d in demos xdemos; do
		exeinto /usr/lib/mesa-$PV/$d
		cd ${S}/$d
		for f in *.c; do [ -f "${f%.c}" ] && doexe "${f%.c}"; done
	done
}