Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 148572 | Differences between
and this patch

Collapse All | Expand All

(-)x11-drm-20060608.ebuild (-44 / +101 lines)
Lines 1-6 Link Here
1
# Copyright 1999-2006 Gentoo Foundation
1
# Copyright 1999-2006 Gentoo Foundation
2
# Distributed under the terms of the GNU General Public License v2
2
# Distributed under the terms of the GNU General Public License v2
3
# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/x11-drm-20060608.ebuild,v 1.8 2006/09/18 19:15:10 plasmaroo Exp $
3
# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/x11-drm-20060608.ebuild,v 1.6 2006/09/10 17:59:56 ticho Exp $
4
4
5
inherit eutils x11 linux-mod
5
inherit eutils x11 linux-mod
6
6
Lines 34-52 Link Here
34
34
35
SLOT="0"
35
SLOT="0"
36
LICENSE="X11"
36
LICENSE="X11"
37
KEYWORDS="~alpha ~amd64 ia64 ppc x86"
37
KEYWORDS="x86 ~alpha ~ia64 ~ppc ~amd64 ~x86-fbsd"
38
38
39
DEPEND=">=sys-devel/automake-1.7
39
DEPEND=">=sys-devel/automake-1.7
40
	>=sys-devel/autoconf-2.59
40
	>=sys-devel/autoconf-2.59
41
	>=sys-devel/libtool-1.5.14
41
	>=sys-devel/libtool-1.5.14
42
	>=sys-devel/m4-1.4
42
	>=sys-devel/m4-1.4
43
	virtual/linux-sources
43
	kernel_linux? ( virtual/linux-sources )
44
	kernel_FreeBSD? ( sys-freebsd/freebsd-sources
45
			sys-freebsd/freebsd-mk-defs )
44
	>=sys-apps/portage-2.0.49-r13"
46
	>=sys-apps/portage-2.0.49-r13"
