add x11-drm
git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/linamh@719 6952d904-891a-0410-993b-d76249ca496b
This commit is contained in:
parent
7daf888c72
commit
ae634a9a52
243
attachment.cgi?id=179399
Normal file
243
attachment.cgi?id=179399
Normal file
@ -0,0 +1,243 @@
|
||||
From cb52f7f18f0b5934a7a68c103934d3b817738435 Mon Sep 17 00:00:00 2001
|
||||
From: root <root@ramuh.(none)>
|
||||
Date: Thu, 22 Jan 2009 19:23:40 -0500
|
||||
Subject: [PATCH] Various fixes for x11-drm, addition of x11-apps/drm-progs
|
||||
|
||||
Upstream x11-drm has moved dristat/drmstat out of the linux-core Makefile.
|
||||
This prompted the removal of the last useful bits of the Makefile patch in our
|
||||
patchball.
|
||||
|
||||
There are now no patches required to build these modules in a portage
|
||||
environment, so the patchball is empty currently. As such, the logicused to
|
||||
apply the patches has been changed. It now conditionally specifies a SRC_URI
|
||||
only if PATCHVER is non-null, and will obviously not attempt to apply patches
|
||||
if PATCHVER is null.
|
||||
|
||||
On a related note, the dristat and drmstat programs are no longer installed by
|
||||
this package. They have been added as a separate package in this commit.
|
||||
|
||||
A minor fix to the MODULESD_... variables was made. It must strip the
|
||||
.${KV_OBJ} from the module names, of course.
|
||||
|
||||
A new package, x11-apps/drm-progs, has been added. This contains the dristat
|
||||
and drmstat programs mentioned above, as well as a couple of modesetting tools.
|
||||
---
|
||||
x11-apps/drm-progs/Manifest | 2 +
|
||||
x11-apps/drm-progs/drm-progs-99999999.ebuild | 48 ++++++++++++++++++
|
||||
x11-base/x11-drm/Manifest | 3 +-
|
||||
x11-base/x11-drm/x11-drm-99999999.ebuild | 70 +++++++-------------------
|
||||
4 files changed, 69 insertions(+), 54 deletions(-)
|
||||
create mode 100644 x11-apps/drm-progs/Manifest
|
||||
create mode 100644 x11-apps/drm-progs/drm-progs-99999999.ebuild
|
||||
|
||||
diff --git a/x11-apps/drm-progs/Manifest b/x11-apps/drm-progs/Manifest
|
||||
new file mode 100644
|
||||
index 0000000..9d976da
|
||||
--- /dev/null
|
||||
+++ b/x11-apps/drm-progs/Manifest
|
||||
@@ -0,0 +1,2 @@
|
||||
+DIST drm-progs-99999999-use-system-libdrm.patch.bz2 1932 RMD160 521c875b29902cc58e0e36e539c16df7f938f6dc SHA1 b9327b1d3e657dbdb9e22378f5be92f5afc64498 SHA256 e1bb96ae5df54b39c9494af265a3a5d58f36c44b8036033344b41de8e3966dda
|
||||
+EBUILD drm-progs-99999999.ebuild 991 RMD160 9352e60b491f22c8a80fa58f510f13720115b5d9 SHA1 b8d0c70b0277b8df50a5da22dc60df644840fd9a SHA256 755456929fc86f7ac8ee52ec4991d0fbb22a22cdc67dbc645893f5b60bbddfe0
|
||||
diff --git a/x11-apps/drm-progs/drm-progs-99999999.ebuild b/x11-apps/drm-progs/drm-progs-99999999.ebuild
|
||||
new file mode 100644
|
||||
index 0000000..6ccd8bf
|
||||
--- /dev/null
|
||||
+++ b/x11-apps/drm-progs/drm-progs-99999999.ebuild
|
||||
@@ -0,0 +1,48 @@
|
||||
+# Copyright 1999-2009 Gentoo Foundation
|
||||
+# Distributed under the terms of the GNU General Public License v2
|
||||
+# $Header: $
|
||||
+
|
||||
+EGIT_REPO_URI="git://anongit.freedesktop.org/git/mesa/drm"
|
||||
+
|
||||
+inherit eutils autotools git
|
||||
+
|
||||
+DESCRIPTION="X11 DRM utilities and test programs"
|
||||
+HOMEPAGE="http://dri.freedesktop.org/wiki/"
|
||||
+SRC_URI="http://dev.gentoo.org/~battousai/distfiles/${P}-use-system-libdrm.patch.bz2"
|
||||
+
|
||||
+LICENSE="X11"
|
||||
+SLOT="0"
|
||||
+
|
||||
+# Keywords inherited from x11-drm ebuild, where these used to be.
|
||||
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~x86 ~x86-fbsd"
|
||||
+
|
||||
+IUSE=""
|
||||
+
|
||||
+DEPEND="x11-libs/libdrm"
|
||||
+RDEPEND="${DEPEND}"
|
||||
+
|
||||
+#S="${WORKDIR}/${P}"
|
||||
+
|
||||
+src_unpack() {
|
||||
+ git_src_unpack
|
||||
+
|
||||
+ cd "${WORKDIR}"
|
||||
+ unpack ${P}-use-system-libdrm.patch.bz2
|
||||
+
|
||||
+ cd "${S}"
|
||||
+ epatch "${WORKDIR}"/${P}-use-system-libdrm.patch
|
||||
+
|
||||
+ eautoreconf -v --install
|
||||
+}
|
||||
+
|
||||
+src_compile() {
|
||||
+ econf || die "econf failed"
|
||||
+
|
||||
+ cd "${S}"/tests
|
||||
+ emake || die "emake failed"
|
||||
+}
|
||||
+
|
||||
+src_install() {
|
||||
+ cd "${S}"/tests
|
||||
+ dobin dristat drmstat modeprint/modeprint modetest/modetest || die
|
||||
+}
|
||||
diff --git a/x11-base/x11-drm/Manifest b/x11-base/x11-drm/Manifest
|
||||
index 1b43af9..4e50a07 100644
|
||||
--- a/x11-base/x11-drm/Manifest
|
||||
+++ b/x11-base/x11-drm/Manifest
|
||||
@@ -1,2 +1 @@
|
||||
-DIST x11-drm-99999999-gentoo-0.2.tar.bz2 719 RMD160 e0a192afe05a3fccc48666e217bf35272085f1c8 SHA1 66ad6b116d95fee65603bbb33935639b7f664251 SHA256 3bdd5c05077b360095709c61b2346989afa1c217996f4e0854f1c8838021c8c0
|
||||
-EBUILD x11-drm-99999999.ebuild 7832 RMD160 1f522702f2e5413030529f71779c073e6bbcdcf2 SHA1 17053ea999a60c2c49e27e56631e80523b7e4be9 SHA256 d4dbfe1c2dfdb649575b27543fb1afaf03435d1c2edfa2ad3dfdee4036835090
|
||||
+EBUILD x11-drm-99999999.ebuild 6852 RMD160 8e3fbc5b82fa5dc2a5e4d532ab3a71f8ac8f847a SHA1 f281b1b8120526899fe098ae9fa3db5570078686 SHA256 4f1f65c210e0d49f9c9abe177f5204c40a03ffd4de09c1ae67ead50e4f5a3975
|
||||
diff --git a/x11-base/x11-drm/x11-drm-99999999.ebuild b/x11-base/x11-drm/x11-drm-99999999.ebuild
|
||||
index be5c1d4..9d37468 100644
|
||||
--- a/x11-base/x11-drm/x11-drm-99999999.ebuild
|
||||
+++ b/x11-base/x11-drm/x11-drm-99999999.ebuild
|
||||
@@ -1,14 +1,11 @@
|
||||
-# Copyright 1999-2007 Gentoo Foundation
|
||||
+# Copyright 1999-2009 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/x11-drm-20070314.ebuild,v 1.2 2007/03/14 18:18:53 battousai Exp $
|
||||
|
||||
-WANT_AUTOCONF="latest"
|
||||
-WANT_AUTOMAKE="1.7"
|
||||
-
|
||||
#EGIT_BRANCH="vblank-rework"
|
||||
EGIT_REPO_URI="git://anongit.freedesktop.org/git/mesa/drm"
|
||||
|
||||
-inherit eutils x11 linux-mod autotools git
|
||||
+inherit eutils x11 linux-mod git
|
||||
|
||||
IUSE_VIDEO_CARDS="
|
||||
video_cards_mach64
|
||||
@@ -28,13 +25,17 @@ IUSE="${IUSE_VIDEO_CARDS} kernel_FreeBSD kernel_linux"
|
||||
RESTRICT="strip"
|
||||
|
||||
S="${WORKDIR}/drm"
|
||||
-PATCHVER="0.2"
|
||||
+#PATCHVER="0.1"
|
||||
PATCHDIR="${WORKDIR}/patch"
|
||||
EXCLUDED="${WORKDIR}/excluded"
|
||||
|
||||
DESCRIPTION="DRM Kernel Modules for X11"
|
||||
HOMEPAGE="http://dri.sf.net"
|
||||
-SRC_URI="http://dev.gentoo.org/~dberkholz/distfiles/${P}-gentoo-${PATCHVER}.tar.bz2"
|
||||
+if [ -n "${PATCHVER}" ] ; then
|
||||
+ SRC_URI="http://dev.gentoo.org/~dberkholz/distfiles/${P}-gentoo-${PATCHVER}.tar.bz2"
|
||||
+else
|
||||
+ SRC_URI=""
|
||||
+fi
|
||||
|
||||
SLOT="0"
|
||||
LICENSE="X11"
|
||||
@@ -62,40 +63,22 @@ src_unpack() {
|
||||
git_src_unpack
|
||||
cd "${WORKDIR}"
|
||||
|
||||
- unpack ${P}-gentoo-${PATCHVER}.tar.bz2
|
||||
-
|
||||
- cd "${S}"
|
||||
-
|
||||
- patch_prepare
|
||||
-
|
||||
- # Apply patches
|
||||
- EPATCH_SUFFIX="patch" epatch ${PATCHDIR}
|
||||
+ # Apply patches if there's a patchball version number provided.
|
||||
+ if [ -n "${PATCHVER}" ]
|
||||
+ then
|
||||
+ unpack ${P}-gentoo-${PATCHVER}.tar.bz2
|
||||
+ cd "${S}"
|
||||
|
||||
- # Substitute new directory under /lib/modules/${KV_FULL}
|
||||
- cd "${SRC_BUILD}"
|
||||
- sed -i -e "s:/kernel/drivers/char/drm:/${PN}:g" Makefile
|
||||
+ patch_prepare
|
||||
|
||||
- cp "${S}"/tests/*.c ${SRC_BUILD}
|
||||
+ # Apply patches
|
||||
+ EPATCH_SUFFIX="patch" epatch ${PATCHDIR}
|
||||
+ fi
|
||||
|
||||
src_unpack_os
|
||||
-
|
||||
- cd "${S}"
|
||||
- eautoreconf -v --install
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
- unset LDFLAGS
|
||||
-
|
||||
- cd "${S}"
|
||||
- # Building the programs. These are useful for developers and getting info from DRI and DRM.
|
||||
- #
|
||||
- # libdrm objects are needed for drmstat.
|
||||
- econf \
|
||||
- --enable-static \
|
||||
- --disable-shared \
|
||||
- || die "libdrm configure failed."
|
||||
- emake || die "libdrm build failed."
|
||||
-
|
||||
einfo "Building DRM in ${SRC_BUILD}..."
|
||||
src_compile_os
|
||||
einfo "DRM build finished".
|
||||
@@ -108,9 +91,6 @@ src_install() {
|
||||
src_install_os
|
||||
|
||||
dodoc "${S}/linux-core/README.drm"
|
||||
-
|
||||
- dobin dristat
|
||||
- dobin drmstat
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
@@ -256,7 +236,7 @@ src_compile_linux() {
|
||||
MODULE_NAMES=""
|
||||
for i in drm.${KV_OBJ} ${VIDCARDS}; do
|
||||
MODULE_NAMES="${MODULE_NAMES} ${i/.${KV_OBJ}}(${PN}:${SRC_BUILD})"
|
||||
- i=$(echo ${i} | tr '[:lower:]' '[:upper:]')
|
||||
+ i=$(echo ${i/.${KV_OBJ}} | tr '[:lower:]' '[:upper:]')
|
||||
eval MODULESD_${i}_ENABLED="yes"
|
||||
done
|
||||
|
||||
@@ -271,11 +251,6 @@ src_compile_linux() {
|
||||
then
|
||||
ewarn "Please disable in-kernel DRM support to use this package."
|
||||
fi
|
||||
-
|
||||
- # LINUXDIR is needed to allow Makefiles to find kernel release.
|
||||
- cd "${SRC_BUILD}"
|
||||
- emake LINUXDIR="${KERNEL_DIR}" dristat || die "Building dristat failed."
|
||||
- emake LINUXDIR="${KERNEL_DIR}" drmstat || die "Building drmstat failed."
|
||||
}
|
||||
|
||||
src_compile_freebsd() {
|
||||
@@ -290,15 +265,6 @@ src_compile_freebsd() {
|
||||
KMODDIR="/boot/modules" \
|
||||
|| die "pmake failed."
|
||||
export CFLAGS=${svcflags}; export LDFLAGS=${svldflags}
|
||||
-
|
||||
- cd "${S}/tests"
|
||||
- # -D_POSIX_SOURCE skips the definition of several stuff we need
|
||||
- # for these two to compile
|
||||
- sed -i -e "s/-D_POSIX_SOURCE//" Makefile
|
||||
- emake dristat || die "Building dristat failed."
|
||||
- emake drmstat || die "Building drmstat failed."
|
||||
- # Move these where the linux stuff expects them
|
||||
- mv dristat drmstat ${SRC_BUILD}
|
||||
}
|
||||
|
||||
die_error() {
|
||||
--
|
||||
1.6.1
|
||||
|
@ -1,5 +1,7 @@
|
||||
AUX alsa-driver-1.0.18a-xa3530.patch 14509 RMD160 7b64bd5303d4e646957c1e49a53adfb012b3de8e SHA1 148a444560bb9473325147d44a6f813b084d4819 SHA256 6236e6e64d09284c13f16aaefb20e54e891d5b7f1d93cdb64cf5d6901f94761c
|
||||
DIST alsa-driver-1.0.18a.tar.bz2 2833780 RMD160 c06c0b68999802da80becb58ea86596f031fa406 SHA1 c8ca0d2f9093f697ee519c45c13dd7d166f6fb2a SHA256 31148e6722da1ffbbc96504a106ef2f9a06cfcc0843c3306996d4379abaff833
|
||||
DIST alsa-driver-1.0.19.tar.bz2 2896328 RMD160 cd86ccf8477f8f8be7887c332d33a4e4cfef2d9a SHA1 93305af07e9855c0c7ec01653e54c3253970da3f SHA256 10fb9b456cc38cdf6f708aac11c173d681b7edea4bb260e8d24a22f07ac76f8e
|
||||
EBUILD alsa-driver-1.0.18a.ebuild 7102 RMD160 c98c0db344be82006c042f6712509353330c0c4b SHA1 0c7e87d6d5e866799491cfcccb942c7fc4abc4ce SHA256 b6794884f489c519899effe18f359d3c3cbf2451123bf4d06bf5924d740bac52
|
||||
EBUILD alsa-driver-1.0.19.ebuild 7046 RMD160 f56f7ad0a03181b4e0bf0e602bfae4f70077314f SHA1 add059cc3af8bd8ed1ddbf1b9d1908d47a6d5310 SHA256 394f751ac6d99a4632c0b9e8d8ee14a9b279f701e76a765b9f38bfffce56cf96
|
||||
MISC ChangeLog 208 RMD160 003078574917300431b50d37d745552017c0d7a7 SHA1 614cee3498109b457433b07023910da4c701c2d3 SHA256 f419c8b519d627394455689278a466bb81b3eb761aa29d32e2cf8f2fec7f21ed
|
||||
MISC metadata.xml 170 RMD160 645927a396fdc21cdeb089fe42c5397332420ea6 SHA1 ac7f48a14fec325926f9ce1be8fbf1f311b4f2e4 SHA256 d797a2ec6f9dc516c9f9c1a758ee87ad3e8c43101b5dc76c2f872d5bd4639b42
|
||||
|
2
x11-apps/drm-progs/Manifest
Normal file
2
x11-apps/drm-progs/Manifest
Normal file
@ -0,0 +1,2 @@
|
||||
DIST drm-progs-99999999-use-system-libdrm.patch.bz2 1932 RMD160 521c875b29902cc58e0e36e539c16df7f938f6dc SHA1 b9327b1d3e657dbdb9e22378f5be92f5afc64498 SHA256 e1bb96ae5df54b39c9494af265a3a5d58f36c44b8036033344b41de8e3966dda
|
||||
EBUILD drm-progs-99999999.ebuild 991 RMD160 9352e60b491f22c8a80fa58f510f13720115b5d9 SHA1 b8d0c70b0277b8df50a5da22dc60df644840fd9a SHA256 755456929fc86f7ac8ee52ec4991d0fbb22a22cdc67dbc645893f5b60bbddfe0
|
48
x11-apps/drm-progs/drm-progs-99999999.ebuild
Normal file
48
x11-apps/drm-progs/drm-progs-99999999.ebuild
Normal file
@ -0,0 +1,48 @@
|
||||
# Copyright 1999-2009 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: $
|
||||
|
||||
EGIT_REPO_URI="git://anongit.freedesktop.org/git/mesa/drm"
|
||||
|
||||
inherit eutils autotools git
|
||||
|
||||
DESCRIPTION="X11 DRM utilities and test programs"
|
||||
HOMEPAGE="http://dri.freedesktop.org/wiki/"
|
||||
SRC_URI="http://dev.gentoo.org/~battousai/distfiles/${P}-use-system-libdrm.patch.bz2"
|
||||
|
||||
LICENSE="X11"
|
||||
SLOT="0"
|
||||
|
||||
# Keywords inherited from x11-drm ebuild, where these used to be.
|
||||
KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~x86 ~x86-fbsd"
|
||||
|
||||
IUSE=""
|
||||
|
||||
DEPEND="x11-libs/libdrm"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
#S="${WORKDIR}/${P}"
|
||||
|
||||
src_unpack() {
|
||||
git_src_unpack
|
||||
|
||||
cd "${WORKDIR}"
|
||||
unpack ${P}-use-system-libdrm.patch.bz2
|
||||
|
||||
cd "${S}"
|
||||
epatch "${WORKDIR}"/${P}-use-system-libdrm.patch
|
||||
|
||||
eautoreconf -v --install
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
econf || die "econf failed"
|
||||
|
||||
cd "${S}"/tests
|
||||
emake || die "emake failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cd "${S}"/tests
|
||||
dobin dristat drmstat modeprint/modeprint modetest/modetest || die
|
||||
}
|
1
x11-base/x11-drm/Manifest
Normal file
1
x11-base/x11-drm/Manifest
Normal file
@ -0,0 +1 @@
|
||||
EBUILD x11-drm-99999999.ebuild 6852 RMD160 8e3fbc5b82fa5dc2a5e4d532ab3a71f8ac8f847a SHA1 f281b1b8120526899fe098ae9fa3db5570078686 SHA256 4f1f65c210e0d49f9c9abe177f5204c40a03ffd4de09c1ae67ead50e4f5a3975
|
301
x11-base/x11-drm/x11-drm-99999999.ebuild
Normal file
301
x11-base/x11-drm/x11-drm-99999999.ebuild
Normal file
@ -0,0 +1,301 @@
|
||||
# Copyright 1999-2009 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/x11-drm-20070314.ebuild,v 1.2 2007/03/14 18:18:53 battousai Exp $
|
||||
|
||||
#EGIT_BRANCH="vblank-rework"
|
||||
EGIT_REPO_URI="git://anongit.freedesktop.org/git/mesa/drm"
|
||||
|
||||
inherit eutils x11 linux-mod git
|
||||
|
||||
IUSE_VIDEO_CARDS="
|
||||
video_cards_mach64
|
||||
video_cards_mga
|
||||
video_cards_nv
|
||||
video_cards_r128
|
||||
video_cards_radeon
|
||||
video_cards_savage
|
||||
video_cards_sis
|
||||
video_cards_sunffb
|
||||
video_cards_tdfx
|
||||
video_cards_via"
|
||||
IUSE="${IUSE_VIDEO_CARDS} kernel_FreeBSD kernel_linux"
|
||||
|
||||
# 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 ...
|
||||
RESTRICT="strip"
|
||||
|
||||
S="${WORKDIR}/drm"
|
||||
#PATCHVER="0.1"
|
||||
PATCHDIR="${WORKDIR}/patch"
|
||||
EXCLUDED="${WORKDIR}/excluded"
|
||||
|
||||
DESCRIPTION="DRM Kernel Modules for X11"
|
||||
HOMEPAGE="http://dri.sf.net"
|
||||
if [ -n "${PATCHVER}" ] ; then
|
||||
SRC_URI="http://dev.gentoo.org/~dberkholz/distfiles/${P}-gentoo-${PATCHVER}.tar.bz2"
|
||||
else
|
||||
SRC_URI=""
|
||||
fi
|
||||
|
||||
SLOT="0"
|
||||
LICENSE="X11"
|
||||
KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~x86 ~x86-fbsd"
|
||||
|
||||
DEPEND="kernel_linux? ( virtual/linux-sources )
|
||||
kernel_FreeBSD? ( sys-freebsd/freebsd-sources
|
||||
sys-freebsd/freebsd-mk-defs )"
|
||||
RDEPEND=""
|
||||
|
||||
pkg_setup() {
|
||||
# Setup the kernel's stuff.
|
||||
kernel_setup
|
||||
|
||||
# Set video cards to build for.
|
||||
set_vidcards
|
||||
|
||||
# Determine which -core dir we build in.
|
||||
get_drm_build_dir
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
git_src_unpack
|
||||
cd "${WORKDIR}"
|
||||
|
||||
# Apply patches if there's a patchball version number provided.
|
||||
if [ -n "${PATCHVER}" ]
|
||||
then
|
||||
unpack ${P}-gentoo-${PATCHVER}.tar.bz2
|
||||
cd "${S}"
|
||||
|
||||
patch_prepare
|
||||
|
||||
# Apply patches
|
||||
EPATCH_SUFFIX="patch" epatch ${PATCHDIR}
|
||||
fi
|
||||
|
||||
src_unpack_os
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
einfo "Building DRM in ${SRC_BUILD}..."
|
||||
src_compile_os
|
||||
einfo "DRM build finished".
|
||||
}
|
||||
|
||||
src_install() {
|
||||
einfo "Installing DRM..."
|
||||
cd "${SRC_BUILD}"
|
||||
|
||||
src_install_os
|
||||
|
||||
dodoc "${S}/linux-core/README.drm"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if use video_cards_sis
|
||||
then
|
||||
einfo "SiS direct rendering only works on 300 series chipsets."
|
||||
einfo "SiS framebuffer also needs to be enabled in the kernel."
|
||||
fi
|
||||
|
||||
if use video_cards_mach64
|
||||
then
|
||||
einfo "The Mach64 DRI driver is insecure."
|
||||
einfo "Malicious clients can write to system memory."
|
||||
einfo "For more information, see:"
|
||||
einfo "http://dri.freedesktop.org/wiki/ATIMach64."
|
||||
fi
|
||||
|
||||
pkg_postinst_os
|
||||
}
|
||||
|
||||
# Functions used above are defined below:
|
||||
|
||||
kernel_setup() {
|
||||
if use kernel_FreeBSD
|
||||
then
|
||||
K_RV=${CHOST/*-freebsd/}
|
||||
elif use kernel_linux
|
||||
then
|
||||
linux-mod_pkg_setup
|
||||
|
||||
if kernel_is 2 4
|
||||
then
|
||||
eerror "Upstream support for 2.4 kernels has been removed, so this package will no"
|
||||
eerror "longer support them."
|
||||
die "Please use in-kernel DRM or switch to a 2.6 kernel."
|
||||
fi
|
||||
|
||||
linux_chkconfig_builtin "DRM" && \
|
||||
die "Please disable or modularize DRM in the kernel config. (CONFIG_DRM = n or m)"
|
||||
|
||||
CONFIG_CHECK="AGP"
|
||||
ERROR_AGP="AGP support is not enabled in your kernel config (CONFIG_AGP)"
|
||||
fi
|
||||
}
|
||||
|
||||
set_vidcards() {
|
||||
VIDCARDS=""
|
||||
|
||||
if [[ -n "${VIDEO_CARDS}" ]]; then
|
||||
use video_cards_mach64 && \
|
||||
VIDCARDS="${VIDCARDS} mach64.${KV_OBJ}"
|
||||
use video_cards_mga && \
|
||||
VIDCARDS="${VIDCARDS} mga.${KV_OBJ}"
|
||||
use video_cards_nv && \
|
||||
VIDCARDS="${VIDCARDS} nv.${KV_OBJ} nouveau.${KV_OBJ}"
|
||||
use video_cards_r128 && \
|
||||
VIDCARDS="${VIDCARDS} r128.${KV_OBJ}"
|
||||
use video_cards_radeon && \
|
||||
VIDCARDS="${VIDCARDS} radeon.${KV_OBJ}"
|
||||
use video_cards_savage && \
|
||||
VIDCARDS="${VIDCARDS} savage.${KV_OBJ}"
|
||||
use video_cards_sis && \
|
||||
VIDCARDS="${VIDCARDS} sis.${KV_OBJ}"
|
||||
use video_cards_via && \
|
||||
VIDCARDS="${VIDCARDS} via.${KV_OBJ}"
|
||||
use video_cards_sunffb && \
|
||||
VIDCARDS="${VIDCARDS} ffb.${KV_OBJ}"
|
||||
use video_cards_tdfx && \
|
||||
VIDCARDS="${VIDCARDS} tdfx.${KV_OBJ}"
|
||||
fi
|
||||
}
|
||||
|
||||
get_drm_build_dir() {
|
||||
if use kernel_FreeBSD
|
||||
then
|
||||
SRC_BUILD="${S}/bsd-core"
|
||||
elif kernel_is 2 6
|
||||
then
|
||||
SRC_BUILD="${S}/linux-core"
|
||||
fi
|
||||
}
|
||||
|
||||
patch_prepare() {
|
||||
# Handle exclusions based on the following...
|
||||
# All trees (0**), Standard only (1**), Others (none right now)
|
||||
# 2.4 vs. 2.6 kernels
|
||||
if use kernel_linux
|
||||
then
|
||||
kernel_is 2 6 && mv -f "${PATCHDIR}"/*kernel-2.4* "${EXCLUDED}"
|
||||
fi
|
||||
|
||||
# There is only one tree being maintained now. No numeric exclusions need
|
||||
# to be done based on DRM tree.
|
||||
}
|
||||
|
||||
src_unpack_linux() {
|
||||
convert_to_m "${SRC_BUILD}"/Makefile
|
||||
}
|
||||
|
||||
src_unpack_freebsd() {
|
||||
# Link in freebsd kernel.
|
||||
ln -s "/usr/src/sys-${K_RV}" "${WORKDIR}/sys"
|
||||
# SUBDIR variable gets to all Makefiles, we need it only in the main one.
|
||||
SUBDIRS=${VIDCARDS//.ko}
|
||||
sed -i -e "s:SUBDIR\ =.*:SUBDIR\ =\ drm ${SUBDIRS}:" "${SRC_BUILD}"/Makefile
|
||||
}
|
||||
|
||||
src_unpack_os() {
|
||||
if use kernel_linux; then
|
||||
src_unpack_linux
|
||||
elif use kernel_FreeBSD
|
||||
then
|
||||
src_unpack_freebsd
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile_os() {
|
||||
if use kernel_linux
|
||||
then
|
||||
src_compile_linux
|
||||
elif use kernel_FreeBSD
|
||||
then
|
||||
src_compile_freebsd
|
||||
fi
|
||||
}
|
||||
|
||||
src_install_os() {
|
||||
if use kernel_linux
|
||||
then
|
||||
src_install_linux
|
||||
elif use kernel_FreeBSD
|
||||
then
|
||||
src_install_freebsd
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile_linux() {
|
||||
# remove leading and trailing space
|
||||
VIDCARDS="${VIDCARDS% }"
|
||||
VIDCARDS="${VIDCARDS# }"
|
||||
|
||||
check_modules_supported
|
||||
MODULE_NAMES=""
|
||||
for i in drm.${KV_OBJ} ${VIDCARDS}; do
|
||||
MODULE_NAMES="${MODULE_NAMES} ${i/.${KV_OBJ}}(${PN}:${SRC_BUILD})"
|
||||
i=$(echo ${i/.${KV_OBJ}} | tr '[:lower:]' '[:upper:]')
|
||||
eval MODULESD_${i}_ENABLED="yes"
|
||||
done
|
||||
|
||||
# This now uses an M= build system. Makefile does most of the work.
|
||||
cd "${SRC_BUILD}"
|
||||
unset ARCH
|
||||
BUILD_TARGETS="modules"
|
||||
BUILD_PARAMS="DRM_MODULES='${VIDCARDS}' LINUXDIR='${KERNEL_DIR}' M='${SRC_BUILD}'"
|
||||
ECONF_PARAMS='' S="${SRC_BUILD}" linux-mod_src_compile
|
||||
|
||||
if linux_chkconfig_present DRM
|
||||
then
|
||||
ewarn "Please disable in-kernel DRM support to use this package."
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile_freebsd() {
|
||||
cd "${SRC_BUILD}"
|
||||
# Environment CFLAGS overwrite kernel CFLAGS which is bad.
|
||||
local svcflags=${CFLAGS}; local svldflags=${LDFLAGS}
|
||||
unset CFLAGS; unset LDFLAGS
|
||||
MAKE=make \
|
||||
emake \
|
||||
NO_WERROR= \
|
||||
SYSDIR="${WORKDIR}/sys" \
|
||||
KMODDIR="/boot/modules" \
|
||||
|| die "pmake failed."
|
||||
export CFLAGS=${svcflags}; export LDFLAGS=${svldflags}
|
||||
}
|
||||
|
||||
die_error() {
|
||||
eerror "Portage could not build the DRM modules. If you see an ACCESS DENIED error,"
|
||||
eerror "this could mean that you were using an unsupported kernel build system."
|
||||
eerror "Only 2.6 kernels at least as new as 2.6.6 are supported."
|
||||
die "Unable to build DRM modules."
|
||||
}
|
||||
|
||||
src_install_linux() {
|
||||
linux-mod_src_install
|
||||
|
||||
# Strip binaries, leaving /lib/modules untouched (bug #24415)
|
||||
strip_bins \/lib\/modules
|
||||
}
|
||||
|
||||
src_install_freebsd() {
|
||||
cd "${SRC_BUILD}"
|
||||
dodir "/boot/modules"
|
||||
MAKE=make \
|
||||
emake \
|
||||
install \
|
||||
NO_WERROR= \
|
||||
DESTDIR="${D}" \
|
||||
KMODDIR="/boot/modules" \
|
||||
|| die "Install failed."
|
||||
}
|
||||
|
||||
pkg_postinst_os() {
|
||||
if use kernel_linux
|
||||
then
|
||||
linux-mod_pkg_postinst
|
||||
fi
|
||||
}
|
Loading…
Reference in New Issue
Block a user