107 lines
3.3 KiB
Makefile
107 lines
3.3 KiB
Makefile
.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)
|