.PHONY: help build release test check clean fmt lint run install
help:
@echo "symtrace — Makefile targets"
@echo ""
@echo "Build targets:"
@echo " make build — Build debug binary"
@echo " make release — Build optimized release binary"
@echo ""
@echo "Testing & validation:"
@echo " make test — Run all tests"
@echo " make check — Run cargo check (faster than build)"
@echo ""
@echo "Code quality:"
@echo " make fmt — Format code with rustfmt"
@echo " make fmt-check — Check code formatting"
@echo " make lint — Run clippy linter"
@echo ""
@echo "Maintenance:"
@echo " make clean — Remove build artifacts"
@echo " make run — Build and run (debug mode)"
@echo " make install — Install binary to ~/.cargo/bin"
@echo ""
@echo "Benchmarks:"
@echo " make bench — Run benchmarks"
build:
cargo build
release:
cargo build --release
test:
cargo test --all
check:
cargo check
fmt:
cargo fmt --all
fmt-check:
cargo fmt --all -- --check
lint:
cargo clippy --all-targets --all-features -- -D warnings
clean:
cargo clean
run: build
cargo run -- --help
install: release
cargo install --path .
bench:
cargo bench
pre-commit: fmt-check lint test check
@echo "✓ All pre-commit checks passed"
production: clean release test lint
@echo "✓ Production build ready"
@echo ""
@echo "Binary location:"
@echo " ./target/release/symtrace"
@echo ""
@echo "Use 'make install' to install globally, or distribute the binary."