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
9ifeq ($(shell uname -s), Darwin)
10	INSTALL		?= ginstall
11else
12	INSTALL		?= install
13endif
14
15all: src/sqv-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-sqv
22
23.PHONY: install
24install: build-release
25	$(INSTALL) -d $(DESTDIR)$(PREFIX)/bin
26	$(INSTALL) -t $(DESTDIR)$(PREFIX)/bin $(CARGO_TARGET_DIR)/release/sqv
27	$(INSTALL) -d $(DESTDIR)$(PREFIX)/share/zsh/site-functions
28	$(INSTALL) -t $(DESTDIR)$(PREFIX)/share/zsh/site-functions \
29	    $(CARGO_TARGET_DIR)/_sqv
30	$(INSTALL) -d $(DESTDIR)$(PREFIX)/share/bash-completion/completions
31	$(INSTALL) $(CARGO_TARGET_DIR)/sqv.bash \
32	    $(DESTDIR)$(PREFIX)/share/bash-completion/completions/sqv
33	$(INSTALL) -d $(DESTDIR)$(PREFIX)/share/fish/completions
34	$(INSTALL) -t $(DESTDIR)$(PREFIX)/share/fish/completions \
35	    $(CARGO_TARGET_DIR)/sqv.fish
36
37# Maintenance.
38.PHONY: update-usage
39update-usage: src/sqv-usage.rs
40
41src/sqv-usage.rs: make-usage.sh $(SQV)
42	sh make-usage.sh $(SQV) >$@
43