Skip to content

Commit e1cbf5a

Browse files
committed
Makefile: implement dkms_install/uninstall targets
1 parent 068d7ee commit e1cbf5a

1 file changed

Lines changed: 35 additions & 0 deletions

File tree

Makefile

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ HID_REBIND := /sbin/hid-rebind
1212
PACKAGE_NAME = digimend-kernel-drivers
1313
PACKAGE_VERSION = 8
1414
PACKAGE = $(PACKAGE_NAME)-$(PACKAGE_VERSION)
15+
DKMS_MODULES_NAME = digimend
16+
DKMS_MODULES = $(DKMS_MODULES_NAME)/$(PACKAGE_VERSION)
1517

1618
modules modules_install clean:
1719
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) $@
@@ -38,5 +40,38 @@ install: modules_install files_install
3840

3941
uninstall: modules_uninstall files_uninstall
4042

43+
dkms_check:
44+
@if ! which dkms >/dev/null; then \
45+
echo "DKMS not found, aborting." >&2; \
46+
echo "Make sure DKMS is installed,"; \
47+
echo "and \"make\" is running under sudo, or as root."; \
48+
exit 1; \
49+
fi
50+
51+
dkms_modules_install: dkms_check
52+
@if dkms status $(DKMS_MODULES_NAME) | grep . >/dev/null; then \
53+
echo "DKMS has DIGImend modules added already, aborting." >&2; \
54+
echo "Run \"make dkms_uninstall\" first" >&2; \
55+
exit 1; \
56+
fi
57+
dkms add .
58+
dkms build $(DKMS_MODULES)
59+
dkms install $(DKMS_MODULES)
60+
61+
dkms_modules_uninstall: dkms_check
62+
set -e -x; \
63+
dkms status $(DKMS_MODULES_NAME) | \
64+
while IFS=', :' read -r modules_name \
65+
modules_version \
66+
kernel_version \
67+
ignore; do \
68+
dkms remove "$$modules_name/$$modules_version" \
69+
-k "$$kernel_version"; \
70+
done
71+
72+
dkms_install: dkms_modules_install files_install
73+
74+
dkms_uninstall: dkms_modules_uninstall files_uninstall
75+
4176
dist:
4277
git archive --format=tar.gz --prefix=$(PACKAGE)/ HEAD > $(PACKAGE).tar.gz

0 commit comments

Comments
 (0)