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