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