File: rules

package info (click to toggle)
bumblebee 3.2.1-31
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,304 kB
  • sloc: ansic: 2,845; sh: 1,792; makefile: 187
file content (107 lines) | stat: -rwxr-xr-x 4,056 bytes parent folder | download | duplicates (2)
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
#!/usr/bin/make -f
# -*- makefile -*-

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

get_variant		 = $(word 1,$(subst _, ,$1))
get_constraint		 = $(1:$(call get_variant,$1)%=%)

nv_variant_Debian	+= tesla-535_[amd64_arm64_ppc64el]

nv_driver_Debian	+= nvidia-driver_[!i386_!armhf]
nv_driver_Debian	+= $(foreach v,$(nv_variant_Debian),nvidia-$(call get_variant,$v)-driver$(call get_constraint,$v))
nv_driver_Debian	+= nvidia-driver-any

nv_module_Debian	+= nvidia
nv_module_Debian	+= nvidia-current
nv_module_Debian	+= $(foreach v,$(nv_variant_Debian),nvidia-$(call get_variant,$v))

nv_version_Ubuntu	+= 560_[amd64_arm64]
nv_version_Ubuntu	+= 550_[amd64_arm64]
nv_version_Ubuntu	+= 550-server_[amd64_arm64]
nv_version_Ubuntu	+= 535_[amd64_arm64]
nv_version_Ubuntu	+= 535-server_[amd64_arm64]

nv_driver_Ubuntu	+= nvidia-driver-binary_[amd64_i386]
nv_driver_Ubuntu	+= $(foreach v,$(nv_version_Ubuntu),nvidia-driver-$(call get_variant,$v)$(call get_constraint,$v))

nv_module_Ubuntu	+= $(filter-out nvidia-driver-binary,$(foreach v,$(nv_driver_Ubuntu),$(call get_variant,$v)))


VENDOR	:= $(shell dpkg-vendor --derives-from Ubuntu && echo Ubuntu || echo Debian)

bb_depends_Debian	 =
bb_depends_Ubuntu	 = pciutils

bbnv_depends_Debian	 = glx-alternative-nvidia (>= 0.6.92)
bbnv_depends_Ubuntu	 =

bb_backend_Debian	 = primus-libs
bb_backend_Ubuntu	 = virtualgl | primus-libs

MAINTSCRIPTS_GENERATED		 = $(MAINTSCRIPTS_GENERATED.$(VENDOR))
MAINTSCRIPTS_GENERATED		+= debian/bumblebee.conf
MAINTSCRIPTS_GENERATED.Debian	+= debian/bumblebee-nvidia.postinst
MAINTSCRIPTS_GENERATED.Ubuntu	+= debian/bumblebee-nvidia.postinst
MAINTSCRIPTS_GENERATED.Ubuntu	+= debian/bumblebee-nvidia.postrm

DPKG_EXPORT_BUILDFLAGS = 1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
include /usr/share/dpkg/default.mk

export deb_systemdsystemunitdir = $(shell pkg-config --variable=systemdsystemunitdir systemd | sed s,^/,,)
export deb_udevdir = $(shell pkg-config --variable=udevdir udev | sed s,^/,,)

%:
	dh $@

override_dh_auto_configure: $(MAINTSCRIPTS_GENERATED)
ifeq ($(VENDOR),Ubuntu)
	dh_auto_configure -- \
		--with-udev-rules=/$(deb_udevdir)/rules.d \
		CONF_DRIVER_MODULE_NVIDIA=nvidia \
		CONF_LDPATH_NVIDIA=/usr/lib/nvidia-current:/usr/lib32/nvidia-current:/usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu \
		CONF_MODPATH_NVIDIA=/usr/lib/nvidia-current/xorg,/usr/lib/xorg/modules \
		CONF_PRIMUS_LD_PATH=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus \
		CONF_XORG_BINARY=/usr/lib/xorg/Xorg
else
	dh_auto_configure -- \
		--with-udev-rules=/$(deb_udevdir)/rules.d \
		CONF_DRIVER_MODULE_NVIDIA=nvidia \
		CONF_LDPATH_NVIDIA=/usr/lib/x86_64-linux-gnu/nvidia:/usr/lib/i386-linux-gnu/nvidia:/usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu \
		CONF_MODPATH_NVIDIA=/usr/lib/nvidia,/usr/lib/xorg/modules \
		CONF_PRIMUS_LD_PATH=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus \
		CONF_XORG_BINARY=/usr/lib/xorg/Xorg
endif

execute_after_dh_clean:
	$(RM) $(MAINTSCRIPTS_GENERATED)

override_dh_installinit:
	dh_installinit --name=bumblebeed

override_dh_bugfiles:
	dh_bugfiles -A

override_dh_gencontrol:
	dh_gencontrol -- \
		-V'bumblebee:Depends=$(bb_depends_$(VENDOR))' \
		-V'nvidia:Depends=$(bbnv_depends_$(VENDOR)), $(subst _, ,$(foreach d,$(nv_driver_$(VENDOR)),$(d) |))' \
		-V'bumblebee:backend=$(bb_backend_$(VENDOR))'

debian/%: debian/%.$(VENDOR)
	cp -a $< $@

debian/bumblebee.conf: debian/rules
	$(RM) $@
	echo '# This file is installed by bumblebee, do NOT edit!' >> $@
	echo '# to be used by kmod / module-init-tools, and installed in /etc/modprobe.d/' >> $@
	echo '# or equivalent' >> $@
	echo '' >> $@
	echo '# do not automatically load nouveau as it may prevent nvidia from loading' >> $@
	echo 'blacklist nouveau' >> $@
	echo '' >> $@
	echo '# do not automatically load nvidia as it'"'"'s unloaded anyway when bumblebeed' >> $@
	echo '# starts and may fail bumblebeed to disable the card in a race condition.' >> $@
	for module in $(nv_module_$(VENDOR)) ; do echo "blacklist $$module" >> $@ ; done