1# Configuration.
2CARGO_TARGET_DIR	?= $(shell pwd)/../target
3# We currently only support absolute paths.
4CARGO_TARGET_DIR	:= $(abspath $(CARGO_TARGET_DIR))
5SQ	?= $(CARGO_TARGET_DIR)/debug/sq
6
7# Tools.
8CARGO	?= cargo
9
10ifneq ($(filter Darwin FreeBSD,$(shell uname -s)),"")
11	INSTALL		?= ginstall
12else
13	INSTALL		?= install
14endif
15
16all: src/sq-usage.rs
17
18# Installation.
19.PHONY: build-release
20build-release:
21	CARGO_TARGET_DIR=$(CARGO_TARGET_DIR) \
22	    $(CARGO) build $(CARGO_FLAGS) --release --package sequoia-tool
23	$(MAKE) -C../store build-release
24
25.PHONY: install
26install: build-release
27	$(INSTALL) -d $(DESTDIR)$(PREFIX)/bin
28	$(INSTALL) -t $(DESTDIR)$(PREFIX)/bin $(CARGO_TARGET_DIR)/release/sq
29	$(INSTALL) -d $(DESTDIR)$(PREFIX)/share/zsh/site-functions
30	$(INSTALL) -t $(DESTDIR)$(PREFIX)/share/zsh/site-functions \
31	    $(CARGO_TARGET_DIR)/_sq
32	$(INSTALL) -d $(DESTDIR)$(PREFIX)/share/bash-completion/completions
33	$(INSTALL) $(CARGO_TARGET_DIR)/sq.bash \
34	    $(DESTDIR)$(PREFIX)/share/bash-completion/completions/sq
35	$(INSTALL) -d $(DESTDIR)$(PREFIX)/share/fish/completions
36	$(INSTALL) -t $(DESTDIR)$(PREFIX)/share/fish/completions \
37	    $(CARGO_TARGET_DIR)/sq.fish
38	$(MAKE) -C../store install
39
40# Maintenance.
41.PHONY: update-usage
42update-usage: src/sq-usage.rs
43
44src/sq-usage.rs: make-usage.sh $(SQ)
45	sh make-usage.sh $(SQ) >$@~ && mv $@~ $@
46