Gentoo Archives: gentoo-commits

From: Justin Lecher <jlec@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/sci:master commit in: dev-util/nvidia-cuda-toolkit/, dev-util/nvidia-cuda-toolkit/files/
Date: Thu, 10 Jul 2014 08:53:47
Message-Id: 1404982412.e9d1c234decca24aea25d844e853adec8d98758c.jlec@gentoo
1 commit: e9d1c234decca24aea25d844e853adec8d98758c
2 Author: Marius Brehler <marbre <AT> linux <DOT> sungazer <DOT> de>
3 AuthorDate: Thu Jul 10 06:25:14 2014 +0000
4 Commit: Justin Lecher <jlec <AT> gentoo <DOT> org>
5 CommitDate: Thu Jul 10 08:53:32 2014 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=e9d1c234
7
8 dev-util/nvidia-cuda-toolkit: dev-util/nvidia-cuda-toolkit: add version 6.5.11
9
10 Package-Manager: portage-2.2.8-r1
11
12 ---
13 dev-util/nvidia-cuda-toolkit/ChangeLog | 9 ++
14 dev-util/nvidia-cuda-toolkit/files/cuda-config.in | 28 ++++
15 dev-util/nvidia-cuda-toolkit/metadata.xml | 14 ++
16 .../nvidia-cuda-toolkit-6.5.11.ebuild | 152 +++++++++++++++++++++
17 4 files changed, 203 insertions(+)
18
19 diff --git a/dev-util/nvidia-cuda-toolkit/ChangeLog b/dev-util/nvidia-cuda-toolkit/ChangeLog
20 new file mode 100644
21 index 0000000..d8307ea
22 --- /dev/null
23 +++ b/dev-util/nvidia-cuda-toolkit/ChangeLog
24 @@ -0,0 +1,9 @@
25 +# ChangeLog for dev-util/nvidia-cuda-toolkit
26 +# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
27 +# $Header: $
28 +
29 +*nvidia-cuda-toolkit-6.5.11 (10 Jul 2014)
30 +
31 + 10 Jul 2014; Marius Brehler <marbre@××××××××××××××.de> +files/cuda-config.in,
32 + +metadata.xml, +nvidia-cuda-toolkit-6.5.11.ebuild:
33 + dev-util/nvidia-cuda-toolkit: dev-util/nvidia-cuda-toolkit: add version 6.5.11
34
35 diff --git a/dev-util/nvidia-cuda-toolkit/files/cuda-config.in b/dev-util/nvidia-cuda-toolkit/files/cuda-config.in
36 new file mode 100644
37 index 0000000..ca0d1d7
38 --- /dev/null
39 +++ b/dev-util/nvidia-cuda-toolkit/files/cuda-config.in
40 @@ -0,0 +1,28 @@
41 +#!/bin/bash
42 +
43 +SUPPORT_GCC_VERSIONS_BY_CUDA="CUDA_SUPPORTED_GCC"
44 +
45 +_print_help() {
46 + cat <<- EOF
47 + Usage:
48 + $(basename $0) [options]
49 +
50 + -s | --supported Returns by current CUDA supported gcc versions
51 + -h | --help Shows this help
52 + EOF
53 +}
54 +
55 +case ${1} in
56 + -s|--supported)
57 + echo "${SUPPORT_GCC_VERSIONS_BY_CUDA}"
58 + exit 0
59 + ;;
60 + -h|--help)
61 + _print_help
62 + exit -1
63 + ;;
64 + *)
65 + _print_help
66 + exit 1
67 + ;;
68 +esac
69
70 diff --git a/dev-util/nvidia-cuda-toolkit/metadata.xml b/dev-util/nvidia-cuda-toolkit/metadata.xml
71 new file mode 100644
72 index 0000000..e099ba5
73 --- /dev/null
74 +++ b/dev-util/nvidia-cuda-toolkit/metadata.xml
75 @@ -0,0 +1,14 @@
76 +<?xml version="1.0" encoding="UTF-8"?>
77 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
78 +<pkgmetadata>
79 + <herd>sci</herd>
80 + <use>
81 + <flag name="profiler">
82 + Installs the NVIDIA CUDA visual profiler.
83 + </flag>
84 + <flag name="debugger">
85 + Installs the CUDA debugger.
86 + </flag>
87 + <flag name="eclipse">Install the <pkg>dev-util/eclipse-sdk</pkg> plugins</flag>
88 + </use>
89 +</pkgmetadata>
90
91 diff --git a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-6.5.11.ebuild b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-6.5.11.ebuild
92 new file mode 100644
93 index 0000000..494ee09
94 --- /dev/null
95 +++ b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-6.5.11.ebuild
96 @@ -0,0 +1,152 @@
97 +# Copyright 1999-2014 Gentoo Foundation
98 +# Distributed under the terms of the GNU General Public License v2
99 +# $Header: $
100 +
101 +EAPI=5
102 +
103 +inherit check-reqs cuda unpacker versionator
104 +
105 +MYD=$(get_version_component_range 1)_$(get_version_component_range 2)
106 +
107 +DESCRIPTION="NVIDIA CUDA Toolkit (compiler and friends)"
108 +HOMEPAGE="http://developer.nvidia.com/cuda"
109 +CURI="https://developer.nvidia.com/rdp/cuda-65-rc-toolkit-download"
110 +SRC_URI="
111 + amd64? ( cuda_${PV}_rc_linux_64.run )
112 + x86? ( cuda_${PV}_rc_linux_32.run )"
113 +
114 +SLOT="0/${PV}"
115 +LICENSE="NVIDIA-CUDA"
116 +KEYWORDS="-* ~amd64 ~x86 ~amd64-linux ~x86-linux"
117 +IUSE="debugger doc eclipse profiler"
118 +
119 +DEPEND=""
120 +RDEPEND="${DEPEND}
121 + <sys-devel/gcc-4.9[cxx]
122 + >=x11-drivers/nvidia-drivers-340.24[uvm]
123 + debugger? (
124 + sys-libs/libtermcap-compat
125 + sys-libs/ncurses[tinfo]
126 + )
127 + eclipse? ( >=virtual/jre-1.6 )
128 + profiler? ( >=virtual/jre-1.6 )"
129 +
130 +RESTRICT="fetch"
131 +
132 +pkg_nofetch() {
133 + einfo "Please download"
134 + einfo " - cuda_${P}_rc_linux64.run or"
135 + einfo " - cuda_${P}_rc_linux32.run"
136 + einfo "from ${CURI} and place it in ${DISTDIR}"
137 +}
138 +
139 +S="${WORKDIR}"
140 +
141 +QA_PREBUILT="opt/cuda/*"
142 +
143 +CHECKREQS_DISK_BUILD="1500M"
144 +
145 +pkg_setup() {
146 + # We don't like to run cuda_pkg_setup as it depends on us
147 + check-reqs_pkg_setup
148 +}
149 +
150 +src_unpack() {
151 + unpacker
152 + unpacker run_files/cuda-linux*.run
153 +}
154 +
155 +src_prepare() {
156 + local cuda_supported_gcc
157 +
158 + cuda_supported_gcc="4.8"
159 +
160 + sed \
161 + -e "s:CUDA_SUPPORTED_GCC:${cuda_supported_gcc}:g" \
162 + "${FILESDIR}"/cuda-config.in > "${T}"/cuda-config || die
163 +}
164 +
165 +src_install() {
166 + local i j
167 + local remove="doc jre run_files install-linux.pl "
168 + local cudadir=/opt/cuda
169 + local ecudadir="${EPREFIX}"${cudadir}
170 +
171 + # dodoc doc/*txt
172 + if use doc; then
173 + dodoc doc/pdf/*
174 + dohtml -r doc/html/*
175 + fi
176 +
177 + mv doc/man/man3/{,cuda-}deprecated.3 || die
178 + doman doc/man/man*/*
179 +
180 + use debugger || remove+=" bin/cuda-gdb extras/Debugger"
181 + ( use profiler || use eclipse ) || remove+=" libnsight"
182 + use amd64 || remove+=" cuda-installer.pl"
183 +
184 + if use profiler; then
185 + # hack found in install-linux.pl
186 + for j in nvvp nsight; do
187 + cat > bin/${j} <<- EOF
188 + #!${EPREFIX}/bin/sh
189 + LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:${ecudadir}/lib:${ecudadir}/lib64 \
190 + UBUNTU_MENUPROXY=0 LIBOVERLAY_SCROLLBAR=0 \
191 + ${ecudadir}/lib${j}/${j} -vm ${EPREFIX}/usr/bin/java
192 + EOF
193 + chmod a+x bin/${j}
194 + done
195 + else
196 + use eclipse || remove+=" libnvvp"
197 + remove+=" extras/CUPTI"
198 + fi
199 +
200 + for i in ${remove}; do
201 + ebegin "Cleaning ${i}..."
202 + if [[ -e ${i} ]]; then
203 + find ${i} -delete || die
204 + eend
205 + else
206 + eend $1
207 + fi
208 + done
209 +
210 + dodir ${cudadir}
211 + mv * "${ED}"${cudadir}
212 +
213 + cat > "${T}"/99cuda <<- EOF
214 + PATH=${ecudadir}/bin:${ecudadir}/libnvvp
215 + ROOTPATH=${ecudadir}/bin
216 + LDPATH=${ecudadir}/lib$(use amd64 && echo "64:${ecudadir}/lib")
217 + EOF
218 + doenvd "${T}"/99cuda
219 +
220 + make_wrapper nvprof "${EPREFIX}"${cudadir}/bin/nvprof "." ${ecudadir}/lib$(use amd64 && echo "64:${ecudadir}/lib")
221 +
222 + dobin "${T}"/cuda-config
223 +}
224 +
225 +pkg_postinst_check() {
226 + local a b
227 + a="$(version_sort $(cuda-config -s))"; a=( $a )
228 + # greatest supported version
229 + b=${a[${#a[@]}-1]}
230 +
231 + # if gcc and if not gcc-version is at least greatesst supported
232 + if [[ $(tc-getCC) == *gcc* ]] && \
233 + ! version_is_at_least $(gcc-version) ${b}; then
234 + echo
235 + ewarn "gcc >= ${b} will not work with CUDA"
236 + ewarn "Make sure you set an earlier version of gcc with gcc-config"
237 + ewarn "or append --compiler-bindir= pointing to a gcc bindir like"
238 + ewarn "--compiler-bindir=${EPREFIX}/usr/*pc-linux-gnu/gcc-bin/gcc${b}"
239 + ewarn "to the nvcc compiler flags"
240 + echo
241 + fi
242 +}
243 +
244 +pkg_postinst() {
245 + if [[ ${MERGE_TYPE} != binary ]]; then
246 + pkg_postinst_check
247 + fi
248 +}