PROJECT_NAME := waterservice PREFIX ?= /usr/bin CONFIG_DIR := /etc/$(PROJECT_NAME) CONFIG_FILE := config.json DEVICES_DIR := $(CONFIG_DIR) DEVICES_FILE := devices.json SYSTEM_DIR := /usr/lib/systemd/system WEB_DIR := /var/lib/$(PROJECT_NAME)/webui BIN_FILE := build/bin/$(PROJECT_NAME) UNIT_FILE := $(PROJECT_NAME).service README_FILE := README.md .PHONY: all all: service .PHONY: service service: mkdir -p bin cd src && go build -o ../$(BIN_FILE) .PHONY: clean clean: cd src && go clean rm -rf build .PHONY: install install: all # Binary install -d $(PREFIX) install -m 0755 $(BIN_FILE) $(PREFIX) # System unit install -d $(SYSTEM_DIR) install -m 0644 $(UNIT_FILE) $(SYSTEM_DIR) # Web ui install -d $(WEB_DIR) cp -r webui/* $(WEB_DIR) # Config file @if [ -f $(CONFIG_DIR)/$(notdir $(CONFIG_FILE)) ]; then \ echo "$(CONFIG_DIR)/$(notdir $(CONFIG_FILE)) already exists - skipping..."; \ else \ install -d $(CONFIG_DIR); \ install -m 0644 config/$(CONFIG_FILE) $(CONFIG_DIR); \ echo "install -d $(CONFIG_DIR)"; \ echo "install -m 0644 $(CONFIG_FILE) $(CONFIG_DIR)"; \ fi # devices file @if [ -f $(DEVICES_DIR)/$(notdir $(DEVICES_FILE)) ]; then \ echo "$(DEVICES_DIR)/$(notdir $(DEVICES_FILE)) already exists - skipping..."; \ else \ install -d $(DEVICES_DIR); \ install -m 0644 config/$(DEVICES_FILE) $(DEVICES_DIR); \ echo "install -d $(DEVICES_DIR)"; \ echo "install -m 0644 $(DEVICES_FILE) $(DEVICES_DIR)"; \ fi .PHONY: uninstall uninstall: rm -rf $(CONFIG_DIR) rm -rf $(SYSTEM_DIR)/$(UNIT_FILE) rm -rf $(PREFIX)/$(PROJECT_NAME) rm -rf $(WEB_DIR)