.PHONY: help all clean test test-doc doctest-benchmark bench-codec build release lint fmt check-fmt markdownlint nixie typecheck
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
WHITAKER ?= whitaker
build: target/debug/lib$(CRATE).rlib
release: target/release/lib$(CRATE).rlib
all: release
clean:
$(CARGO) clean
test-bdd:
RUSTFLAGS="-D warnings" $(CARGO) test --test bdd --all-features $(BUILD_JOBS)
test:
RUSTFLAGS="-D warnings" $(CARGO) test --all-targets --all-features $(BUILD_JOBS)
test-doc:
RUSTFLAGS="-D warnings" $(CARGO) test --doc --all-features $(BUILD_JOBS)
doctest-benchmark:
./scripts/doctest-benchmark.sh
bench-codec:
RUSTFLAGS="-D warnings" $(CARGO) bench --bench codec_performance --bench codec_performance_alloc --features test-support $(BUILD_JOBS)
typecheck:
RUSTFLAGS="-D warnings" $(CARGO) check --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)
RUSTFLAGS="-D warnings" $(WHITAKER) --all -- --all-targets --all-features
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}'