55 lines
1.5 KiB
Makefile
55 lines
1.5 KiB
Makefile
.PHONY: build server cli compare test fmt lint clean generate-ogen docs help
|
|
|
|
# Build all binaries
|
|
build: server cli compare
|
|
|
|
server:
|
|
go build -o bin/predictor ./cmd/predictor
|
|
|
|
cli:
|
|
go build -o bin/predictor-cli ./cmd/predictor-cli
|
|
|
|
compare:
|
|
go build -o bin/compare-tawhiri ./cmd/compare-tawhiri
|
|
|
|
# Run locally
|
|
run:
|
|
go run ./cmd/predictor
|
|
|
|
# Run tests
|
|
test:
|
|
go test ./...
|
|
|
|
# Format code
|
|
fmt:
|
|
go fmt ./...
|
|
|
|
# Lint code
|
|
lint:
|
|
golangci-lint run
|
|
|
|
# Build the numerics LaTeX doc (requires pdflatex)
|
|
docs:
|
|
cd docs && pdflatex numerics.tex
|
|
|
|
# Regenerate ogen API code from the OpenAPI spec
|
|
generate-ogen:
|
|
go run github.com/ogen-go/ogen/cmd/ogen@latest --target pkg/rest --package rest --clean api/rest/predictor.swagger.yml
|
|
|
|
# Clean build artifacts
|
|
clean:
|
|
rm -rf bin/ docs/numerics.pdf docs/numerics.aux docs/numerics.log
|
|
|
|
help:
|
|
@echo "Available commands:"
|
|
@echo " build - Build all binaries to bin/"
|
|
@echo " server - Build the HTTP server (cmd/predictor)"
|
|
@echo " cli - Build the CLI client (cmd/predictor-cli)"
|
|
@echo " compare - Build the validation tool (cmd/compare-tawhiri)"
|
|
@echo " run - Run the server with default config"
|
|
@echo " test - Run unit tests"
|
|
@echo " fmt - Format code"
|
|
@echo " lint - Lint code (golangci-lint)"
|
|
@echo " docs - Build the numerics LaTeX doc (requires pdflatex)"
|
|
@echo " generate-ogen - Regenerate ogen code from the OpenAPI spec"
|
|
@echo " clean - Remove build artifacts"
|