summaryrefslogtreecommitdiff
blob: 438a0b1cbd895beccd616938160151e8469e965f (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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-base/xfree-drm/xfree-drm-4.3.0-r6.ebuild,v 1.3 2003/07/22 16:48:30 spyderous Exp $

# Small note:  we should prob consider using a DRM only tarball, as it will ease
#              some of the overhead on older systems, and will enable us to
#              update DRM if there are fixes not already in XFree86 tarballs ...

# Removing USE as soon as VIDEO_CARDS shows up in make.conf
IUSE="3dfx gamma i8x0 matrox rage128 radeon sis"

# VIDEO_CARDS="3dfx gamma i810 i830 matrox rage128 radeon sis"

inherit eutils xfree

# Make sure Portage does _NOT_ strip symbols.  We will do it later and make sure
# that only we only strip stuff that are safe to strip ...
DEBUG="yes"
RESTRICT="nostrip"

SNAPSHOT="20030714"
PATCHVER="0.1"

S="${WORKDIR}/drm"
DESCRIPTION="Xfree86 Kernel DRM modules"
HOMEPAGE="http://www.xfree.org"
SRC_URI="mirror://gentoo/linux-drm-${PV}-kernelsource-${SNAPSHOT}.tar.gz
	mirror://gentoo/${PF}-gentoo-${PATCHVER}.tar.bz2"

# These sources come from one of these places:
#
#   http://www.xfree86.org/~alanh/ -- DRM snapshots, outdated 
#   http://people.debian.org/~daenzer/ -- full tree, often patched but
#	somewhat outdated
#   http://dri.sourceforge.net/snapshots/ -- daily CVS snapshots, lacking
#	gamma and sis
#   http://dri.sourceforge.net CVS -- full tree
#   http://cvs.sourceforge.net/cvstarballs/dri-cvsroot.tar.gz -- backup
#   rsync -avz --delete rsync://mefriss1.swan.ac.uk/dri/ -- temporary
#
# We throw all necessary files into one folder and turn that into our tarball.

SLOT="${KV}"
LICENSE="X11"
KEYWORDS="x86 ~alpha -ppc"

DEPEND=">=x11-base/xfree-${PV}
	virtual/linux-sources"

PROVIDE="virtual/drm"


VIDCARDS=""

if [ `use matrox || vcards matrox` ]
then
	VIDCARDS="${VIDCARDS} mga.o"
fi
if [ `use 3dfx || vcards 3dfx` ]
then
	VIDCARDS="${VIDCARDS} tdfx.o"
fi
if [ `use rage128 || vcards rage128` ]
then
	VIDCARDS="${VIDCARDS} r128.o"
fi
if [ `use radeon || vcards radeon` ]
then
	VIDCARDS="${VIDCARDS} radeon.o"
fi
if [ `use sis || vcards sis` ]
then
	VIDCARDS="${VIDCARDS} sis.o"
fi
if use i8x0 &>/dev/null
then
	VIDCARDS="${VIDCARDS} i810.o i830.o"
fi
if [ `use gamma || vcards gamma` ]
then
	VIDCARDS="${VIDCARDS} gamma.o"
fi

vcards i810 &>/dev/null && VIDCARDS="${VIDCARDS} i810.o"
vcards i830 &>/dev/null && VIDCARDS="${VIDCARDS} i830.o"

src_unpack() {
# Is this necessary with the fixed Makefile?
	if [ ! -f /usr/src/linux/include/config/MARKER ] ; then
		die "Please compile kernel sources."
	fi

	if [ -z "${VIDCARDS}" ] ; then
		die "Please set at least one video card in VIDEO_CARDS. USE is deprecated. Possible VIDEO_CARDS values are matrox, 3dfx, rage128, radeon, sis, i810, i830, and gamma."
	fi

	unpack ${A}
	cd ${S}

	local PATCHDIR=${WORKDIR}/patch

	epatch ${PATCHDIR}/${PF}-gentoo-Makefile-fixup.patch
	epatch ${PATCHDIR}/${PF}-dristat.patch

# Pfeifer said this patch is ok for any kernel >= 2.4 <spyderous>
#	if [ "${KV_major}" -eq 2 -a "${KV_minor}" -eq 4 ] && \
	if [ -r /usr/src/linux/mm/rmap.c ]
	then
		einfo "Detected rmap enabled kernel."
		EPATCH_SINGLE_MSG="Applying rmap patch..." \
		epatch ${PATCHDIR}/${PF}-pte_offset.diff
	fi

# Fix for 2.5 kernels
#	if [ "${KV_major}" -eq 2 -a "${KV_minor}" -eq 5 ]
#	then
#		EPATCH_SINGLE_MSG="Applying patch for kernel 2.5..." \
#		epatch ${PATCHDIR}/${PF}-drm_2.5.diff
#	fi

}

src_compile() {
	check_KV
	ln -sf Makefile.linux Makefile
	einfo "Building DRM..."
	make ${VIDCARDS} \
		TREE="/usr/src/linux/include" KV="${KV}"
	make dristat || die
}

src_install() {

	einfo "installing DRM..."
	make \
		TREE="/usr/src/linux/include" \
		KV="${KV}" \
		DESTDIR="${D}" \
		MODS="${VIDCARDS}" \
		install || die
	dodoc README*
	exeinto /usr/X11R6/bin
	doexe dristat
}

pkg_postinst() {

	if [ "${ROOT}" = "/" ]
	then
		/sbin/modules-update
	fi
	if [ -z "VIDEO_CARDS" ]
	then
		einfo "USE is deprecated. Please set your video cards using VIDEO_CARDS."
		einfo "Possible VIDEO_CARDS values are matrox, 3dfx, rage128, radeon, sis, i810, i830, and gamma."
	fi
}