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
|
From: Richard Hansen <rhansen@rhansen.org>
Date: Sat, 6 Jan 2024 00:32:57 -0500
Subject: Revamp systemd service unit file installation
* Make the systemd system directory configurable.
* Use `/usr` instead of `$(PREFIX)` for systemd system directory
because it is more likely to match user systems.
* Skip systemd service install if `SYSTEMD_SYSTEM_DIR` is empty
* Always install systemd service if `SYSTEMD_SYSTEM_DIR` is set
Forwarded: https://github.com/rvaiya/keyd/pull/674
---
Makefile | 27 +++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/Makefile b/Makefile
index 5df8832..9dc8580 100644
--- a/Makefile
+++ b/Makefile
@@ -7,6 +7,10 @@ PREFIX?=/usr/local
CONFIG_DIR?=/etc/keyd
SOCKET_PATH=/var/run/keyd.socket
+# If this variable is set to the empty string, no systemd unit files will be
+# installed.
+SYSTEMD_SYSTEM_DIR = /usr/lib/systemd/system
+
CFLAGS:=-DVERSION=\"v$(VERSION)\ \($(COMMIT)\)\" \
-I/usr/local/include \
-L/usr/local/lib \
@@ -49,15 +53,14 @@ man:
scdoc < "$$f" | gzip > "$$target"; \
done
install:
- @if [ -e /run/systemd/system ]; then \
- mkdir -p $(DESTDIR)$(PREFIX)/lib/systemd/system/; \
- install -Dm644 keyd.service $(DESTDIR)$(PREFIX)/lib/systemd/system/keyd.service; \
- else \
- echo "NOTE: systemd not found, you will need to manually add keyd to your system's init process."; \
+ @if [ -n '$(SYSTEMD_SYSTEM_DIR)' ]; then \
+ mkdir -p '$(DESTDIR)$(SYSTEMD_SYSTEM_DIR)'; \
+ install -Dm644 keyd.service '$(DESTDIR)$(SYSTEMD_SYSTEM_DIR)/keyd.service'; \
fi
-
@if [ "$(VKBD)" = "usb-gadget" ]; then \
- install -Dm644 src/vkbd/usb-gadget.service $(DESTDIR)$(PREFIX)/lib/systemd/system/keyd-usb-gadget.service; \
+ if [ -n '$(SYSTEMD_SYSTEM_DIR)' ]; then \
+ install -Dm644 src/vkbd/usb-gadget.service '$(DESTDIR)$(SYSTEMD_SYSTEM_DIR)/keyd-usb-gadget.service'; \
+ fi; \
install -Dm755 src/vkbd/usb-gadget.sh $(DESTDIR)$(PREFIX)/bin/keyd-usb-gadget.sh; \
fi
@@ -80,15 +83,15 @@ install:
uninstall:
-groupdel keyd
- rm -rf $(DESTDIR)$(PREFIX)/lib/systemd/system/keyd.service \
- $(DESTDIR)$(PREFIX)/bin/keyd \
+ [ -z '$(SYSTEMD_SYSTEM_DIR)' ] || rm -f \
+ '$(DESTDIR)$(SYSTEMD_SYSTEM_DIR)/keyd.service' \
+ '$(DESTDIR)$(SYSTEMD_SYSTEM_DIR)/keyd-usb-gadget.service'
+ rm -rf $(DESTDIR)$(PREFIX)/bin/keyd \
$(DESTDIR)$(PREFIX)/bin/keyd-application-mapper \
$(DESTDIR)$(PREFIX)/share/doc/keyd/ \
$(DESTDIR)$(PREFIX)/share/man/man1/keyd*.gz \
$(DESTDIR)$(PREFIX)/share/keyd/ \
- $(DESTDIR)$(PREFIX)/lib/systemd/system/keyd-usb-gadget.service \
- $(DESTDIR)$(PREFIX)/bin/keyd-usb-gadget.sh \
- $(DESTDIR)$(PREFIX)/lib/systemd/system/keyd.service
+ $(DESTDIR)$(PREFIX)/bin/keyd-usb-gadget.sh
clean:
rm -rf bin keyd.service src/vkbd/usb-gadget.service
test:
|