45
47
46
pkg_setup() {
48
pkg_setup() {
47
	get_version
49
	# what's 'nicer' here? big if or all these 'use kernel_linux' ?
50
	use kernel_linux && get_version
48
51
49
	if kernel_is 2 6
52
	if use kernel_linux && kernel_is 2 6
50
	then
53
	then
51
		if linux_chkconfig_builtin "DRM"
54
		if linux_chkconfig_builtin "DRM"
52
		then
55
		then
Lines 59-71 Link Here
59
			einfo "work, so you might want to double-check that setting. (CONFIG_AGP)"
62
			einfo "work, so you might want to double-check that setting. (CONFIG_AGP)"
60
			echo
63
			echo
61
		fi
64
		fi
62
	elif kernel_is 2 4
65
	elif use kernel_linux && kernel_is 2 4
63
	then
66
	then
64
		if ! linux_chkconfig_present "DRM"
67
		if ! linux_chkconfig_present "DRM"
65
		then
68
		then
66
			die "Please enable DRM support in your kernel configuration. (CONFIG_DRM = y or m)."
69
			die "Please enable DRM support in your kernel configuration. (CONFIG_DRM = y or m)."
67
			echo
70
			echo
68
		fi
71
		fi
72
	elif use kernel_FreeBSD
73
	then
74
		K_RV=${CHOST/*-freebsd/}
69
	fi
75
	fi
70
76
71
	# Set video cards to build for.
77
	# Set video cards to build for.
Lines 95-100 Link Here
95
101
96
	cp ${S}/tests/*.c ${SRC_BUILD}
102
	cp ${S}/tests/*.c ${SRC_BUILD}
97
103
104
	# Do FreeBSD stuff.
105
	if use kernel_FreeBSD
106
	then
107
		# Link in freebsd kernel.
108
		ln -s "/usr/src/sys-${K_RV}" "${WORKDIR}/sys"
109
		# SUBDIR variable gets to all Makefiles, we need it only in the main one.
110
		SUBDIRS=${VIDCARDS//.ko}
111
		sed -ie "s:SUBDIR\ =.*:SUBDIR\ =\ drm ${SUBDIRS}:" ${SRC_BUILD}/Makefile
112
	fi
113
114
	# if we don't build drmstat/dristat on g/fbsd these may go away...
115
	# but, this step goes fine on g/fbsd.
98
	cd ${S}
116
	cd ${S}
99
	WANT_AUTOCONF="2.5" WANT_AUTOMAKE="1.7" autoreconf -v --install
117
	WANT_AUTOCONF="2.5" WANT_AUTOMAKE="1.7" autoreconf -v --install
100
}
118
}
Lines 102-118 Link Here
102
src_compile() {
120
src_compile() {
103
	einfo "Building DRM in ${SRC_BUILD}..."
121
	einfo "Building DRM in ${SRC_BUILD}..."
104
	cd ${SRC_BUILD}
122
	cd ${SRC_BUILD}
105
106
	# This now uses an M= build system. Makefile does most of the work.
123
	# This now uses an M= build system. Makefile does most of the work.
107
	unset ARCH
124
	if use kernel_linux
108
	make M="${SRC_BUILD}" \
125
	then
109
		LINUXDIR="${KERNEL_DIR}" \
126
		unset ARCH
110
		DRM_MODULES="${VIDCARDS}" \
127
		make M="${SRC_BUILD}" \
111
		modules || die_error
128
			LINUXDIR="${KERNEL_DIR}" \
129
			DRM_MODULES="${VIDCARDS}" \
130
			modules || die_error
131
	elif use kernel_FreeBSD
132
	then
133
		# Environment CFLAGS overwrite kernel CFLAGS which is bad.
134
		local svcflags=${CFLAGS}; local svldflags=${LDFLAGS}
135
		unset CFLAGS; unset LDFLAGS
136
		make NO_WERROR= SYSDIR="${WORKDIR}/sys" \
137
			KMODDIR="/boot/modules" || die "pmake failed."
138
		export CFLAGS=${svcflags}; export LDFLAGS=${svldflags}
139
	fi
112
140
113
	# Building the programs. These are useful for developers and getting info from DRI and DRM.
141
	# Building the programs. These are useful for developers and getting info from DRI and DRM.
114
	#
142
	#
115
	# libdrm objects are needed for drmstat.
143
	# libdrm objects are needed for drmstat.
144
	# these also go well on g/fbsd.
116
	cd ${S}
145
	cd ${S}
117
	econf || die "libdrm configure failed."
146
	econf || die "libdrm configure failed."
118
	emake || die "libdrm build failed."
147
	emake || die "libdrm build failed."
Lines 121-158 Link Here
121
	then
150
	then
122
		echo "Please disable in-kernel DRM support to use this package."
151
		echo "Please disable in-kernel DRM support to use this package."
123
	fi
152
	fi
124
153
	
125
	cd ${SRC_BUILD}
126
	# LINUXDIR is needed to allow Makefiles to find kernel release.
154
	# LINUXDIR is needed to allow Makefiles to find kernel release.
127
	make LINUXDIR="${KERNEL_DIR}" dristat || die "Building dristat failed."
155
	cd ${SRC_BUILD}
128
	make LINUXDIR="${KERNEL_DIR}" drmstat || die "Building drmstat failed."
156
	if use kernel_linux
157
	then
158
		make LINUXDIR="${KERNEL_DIR}" dristat || die "Building dristat failed."
159
		make LINUXDIR="${KERNEL_DIR}" drmstat || die "Building drmstat failed."
160
	elif use kernel_FreeBSD
161
	then
162
		echo "Do nothing. for now"
163
		# So far i can't make these two compile.
164
		# neither on this way:
165
		#cd "${S}/tests"
166
		#gmake dristat || die "Building dristat failed."
167
		#gmake drmstat || die "Building drmstat failed."
168
		# And neither the 'linux' way.
169
	fi
129
}
170
}
130
171
131
src_install() {
172
src_install() {
132
	einfo "Installing DRM..."
173
	einfo "Installing DRM..."
133
	cd ${SRC_BUILD}
174
	cd ${SRC_BUILD}
134
175
135
	unset ARCH
176
	if use kernel_linux
136
	kernel_is 2 6 && DRM_KMOD="drm.${KV_OBJ}"
177
	then
137
	make KV="${KV_FULL}" \
178
		unset ARCH
138
		LINUXDIR="${KERNEL_DIR}" \
179
		kernel_is 2 6 && DRM_KMOD="drm.${KV_OBJ}"
139
		DESTDIR="${D}" \
180
		make KV="${KV_FULL}" \
140
		RUNNING_REL="${KV_FULL}" \
181
			LINUXDIR="${KERNEL_DIR}" \
141
		MODULE_LIST="${VIDCARDS} ${DRM_KMOD}" \
182
			DESTDIR="${D}" \
142
		install || die "Install failed."
183
			RUNNING_REL="${KV_FULL}" \
143
184
			MODULE_LIST="${VIDCARDS} ${DRM_KMOD}" \
144
	dodoc README.drm
185
			install || die "Install failed."
145
186
	elif use kernel_FreeBSD
146
	dobin dristat
187
	then
147
	dobin drmstat
188
		dodir "/boot/modules"
148
189
		make install NO_WERROR= DESTDIR="${D}" KMODDIR="/boot/modules"
149
	# Strip binaries, leaving /lib/modules untouched (bug #24415)
190
	fi
150
	strip_bins \/lib\/modules
191
151
192
	dodoc "${S}/linux-core/README.drm"
152
	# Yoinked from the sys-apps/touchpad ebuild. Thanks to whoever made this.
193
153
	keepdir /etc/modules.d
194
	if use kernel_linux
154
	sed 's:%PN%:'${PN}':g' ${FILESDIR}/modules.d-${PN} > ${D}/etc/modules.d/${PN}
195
	then
155
	sed -i 's:%KV%:'${KV_FULL}':g' ${D}/etc/modules.d/${PN}
196
		dobin dristat
197
		dobin drmstat
198
199
		# Strip binaries, leaving /lib/modules untouched (bug #24415)
200
		strip_bins \/lib\/modules
201
202
		# Yoinked from the sys-apps/touchpad ebuild. Thanks to whoever made this.
203
		keepdir /etc/modules.d
204
		sed 's:%PN%:'${PN}':g' ${FILESDIR}/modules.d-${PN} > ${D}/etc/modules.d/${PN}
205
		sed -i 's:%KV%:'${KV_FULL}':g' ${D}/etc/modules.d/${PN}
206
	fi
156
}
207
}
157
208
158
pkg_postinst() {
209
pkg_postinst() {
Lines 170-182 Link Here
170
		einfo "http://dri.freedesktop.org/wiki/ATIMach64."
221
		einfo "http://dri.freedesktop.org/wiki/ATIMach64."
171
	fi
222
	fi
172
223
173
	linux-mod_pkg_postinst
224
	use kernel_linux && linux-mod_pkg_postinst
174
}
225
}
175
226
176
# Functions used above are defined below:
227
# Functions used above are defined below:
177
228
178
set_vidcards() {
229
set_vidcards() {
179
	set_kvobj
230
	use kernel_linux && set_kvobj
231
	use kernel_FreeBSD && KV_OBJ="ko"
180
232
181
	POSSIBLE_VIDCARDS="mga tdfx r128 radeon i810 i830 i915 mach64 nv savage
233
	POSSIBLE_VIDCARDS="mga tdfx r128 radeon i810 i830 i915 mach64 nv savage
182
		sis via"
234
		sis via"
Lines 219-227 Link Here
219
	# Handle exclusions based on the following...
271
	# Handle exclusions based on the following...
220
	#     All trees (0**), Standard only (1**), Others (none right now)
272
	#     All trees (0**), Standard only (1**), Others (none right now)
221
	#     2.4 vs. 2.6 kernels
273
	#     2.4 vs. 2.6 kernels
222
274
	if use kernel_linux
223
	kernel_is 2 4 && mv -f ${PATCHDIR}/*kernel-2.6* ${EXCLUDED}
275
	then
224
	kernel_is 2 6 && mv -f ${PATCHDIR}/*kernel-2.4* ${EXCLUDED}
276
	    kernel_is 2 4 && mv -f ${PATCHDIR}/*kernel-2.6* ${EXCLUDED}
277
	    kernel_is 2 6 && mv -f ${PATCHDIR}/*kernel-2.4* ${EXCLUDED}
278
	fi
225
279
226
	# There is only one tree being maintained now. No numeric exclusions need
280
	# There is only one tree being maintained now. No numeric exclusions need
227
	# to be done based on DRM tree.
281
	# to be done based on DRM tree.
Lines 236-246 Link Here
236
}
290
}
237
291
238
get_drm_build_dir() {
292
get_drm_build_dir() {
239
	if kernel_is 2 4
293
	if use kernel_linux && kernel_is 2 4
240
	then
294
	then
241
		SRC_BUILD="${S}/linux"
295
		SRC_BUILD="${S}/linux"
242
	elif kernel_is 2 6
296
	elif use kernel_linux && kernel_is 2 6
243
	then
297
	then
244
		SRC_BUILD="${S}/linux-core"
298
		SRC_BUILD="${S}/linux-core"
299
	elif use kernel_FreeBSD
300
	then
301
		SRC_BUILD="${S}/bsd-core"
245
	fi
302
	fi
246
}
303
}

Return to bug 148572