CARGO ?= cargo
BIN = fsmp
FSMP_HOME ?= $(HOME)/.fsmp
BINDIR = $(FSMP_HOME)/bin
RELEASE_BIN = target/release/$(BIN)
.PHONY: all build release test fmt fmt-check clippy check run install uninstall clean help
all: build
build:
$(CARGO) build
release:
$(CARGO) build --release
test:
$(CARGO) test
fmt:
$(CARGO) fmt
fmt-check:
$(CARGO) fmt --check
clippy:
$(CARGO) clippy --all-targets -- -D warnings
check: fmt-check clippy test
run:
$(CARGO) run -- $(ARGS)
install: release
install -d "$(BINDIR)"
install -m 755 "$(RELEASE_BIN)" "$(BINDIR)/$(BIN)"
@echo "installed $(BIN) -> $(BINDIR)/$(BIN)"
@echo "ensure $(BINDIR) is on your PATH, e.g. add to your shell profile:"
@printf ' export PATH="%s:$$PATH"\n' "$(BINDIR)"
uninstall:
rm -f "$(BINDIR)/$(BIN)"
@echo "removed $(BINDIR)/$(BIN)"
clean:
$(CARGO) clean
help:
@grep -E '^## ' $(MAKEFILE_LIST) | sed -e 's/^## / /'