34 lines
850 B
Makefile
34 lines
850 B
Makefile
# api/Makefile — the Rust + axum backend API.
|
|
#
|
|
# Driven directly with `make -C api <target>` (or via the root Makefile's
|
|
# `api-*` convenience targets).
|
|
|
|
CARGO ?= cargo
|
|
|
|
.PHONY: help setup run build test check fmt clean
|
|
|
|
help: ## List available targets
|
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
|
|
awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-18s\033[0m %s\n", $$1, $$2}'
|
|
|
|
setup: ## Fetch dependencies
|
|
$(CARGO) fetch
|
|
|
|
run: ## Run the API server (dev)
|
|
$(CARGO) run
|
|
|
|
build: ## Release build -> target/release/
|
|
$(CARGO) build --release
|
|
|
|
test: ## Run unit/integration tests
|
|
$(CARGO) test
|
|
|
|
check: ## Format-check + lint (clippy -D warnings)
|
|
$(CARGO) fmt --all --check && $(CARGO) clippy --all-targets -- -D warnings
|
|
|
|
fmt: ## Format Rust sources with rustfmt
|
|
$(CARGO) fmt
|
|
|
|
clean: ## Remove Cargo build artifacts
|
|
$(CARGO) clean
|