diff --git a/Makefile b/Makefile index f600179..35b0c69 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 \ @@ -48,17 +52,17 @@ man: done install: - @if [ -e /run/systemd/system ]; then \ + @if [ -n '$(SYSTEMD_SYSTEM_DIR)' ]; then \ sed -e 's#@PREFIX@#$(PREFIX)#' keyd.service.in > keyd.service; \ - 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."; \ + mkdir -p '$(DESTDIR)$(SYSTEMD_SYSTEM_DIR)'; \ + install -Dm644 keyd.service '$(DESTDIR)$(SYSTEMD_SYSTEM_DIR)/keyd.service'; \ fi @if [ "$(VKBD)" = "usb-gadget" ]; then \ - sed -e 's#@PREFIX@#$(PREFIX)#' src/vkbd/usb-gadget.service.in > src/vkbd/usb-gadget.service; \ - install -Dm644 src/vkbd/usb-gadget.service $(DESTDIR)$(PREFIX)/lib/systemd/system/keyd-usb-gadget.service; \ + if [ -n '$(SYSTEMD_SYSTEM_DIR)' ]; then \ + sed -e 's#@PREFIX@#$(PREFIX)#' src/vkbd/usb-gadget.service.in > src/vkbd/usb-gadget.service; \ + 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 @@ -81,15 +85,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: