aboutsummaryrefslogtreecommitdiff
blob: f5f50f8da0b2a7e9748aa84294fb4bfa18b6e26a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=5

inherit eutils toolchain-funcs portability unpacker versionator

MYD=$(get_version_component_range 1)_$(get_version_component_range 2)

DESCRIPTION="NVIDIA GPU Deployment Kit"
HOMEPAGE="https://developer.nvidia.com/gpu-deployment-kit"
CURI="http://developer.download.nvidia.com/compute/cuda/6_5/rel/installers"
SRC_URI="
	amd64? ( ${CURI}/cuda_${MYD}_gdk_linux_64.run )
	x86? ( ${CURI}/cuda_${MYD}_gdk_linux_32.run )"

LICENSE="NVIDIA-gdk"
SLOT="0"
KEYWORDS="~amd64"
IUSE="+healthmon +nvml +doc examples"

RDEPEND="
>=dev-util/nvidia-cuda-toolkit-6.5
examples? ( >=x11-drivers/nvidia-drivers-340.32[uvm] )
media-libs/freeglut
"
DEPEND="${RDEPEND}"

S="${WORKDIR}/payload"

RESTRICT="binchecks"

src_unpack() {
	unpacker
}

src_compile() {
	use examples || return
	cd "${S}"/nvml/example
	emake || die
}

src_install() {
	cd "${S}/"

	local i j f t

	if use doc; then
		if use healthmon ; then
			ebegin "Installing healthmon docs..."
				doman nvidia-healthmon/docs/man/man8/nvidia-healthmon.8
				cd "${S}/nvidia-healthmon/nvidia-healthmon-amd64-${PV}"
				treecopy $(find -type f \( -name README.txt -name COPYING.txt -o -name "*.pdf" \)) "${ED}"/usr/share/doc/${PF}/nvidia-healthmon/
				docompress -x $(find "${ED}"/usr/share/doc/${PF}/nvidia-healthmon/ -type f -name readme.txt | sed -e "s:${ED}::")
				cd "${S}/"
			eend
		fi

		if use healthmon ; then
			ebegin "Installing nvml docs..."
				doman nvml/doc/man/man3/*.3
				cd "${S}/nvml/"
				treecopy $(find -type f \( -name README.txt -name COPYRIGHT.txt -o -name "*.pdf" \)) "${ED}"/usr/share/doc/${PF}/nvml/
				docompress -x $(find "${ED}"/usr/share/doc/${PF}/nvml/ -type f -name readme.txt | sed -e "s:${ED}::")
				cd "${S}/"
			eend
		fi
	fi

	ebegin "Cleaning before installation..."
		find -type f \( -name "*.o" -o -name "*.pdf" -o -name "*.txt" -o -name "*.3" \) -delete || die
	eend

	if use healthmon; then
		ebegin "Installing nvidia-healthmon"
		exeinto "/opt/cuda/gdk/nvidia-healthmon/nvidia-healthmon-tests/"
		doexe "nvidia-healthmon/nvidia-healthmon-amd64-${PV}/bin"/gpu_rdma_bw
		doexe "nvidia-healthmon/nvidia-healthmon-amd64-${PV}/bin"/ibv_rdma_bw
		doexe "nvidia-healthmon/nvidia-healthmon-amd64-${PV}/bin"/rdma_test.sh
		exeinto "/opt/cuda/gdk/nvidia-healthmon/"
		doexe "nvidia-healthmon/nvidia-healthmon-amd64-${PV}"/nvidia-healthmon
		insinto "/etc/nvidia-healthmon/"
		doins "nvidia-healthmon/nvidia-healthmon-amd64-${PV}"/nvidia-healthmon.conf

		# install launch script
		exeinto /opt/bin
		doexe "${FILESDIR}"/nvidia-healthmon
	fi

	if use nvml; then
		ebegin "Installing nvml"
		cd "${S}/nvml"
		for f in $(find .); do
			local t="$(dirname ${f})"
			if [[ "${t/obj\/}" != "${t}" || "${t##*.}" == "a" ]]; then
				continue
			fi

			if [[ ! -d "${f}" ]]; then
				if [[ -x "${f}" ]]; then
					exeinto "/opt/cuda/gdk/nvml/${t}"
					doexe "${f}"
				else
					insinto "/opt/cuda/gdk/nvml/${t}"
					doins "${f}"
				fi
			fi
		done
		cd "${S}/"
	fi

}