aboutsummaryrefslogtreecommitdiff
blob: a11c79b2439e0a941dfc147f5130a7483eb43dff (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
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=5

inherit eutils portability toolchain-funcs 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 || die
	emake
}

src_install() {
	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}" || die
				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}/" || die
			eend
		fi

		if use healthmon ; then
			ebegin "Installing nvml docs..."
				doman nvml/doc/man/man3/*.3
				cd "${S}/nvml/" || die
				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}/" || die
			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"/{*,*.*}
			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
		eend
	fi

	if use nvml; then
		ebegin "Installing nvml"
			cd "${S}/nvml" || die
			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}/" || die
		eend
	fi

}