summaryrefslogtreecommitdiff
path: root/recipes/nvidia-drivers/nvidia-drivers.inc
blob: fbb28cb01d639501d93654892a001c01de9f6ca1 (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
# nvidia-display .bb build file
# Copyright (C) 2005-2006, Advanced Micro Devices, Inc.  All Rights Reserved
# Released under the MIT license (see /COPYING)

HOMEPAGE="http://www.nvidia.com/object/unix.html"
DESCRIPTION="NVidia Graphics Driver Binary"
LICENSE = "NVIDIA"

inherit module
INHIBIT_PACKAGE_STRIP="1"

def nvidia_pkgrun(d):
	import bb, re
	arch = bb.data.getVar('TARGET_ARCH', d, 1)
	pkgrun = "pkg2"
	if re.match("^i.86$", arch):
		pkgrun = "pkg1"
	return pkgrun
	
def nvidia_arch(d):
	import bb, re
	arch = bb.data.getVar('TARGET_ARCH', d, 1)
	if re.match("^i.86$", arch):
		arch = "x86"
	return arch

def get_kernelpatchlevel(p):
	import re
	r = re.compile("[0-9]+\.([0-9]+).*")
	m = r.match(p);
	if m:
		return m.group(1)
	return None
									
NVIDIA_ARCH := "${@nvidia_arch(d)}"
NVIDIA_PKGRUN := "${@nvidia_pkgrun(d)}"

COMPATIBLE_HOST = '.*86.*-linux'

KERNEL_PATCHLEVEL = "${@get_kernelpatchlevel('${KERNEL_VERSION}')}"
EXTRA_OEMAKE=" KERNEL_SOURCES=${STAGING_KERNEL_DIR} KERNEL_MODLIB=${STAGING_KERNEL_DIR} KERNEL_UNAME=${KERNEL_VERSION} PATCHLEVEL=${KERNEL_PATCHLEVEL} MODULE_ROOT=${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers IGNORE_CC_MISMATCH=1"

PKG_BASENAME="NVIDIA-Linux-${NVIDIA_ARCH}-${PV}-${NVIDIA_PKGRUN}"

nvidia_do_unpack() {
	sh ${PKG_BASENAME}.run -x
}

python do_unpack() {
	bb.build.exec_func('base_do_unpack', d)
	bb.build.exec_func('nvidia_do_unpack', d)
}