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