.PHONY: all check format lint test bench bench-update build build-release run clean install help coverage audit deny doc-test
all: format check lint test build
check:
cargo check
format:
cargo fmt --all
lint:
cargo clippy --all-targets -- -D warnings
test:
cargo test
bench:
cargo bench
bench-update:
cargo run --release --bin forjar -- bench --iterations 1000 --json \
| python3 scripts/bench_update.py > benchmarks/RESULTS.md
build:
cargo build
build-release:
cargo build --release
run:
cargo run
clean:
cargo clean
install: build-release
cargo install --path .
coverage:
cargo llvm-cov --summary-only --fail-under-lines 95
audit:
cargo audit
cargo deny check
doc-test:
cargo test --doc
help:
@echo "forjar - Available targets:"
@echo " all - Run format, check, lint, test, and build"
@echo " check - Type check the code"
@echo " format - Format code with rustfmt"
@echo " lint - Run clippy linter"
@echo " test - Run tests"
@echo " bench - Run benchmarks"
@echo " bench-update - Run benchmarks and update benchmarks/RESULTS.md"
@echo " build - Build debug binary"
@echo " build-release - Build optimized release binary"
@echo " run - Run the application"
@echo " clean - Remove build artifacts"
@echo " install - Install the binary"
@echo " coverage - Run coverage analysis (95% minimum)"
@echo " audit - Run security audit (cargo-audit + cargo-deny)"
@echo " doc-test - Run documentation tests"
@echo " help - Show this help message"