.PHONY: all build build-system build-xdg cargo-build clean preview preview-system preview-xdg list-paths install install-bin install-data install-system install-xdg uninstall uninstall-bin uninstall-data uninstall-system uninstall-xdg UID := $(shell id -u) PREFIX ?= /usr/local EXEC_PREFIX ?= $(PREFIX) BINDIR ?= $(EXEC_PREFIX)/bin DATAROOTDIR ?= $(PREFIX)/share DATADIR ?= $(DATAROOTDIR) SYSCONFDIR ?= $(PREFIX)/etc LOCALSTATEDIR ?= $(PREFIX)/var RUNSTATEDIR ?= $(LOCALSTATEDIR)/run %-system: POLARIS_BIN_PATH := $(BINDIR)/polaris %-system: export POLARIS_WEB_DIR := $(DATADIR)/polaris/web %-system: export POLARIS_SWAGGER_DIR := $(DATADIR)/polaris/swagger %-system: export POLARIS_CONFIG_DIR := $(SYSCONFDIR)/polaris %-system: export POLARIS_DATA_DIR := $(LOCALSTATEDIR)/lib/polaris %-system: export POLARIS_DB_DIR := $(LOCALSTATEDIR)/lib/polaris %-system: export POLARIS_LOG_DIR := $(LOCALSTATEDIR)/log/polaris %-system: export POLARIS_CACHE_DIR := $(LOCALSTATEDIR)/cache/polaris %-system: export POLARIS_PID_DIR := $(RUNSTATEDIR)/polaris XDG_CACHE_HOME ?= $(HOME)/.cache XDG_CONFIG_HOME ?= $(HOME)/.config XDG_DATA_HOME ?= $(HOME)/.local/share XDG_BINDIR ?= $(HOME)/.local/bin XDG_DATADIR ?= $(XDG_DATA_HOME)/polaris XDG_CACHEDIR ?= $(XDG_CACHE_HOME)/polaris XDG_CONFIGDIR ?= $(XDG_CONFIG_HOME)/polaris ifdef $(XDG_RUNTIME_DIR) XDG_PIDDIR ?= $(XDG_RUNTIME_DIR)/polaris else XDG_PIDDIR ?= /tmp/polaris-$(UID) endif %-xdg: POLARIS_BIN_PATH := $(XDG_BINDIR)/polaris %-xdg: export POLARIS_WEB_DIR := $(XDG_DATADIR)/web %-xdg: export POLARIS_SWAGGER_DIR := $(XDG_DATADIR)/swagger %-xdg: export POLARIS_CONFIG_DIR := $(XDG_CONFIGDIR) %-xdg: export POLARIS_DATA_DIR := $(XDG_DATADIR) %-xdg: export POLARIS_DB_DIR := $(XDG_DATADIR) %-xdg: export POLARIS_LOG_DIR := $(XDG_CACHEDIR) %-xdg: export POLARIS_CACHE_DIR := $(XDG_CACHEDIR) %-xdg: export POLARIS_PID_DIR := $(XDG_PIDDIR) # Build build-system: cargo-build build-xdg: cargo-build build: build-system all: build-system cargo-build: cargo build --release clean: cargo clean # Preview preview-system: list-paths preview-xdg: list-paths preview: preview-system list-paths: $(info POLARIS_BIN_PATH is $(POLARIS_BIN_PATH)) $(info POLARIS_WEB_DIR is $(POLARIS_WEB_DIR)) $(info POLARIS_SWAGGER_DIR is $(POLARIS_SWAGGER_DIR)) $(info POLARIS_CONFIG_DIR is $(POLARIS_CONFIG_DIR)) $(info POLARIS_DATA_DIR is $(POLARIS_DATA_DIR)) $(info POLARIS_DB_DIR is $(POLARIS_DB_DIR)) $(info POLARIS_LOG_DIR is $(POLARIS_LOG_DIR)) $(info POLARIS_CACHE_DIR is $(POLARIS_CACHE_DIR)) $(info POLARIS_PID_DIR is $(POLARIS_PID_DIR)) # Install install-system: install-bin install-data install-xdg: install-bin install-data install: install-system install-bin: cargo-build install -Dm755 ./target/release/polaris $(POLARIS_BIN_PATH) install-data: install -d $(POLARIS_WEB_DIR) install -d $(POLARIS_SWAGGER_DIR) cp -rT ./web $(POLARIS_WEB_DIR) cp -rT ./swagger $(POLARIS_SWAGGER_DIR) # Uninstall uninstall-system: uninstall-bin uninstall-data uninstall-xdg: uninstall-bin uninstall-data uninstall: uninstall-system uninstall-bin: rm $(POLARIS_BIN_PATH) uninstall-data: rm -rf $(POLARIS_WEB_DIR) rm -rf $(POLARIS_SWAGGER_DIR) rm -rf $(POLARIS_CONFIG_DIR) rm -rf $(POLARIS_DATA_DIR) rm -rf $(POLARIS_DB_DIR) rm -rf $(POLARIS_LOG_DIR) rm -rf $(POLARIS_CACHE_DIR) rm -rf $(POLARIS_PID_DIR)