BIN := push2talk VERSION := $$(git tag | tail -1) PREFIX ?= /usr LIB_DIR = $(DESTDIR)$(PREFIX)/lib BIN_DIR = $(DESTDIR)$(PREFIX)/bin SHARE_DIR = $(DESTDIR)$(PREFIX)/share .PHONY: build-dev build-dev: cargo update cargo build --features dev .PHONY: build build: cargo build --locked --release .PHONY: release release: cargo bump --git-tag git push origin --follow-tags --signed=yes .PHONY: test test: cargo test --locked .PHONY: lint lint: cargo fmt -- --check cargo clippy -- -Dwarnings .PHONY: coverage coverage: cargo install tarpaulin cargo tarpaulin --out html; xdg-open tarpaulin-report.html .PHONY: run run: cargo run .PHONY: clean clean: rm -rf dist .PHONY: install install: install -Dm755 -t "$(BIN_DIR)/" "target/release/$(BIN)" install -Dm644 -t "$(LIB_DIR)/systemd/user" "$(BIN).service" install -Dm644 -t "$(SHARE_DIR)/licenses/$(BIN)/" LICENSE.md .PHONY: dist dist: clean build mkdir -p dist cp "target/release/$(BIN)" . tar -czvf "dist/$(BIN)-$(VERSION)-linux-x86_64.tar.gz" "$(BIN)" "$(BIN).service" LICENSE.md README.md Makefile git archive -o "dist/$(BIN)-$(VERSION).tar.gz" --format tar.gz --prefix "$(BIN)-$(VERSION)/" "$(VERSION)" for f in dist/*.tar.gz; do gpg --detach-sign --armor "$$f"; done rm -f "dist/$(BIN)-$(VERSION).tar.gz" "$(BIN)"