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
9ifeq ($(shell uname -s), Darwin)
10	INSTALL		?= ginstall
11else
12	INSTALL		?= install
13endif
14
15all: src/sq-usage.rs
16
17# Installation.
18.PHONY: build-release
19build-release:
20	CARGO_TARGET_DIR=$(CARGO_TARGET_DIR) \
21	    $(CARGO) build $(CARGO_FLAGS) --release --package sequoia-tool
22	$(MAKE) -C../store build-release
23
24.PHONY: install
25install: build-release
26	$(INSTALL) -d $(DESTDIR)$(PREFIX)/bin
27	$(INSTALL) -t $(DESTDIR)$(PREFIX)/bin $(CARGO_TARGET_DIR)/release/sq
28	$(INSTALL) -d $(DESTDIR)$(PREFIX)/share/zsh/site-functions
29	$(INSTALL) -t $(DESTDIR)$(PREFIX)/share/zsh/site-functions \
30	    $(CARGO_TARGET_DIR)/_sq
31	$(INSTALL) -d $(DESTDIR)$(PREFIX)/share/bash-completion/completions
32	$(INSTALL) $(CARGO_TARGET_DIR)/sq.bash \
33	    $(DESTDIR)$(PREFIX)/share/bash-completion/completions/sq
34	$(INSTALL) -d $(DESTDIR)$(PREFIX)/share/fish/completions
35	$(INSTALL) -t $(DESTDIR)$(PREFIX)/share/fish/completions \
36	    $(CARGO_TARGET_DIR)/sq.fish
37	$(MAKE) -C../store install
38
39# Maintenance.
40.PHONY: update-usage
41update-usage: src/sq-usage.rs
42
43src/sq-usage.rs: make-usage.sh $(SQ)
44	sh make-usage.sh $(SQ) >$@~ && mv $@~ $@
45