aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-cluster/openib-drivers/openib-drivers-1.1.ebuild')
-rw-r--r--sys-cluster/openib-drivers/openib-drivers-1.1.ebuild126
1 files changed, 126 insertions, 0 deletions
diff --git a/sys-cluster/openib-drivers/openib-drivers-1.1.ebuild b/sys-cluster/openib-drivers/openib-drivers-1.1.ebuild
new file mode 100644
index 000000000..747aee8cc
--- /dev/null
+++ b/sys-cluster/openib-drivers/openib-drivers-1.1.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+inherit linux-mod
+
+DESCRIPTION="OpenIB kernel modules"
+HOMEPAGE="http://www.openfabrics.org/"
+#SRC_URI="http://www.openfabrics.org/downloads/${P}.tgz"
+SRC_URI="http://www.gentooscience.org/${P}.tgz"
+
+LICENSE="|| ( GPL-2 BSD-2 )"
+SLOT="0"
+
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="virtual/modutils
+ sys-cluster/openib-files"
+DEPEND="${RDEPEND}
+ virtual/linux-sources"
+
+pkg_setup() {
+
+ CONFIG_CHECK="!INFINIBAND PCI"
+ ERROR_INFINIBAND="Infiniband is already compiled into the kernel."
+ ERROR_PCI="PCI must be enabled in the kernel."
+
+ linux-mod_pkg_setup
+}
+
+notused_src_unpack() {
+ # patching is currently done by the configure script
+
+ cd "${S}"
+
+ # apply kernel fixes
+
+ # apply backport patches
+ THEKERNELVER="KV_MAJOR.KV_MINOR.KV_PATCH"
+ if [ -d ${S}/kernel_patches/backport/$THEKERNELVER ]; then
+ einfo "Applying patches for $THEKERNELVER kernel"
+ eindent
+ for p in ${S}/kernel_patches/backport/$THEKERNELVER/*; do
+ epatch $p
+ done
+ eoutdent
+ fi
+
+ # apply fixes
+ einfo "Applying fixes"
+ eindent
+ for p in ${S}/kernel_patches/fixes/*; do
+ epatch $p
+ done
+ eoutdent
+
+ # Apply huge pages patch
+ epatch "${S}/kernel_patches/hpage_patches/hpages.patch"
+
+ # Apply memtrack patch
+ [ "$OPENIB_MEMTRACK"="1" ] && $epatch "${S}/kernel_patches/memtrack/memtrack.patch"
+}
+
+make_target() {
+ local myARCH="${ARCH}" myABI="${ABI}"
+ ARCH="$(tc-arch-kernel)"
+ ABI="${KERNEL_ABI}"
+ CC_HOSTCC=$(tc-getBUILD_CC)
+ CC_CC=$(tc-getCC)
+
+ emake HOSTCC=${CC_HOSTCC} CC=${CC_CC} $@ \
+ || die "Unable to run emake kernel"
+
+ ARCH="${myARCH}"
+ ABI="${myABI}"
+}
+
+src_compile() {
+ convert_to_m Makefile
+
+ export CONFIG_INFINIBAND="m"
+ export CONFIG_INFINIBAND_IPOIB="m"
+ export CONFIG_INFINIBAND_SDP="m"
+ export CONFIG_INFINIBAND_SRP="m"
+
+ export CONFIG_INFINIBAND_USER_MAD="m"
+ export CONFIG_INFINIBAND_USER_ACCESS="m"
+ export CONFIG_INFINIBAND_ADDR_TRANS="y"
+ export CONFIG_INFINIBAND_MTHCA="m"
+ export CONFIG_INFINIBAND_IPATH="m"
+
+ CONF_PARAMS="--prefix=${ROOT}usr --without-userlevel --kernel-version=${KV_FULL}"
+ if [[ "$OPENIB_MEMTRACK" = "1" ]]; then
+ CONF_PARAMS="${CONF_PARAMS} --with-memtrack"
+ fi
+
+ ./configure ${CONF_PARAMS} || die "configure failed with options: ${CONF_PARAMS}"
+
+ sed -i '/DEPMOD.*=.*depmod/s/=.*/= :/' ./Makefile
+ grep DEPMOD Makefile
+
+ make_target kernel
+}
+
+src_install() {
+
+ #make DESTDIR="${D}" install_kernel || die "install failed"
+ make_target DESTDIR="${D}" install_modules \
+ || die "install failed"
+
+ # mv the drivers somewhere they won't be killed by the kernel's make modules_install
+ mv ${D}/lib/modules/${KV_FULL}/kernel/drivers/infiniband ${D}/lib/modules/${KV_FULL}/infiniband
+ rmdir ${D}/lib/modules/${KV_FULL}/kernel/drivers &> /dev/null
+ rmdir ${D}/lib/modules/${KV_FULL}/kernel &> /dev/null
+ mkdir -p ${D}/usr/include/rdma
+ cp -a ${S}/include/rdma/*.h ${D}/usr/include/rdma
+ mkdir -p ${D}/usr/include/scsi
+ cp -a ${S}/include/scsi/srp.h ${D}/usr/include/scsi
+}
+
+pkg_postinst() {
+
+ linux-mod_pkg_postinst
+
+}