public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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
+}


             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