PREFIX ?= /usr/local BINDIR := $(PREFIX)/bin APPDIR := $(PREFIX)/share/applications SYSTEMDDIR := /etc/systemd/system CONFDIR := /etc LOGDIR := /var/log/freeze-watcher LOG_GROUP ?= $(shell id -gn) .PHONY: install uninstall enable disable status logs clean install: install -Dm755 src/freeze-watcher.sh $(DESTDIR)$(BINDIR)/freeze-watcher.sh install -Dm755 src/freeze-monitor-gui $(DESTDIR)$(BINDIR)/freeze-monitor-gui install -Dm755 src/freeze-snapshot-convert $(DESTDIR)$(BINDIR)/freeze-snapshot-convert install -Dm644 systemd/freeze-watcher.service $(DESTDIR)$(SYSTEMDDIR)/freeze-watcher.service install -Dm644 desktop/freeze-monitor.desktop $(DESTDIR)$(APPDIR)/freeze-monitor.desktop @if [ ! -e "$(DESTDIR)$(CONFDIR)/freeze-watcher.conf" ]; then \ install -Dm644 config/freeze-watcher.conf $(DESTDIR)$(CONFDIR)/freeze-watcher.conf; \ echo "Installed default config at $(CONFDIR)/freeze-watcher.conf"; \ else \ install -Dm644 config/freeze-watcher.conf $(DESTDIR)$(CONFDIR)/freeze-watcher.conf.new; \ echo "Existing config preserved; new template at $(CONFDIR)/freeze-watcher.conf.new"; \ fi install -dm775 -g $(LOG_GROUP) $(DESTDIR)$(LOGDIR) @echo "Installed. Run 'make enable' to start the service." uninstall: rm -f $(DESTDIR)$(BINDIR)/freeze-watcher.sh rm -f $(DESTDIR)$(BINDIR)/freeze-monitor-gui rm -f $(DESTDIR)$(BINDIR)/freeze-snapshot-convert rm -f $(DESTDIR)$(SYSTEMDDIR)/freeze-watcher.service rm -f $(DESTDIR)$(APPDIR)/freeze-monitor.desktop rm -f $(DESTDIR)$(CONFDIR)/freeze-watcher.conf.new @echo "Uninstalled. Config at $(CONFDIR)/freeze-watcher.conf and logs at $(LOGDIR) preserved." enable: systemctl daemon-reload systemctl enable --now freeze-watcher.service disable: systemctl disable --now freeze-watcher.service status: systemctl status freeze-watcher.service --no-pager logs: journalctl -u freeze-watcher.service -f clean: @echo "Nothing to clean (no build artifacts)."