.PHONY: help all clean test build release lint fmt check-fmt markdownlint nixie
CRATE ?= wireframe
CARGO ?= cargo
BUILD_JOBS ?=
CLIPPY_FLAGS ?= --all-targets --all-features -- -D warnings
RUSTDOC_FLAGS ?= --cfg docsrs -D warnings
MDLINT ?= markdownlint-cli2
NIXIE ?= nixie
build: target/debug/lib$(CRATE)
release: target/release/lib$(CRATE)
all: release
clean:
$(CARGO) clean
test:
RUSTFLAGS="-D warnings" $(CARGO) test --all-targets --all-features $(BUILD_JOBS)
target/%/lib$(CRATE).rlib:
$(CARGO) build $(BUILD_JOBS) \
$(if $(findstring release,$(@)),--release) \
--lib
@ install -Dm644 \
target/$(if $(findstring release,$(@)),release,debug)/lib$(CRATE).rlib \
$@
lint:
RUSTDOCFLAGS="$(RUSTDOC_FLAGS)" $(CARGO) doc --no-deps
$(CARGO) clippy $(CLIPPY_FLAGS)
fmt:
$(CARGO) fmt --all
mdformat-all
check-fmt:
$(CARGO) fmt --all -- --check
markdownlint:
$(MDLINT) "**/*.md"
nixie:
$(NIXIE) --no-sandbox
help:
@grep -E '^[a-zA-Z_-]+:.*?##' $(MAKEFILE_LIST) | \
awk 'BEGIN {FS=":"; printf "Available targets:\n"} {printf " %-20s %s\n", $$1, $$2}'