From: "Justin Lecher" <jlec@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/sci:master commit in: dev-util/nvidia-cuda-sdk/, dev-util/nvidia-cuda-toolkit/
Date: Mon, 26 Nov 2012 22:02:01 +0000 (UTC) [thread overview]
Message-ID: <1353940868.681fddddccfa83904fb693a5f23866a09c5a5b08.jlec@gentoo> (raw)
commit: 681fddddccfa83904fb693a5f23866a09c5a5b08
Author: Justin Lecher <jlec <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 15 22:09:13 2012 +0000
Commit: Justin Lecher <jlec <AT> gentoo <DOT> org>
CommitDate: Mon Nov 26 14:41:08 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=681fdddd
Work in progress towards cuda eclass usage
---
.../nvidia-cuda-sdk/nvidia-cuda-sdk-4.2.9.ebuild | 61 ++++++++++----
.../nvidia-cuda-toolkit-5.0.35-r1.ebuild | 87 ++++++++++++++++++++
.../nvidia-cuda-toolkit-5.0.35.ebuild | 87 ++++++++++++++++++++
3 files changed, 220 insertions(+), 15 deletions(-)
diff --git a/dev-util/nvidia-cuda-sdk/nvidia-cuda-sdk-4.2.9.ebuild b/dev-util/nvidia-cuda-sdk/nvidia-cuda-sdk-4.2.9.ebuild
index e29737c..de89788 100644
--- a/dev-util/nvidia-cuda-sdk/nvidia-cuda-sdk-4.2.9.ebuild
+++ b/dev-util/nvidia-cuda-sdk/nvidia-cuda-sdk-4.2.9.ebuild
@@ -4,45 +4,76 @@
EAPI=4
-inherit eutils unpacker toolchain-funcs versionator
+inherit cuda eutils unpacker toolchain-funcs versionator
+MYD=$(get_version_component_range 1)_$(get_version_component_range 2)
DESCRIPTION="NVIDIA CUDA Software Development Kit"
HOMEPAGE="http://developer.nvidia.com/cuda"
-
-MYD=$(get_version_component_range 1)_$(get_version_component_range 2)
-
SRC_URI="http://developer.download.nvidia.com/compute/cuda/${MYD}/rel/sdk/gpucomputingsdk_${PV}_linux.run"
+
LICENSE="CUDPP"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
IUSE="debug +doc +examples opencl +cuda"
-RDEPEND=">=dev-util/nvidia-cuda-toolkit-${PV}
- examples? ( >=x11-drivers/nvidia-drivers-260.19.21 )
- media-libs/freeglut"
+RDEPEND="
+ >=dev-util/nvidia-cuda-toolkit-${PV}
+ media-libs/freeglut
+ examples? (
+ >=x11-drivers/nvidia-drivers-296
+ media-libs/glew
+ )"
DEPEND="${RDEPEND}"
S=${WORKDIR}
-pkg_setup() {
- if use cuda || use opencl && [[ $(tc-getCXX) == *gcc* ]] && \
- ! version_is_at_least 4.5 "$(gcc-version)"; then
- eerror "This package requires >=sys-devel/gcc-4.5 to build sucessfully"
- eerror "Please use gcc-config to switch to a compatible GCC version"
- die ">=sys-devel/gcc-4.4 required"
+gcc_supported_installed() {
+ local gcc_bindir _ver
+ for _ver in $*; do
+ has_version sys-devel/gcc:${_ver} && \
+ gcc_bindir="$(ls -d ${EPREFIX}/usr/*pc-linux-gnu/gcc-bin/${_ver}* | tail -n 1)" && \
+ break
+ done
+ if [[ -n ${gcc_bindir} ]]; then
+ echo "${gcc_bindir}"
+ return 0
+ else
+ eerror "Only gcc version(s) $* are supported"
+ die "Only gcc version(s) $* are supported"
+ return 1
fi
}
src_prepare() {
+ local nvcc_bindir
+
+ if use cuda || use opencl && [[ $(tc-getCXX) == *g++* ]]; then
+ nvcc_bindir="--compiler-bindir=\"$(gcc_supported_installed 4.6 4.5 4.4)\""
+ fi
+
epatch "${FILESDIR}"/${P}-asneeded.patch
+
+ sed \
+ -e "/LINK/s:gcc:$(tc-getCC) ${LDFLAGS}:g" \
+ -e "/LINK/s:g++:$(tc-getCXX) ${LDFLAGS}:g" \
+ -e "/CC/s:gcc:$(tc-getCC):g" \
+ -e "/CX/s:g++:$(tc-getCXX):g" \
+ -e "/NVCCFLAGS/s|\(:=\)|\1 ${nvcc_bindir} |g" \
+ -e 's:-Wimplicit::g' \
+ -e 's:-O2::g' \
+ -e 's:GLEW_x86_64:GLEW:g' \
+ -i $(find sdk -type f -name "*.mk") || die
+
+ find sdk/shared/inc/GL -delete || die
+ find sdk -type f -name "*\.a" -delete || die
}
src_compile() {
use examples || return
- local myopts=""
+ local myopts="verbose=1"
use debug && myopts+=" dbg=1"
cd sdk
- use cuda && emake -C C cuda-install="${EPREFIX}"/opt/cuda ${myopts}
+ use cuda && emake -C C cuda-install="${EPREFIX}/opt/cuda" ${myopts}
use opencl && emake -C OpenCL
}
diff --git a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-5.0.35-r1.ebuild b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-5.0.35-r1.ebuild
new file mode 100644
index 0000000..a9a5424
--- /dev/null
+++ b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-5.0.35-r1.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+
+inherit cuda unpacker
+
+MYD=$(get_version_component_range 1)_$(get_version_component_range 2)
+DISTRO=fedora16-1
+
+DESCRIPTION="NVIDIA CUDA Toolkit (compiler and friends)"
+HOMEPAGE="http://developer.nvidia.com/cuda"
+CURI="http://developer.download.nvidia.com/compute/cuda/${MYD}/rel-update-1/installers/"
+SRC_URI="
+ amd64? ( ${CURI}/cuda_${PV}_linux_64_${DISTRO}.run )
+ x86? ( ${CURI}/cuda_${PV}_linux_32_${DISTRO}.run )"
+
+SLOT="0"
+LICENSE="NVIDIA"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="debugger doc profiler"
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ || (
+ sys-devel/gcc:4.4
+ sys-devel/gcc:4.5
+ sys-devel/gcc:4.6
+ )
+ !<=x11-drivers/nvidia-drivers-270.41
+ debugger? ( sys-libs/libtermcap-compat )
+ profiler? ( >=virtual/jre-1.6 )"
+
+S="${WORKDIR}"
+
+QA_PREBUILT="opt/cuda/*"
+
+src_prepare() {
+ local cuda_supported_gcc
+
+ cuda_supported_gcc="4.4 4.5 4.6"
+
+ sed \
+ -e "s:CUDA_SUPPORTED_GCC:${cuda_supported_gcc}:g" \
+ "${FILESDIR}"/cuda-config.in > "${T}"/cuda-config || die
+}
+
+src_install() {
+ local cudadir=/opt/cuda
+ local prefix="${EPREFIX}"${cudadir}
+ rm install-linux.pl
+ # use system jre
+ rm -r libnvvp/jre
+
+ if use doc; then
+ dodoc doc/*{txt,pdf}
+ dohtml -r doc/html/*
+ fi
+ find doc -delete || die
+
+ use debugger || rm -r bin/cuda-gdb extras/Debugger
+
+ if use profiler; then
+ # hack found in install-linux.pl
+ cat > bin/nvvp <<- EOF
+ #!${EPREFIX}bin/sh
+ LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:${prefix}/lib:${prefix}/lib64 \
+ UBUNTU_MENUPROXY=0 LIBOVERLAY_SCROLLBAR=0 ${prefix}/libnvvp/nvvp
+ EOF
+ chmod a+x bin/nvvp
+ else
+ rm -r extras/CUPTI libnvvp
+ fi
+
+ dodir ${cudadir}
+ mv * "${ED}"${cudadir}
+
+ cat > "${T}"/99cuda <<- EOF
+ PATH=${prefix}/bin:${prefix}/libnvvp
+ ROOTPATH=${prefix}/bin
+ LDPATH=${prefix}/lib$(use amd64 && echo "64:${prefix}/lib")
+ EOF
+ doenvd "${T}"/99cuda
+
+ dobin "${T}"/cuda-config
+}
diff --git a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-5.0.35.ebuild b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-5.0.35.ebuild
new file mode 100644
index 0000000..135a253
--- /dev/null
+++ b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-5.0.35.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+
+inherit cuda unpacker
+
+MYD=$(get_version_component_range 1)_$(get_version_component_range 2)
+DISTRO=ubuntu11.10-1
+
+DESCRIPTION="NVIDIA CUDA Toolkit (compiler and friends)"
+HOMEPAGE="http://developer.nvidia.com/cuda"
+CURI="http://developer.download.nvidia.com/compute/cuda/${MYD}/rel-update-1/installers/"
+SRC_URI="
+ amd64? ( ${CURI}/cuda_${PV}_linux_64_${DISTRO}.run )
+ x86? ( ${CURI}/cuda_${PV}_linux_32_${DISTRO}.run )"
+
+SLOT="0"
+LICENSE="NVIDIA"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="debugger doc profiler"
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ || (
+ sys-devel/gcc:4.4
+ sys-devel/gcc:4.5
+ sys-devel/gcc:4.6
+ )
+ !<=x11-drivers/nvidia-drivers-270.41
+ debugger? ( sys-libs/libtermcap-compat )
+ profiler? ( >=virtual/jre-1.6 )"
+
+S="${WORKDIR}"
+
+QA_PREBUILT="opt/cuda/*"
+
+src_prepare() {
+ local cuda_supported_gcc
+
+ cuda_supported_gcc="4.4 4.5 4.6"
+
+ sed \
+ -e "s:CUDA_SUPPORTED_GCC:${cuda_supported_gcc}:g" \
+ "${FILESDIR}"/cuda-config.in > "${T}"/cuda-config || die
+}
+
+src_install() {
+ local cudadir=/opt/cuda
+ local prefix="${EPREFIX}"${cudadir}
+ rm install-linux.pl
+ # use system jre
+ rm -r libnvvp/jre
+
+ if use doc; then
+ dodoc doc/*{txt,pdf}
+ dohtml -r doc/html/*
+ fi
+ find doc -delete || die
+
+ use debugger || rm -r bin/cuda-gdb extras/Debugger
+
+ if use profiler; then
+ # hack found in install-linux.pl
+ cat > bin/nvvp <<- EOF
+ #!${EPREFIX}bin/sh
+ LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:${prefix}/lib:${prefix}/lib64 \
+ UBUNTU_MENUPROXY=0 LIBOVERLAY_SCROLLBAR=0 ${prefix}/libnvvp/nvvp
+ EOF
+ chmod a+x bin/nvvp
+ else
+ rm -r extras/CUPTI libnvvp
+ fi
+
+ dodir ${cudadir}
+ mv * "${ED}"${cudadir}
+
+ cat > "${T}"/99cuda <<- EOF
+ PATH=${prefix}/bin:${prefix}/libnvvp
+ ROOTPATH=${prefix}/bin
+ LDPATH=${prefix}/lib$(use amd64 && echo "64:${prefix}/lib")
+ EOF
+ doenvd "${T}"/99cuda
+
+ dobin "${T}"/cuda-config
+}
next reply other threads:[~2012-11-26 22:03 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-26 22:02 Justin Lecher [this message]
-- strict thread matches above, loose matches on Subject: below --
2015-01-22 0:09 [gentoo-commits] proj/sci:master commit in: dev-util/nvidia-cuda-sdk/, dev-util/nvidia-cuda-toolkit/ Christoph Junghans
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1353940868.681fddddccfa83904fb693a5f23866a09c5a5b08.jlec@gentoo \
--to=jlec@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox