.PHONY: help check fmt clippy test build clean install-tools quality-check
help:
@echo "Available targets:"
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-20s\033[0m %s\n", $$1, $$2}'
quality-check:
@echo "Running quality checks..."
@cargo fmt --all -- --check
@cargo clippy --all-targets --all-features -- -D warnings
@cargo test --quiet
@markdownlint "**/*.md" --ignore node_modules --ignore target || true
@echo "✓ Quality checks complete"
fmt:
cargo fmt --all
clippy:
cargo clippy --all-targets --all-features -- -D warnings
test:
cargo test
test-verbose:
cargo test --verbose
build:
cargo build
build-release:
cargo build --release
clean:
cargo clean
install-tools:
@echo "Installing Rust tools..."
@rustup component add clippy rustfmt
@echo "Installing markdownlint (requires Node.js)..."
@npm install -g markdownlint-cli || echo "Node.js not installed, skipping markdownlint"
@echo "✓ Tools installed"
check: quality-check