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