1# Configuration.
2CARGO_TARGET_DIR	?= $(shell pwd)/../target
3# We currently only support absolute paths.
4CARGO_TARGET_DIR	:= $(abspath $(CARGO_TARGET_DIR))
5SQV	?= $(CARGO_TARGET_DIR)/debug/sqv
6
7# Tools.
8CARGO	?= cargo
9
10ifneq ($(filter Darwin FreeBSD,$(shell uname -s)),"")
11	INSTALL		?= ginstall
12else
13	INSTALL		?= install
14endif
15
16all: src/sqv-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-sqv
23
24.PHONY: install
25install: build-release
26	$(INSTALL) -d $(DESTDIR)$(PREFIX)/bin
27	$(INSTALL) -t $(DESTDIR)$(PREFIX)/bin $(CARGO_TARGET_DIR)/release/sqv
28	$(INSTALL) -d $(DESTDIR)$(PREFIX)/share/zsh/site-functions
29	$(INSTALL) -t $(DESTDIR)$(PREFIX)/share/zsh/site-functions \
30	    $(CARGO_TARGET_DIR)/_sqv
31	$(INSTALL) -d $(DESTDIR)$(PREFIX)/share/bash-completion/completions
32	$(INSTALL) $(CARGO_TARGET_DIR)/sqv.bash \
33	    $(DESTDIR)$(PREFIX)/share/bash-completion/completions/sqv
34	$(INSTALL) -d $(DESTDIR)$(PREFIX)/share/fish/completions
35	$(INSTALL) -t $(DESTDIR)$(PREFIX)/share/fish/completions \
36	    $(CARGO_TARGET_DIR)/sqv.fish
37
38# Maintenance.
39.PHONY: update-usage
40update-usage: src/sqv-usage.rs
41
42src/sqv-usage.rs: make-usage.sh $(SQV)
43	sh make-usage.sh $(SQV) >$@
44