VENV := .venv PYTHON := $(VENV)/bin/python PIP := $(VENV)/bin/pip MKDOCS := $(VENV)/bin/mkdocs CARGO_DIR := src DOC_DIR := docmd DOC_FILE := mkdocs.yml DOC_SITE := doc DOC_PORT := 8001 # ── virtualenv ──────────────────────────────────────────────────────────────── $(VENV)/bin/activate: python3 -m venv $(VENV) $(MKDOCS): $(VENV)/bin/activate $(PIP) install --quiet --upgrade pip $(PIP) install --quiet \ livereload watchdog \ mkdocs mkdocs-material \ mkdocs-mermaid2-plugin \ mkdocs-bibtex # ── obikmer binary ─────────────────────────────────────────────────────────── PROFILE_FILE := profile.pb PPROF_PORT := 8081 .PHONY: obikmer obikmer: cargo build --release --manifest-path $(CARGO_DIR)/Cargo.toml --bin obikmer .PHONY: debug debug: cargo build --manifest-path $(CARGO_DIR)/Cargo.toml --bin obikmer .PHONY: profile-build profile-build: cargo build --release --manifest-path $(CARGO_DIR)/Cargo.toml \ --bin obikmer --features obikmer/profiling .PHONY: profile-view profile-view: go tool pprof -http=127.0.0.1:$(PPROF_PORT) $(PROFILE_FILE) # ── documentation ───────────────────────────────────────────────────────────── .PHONY: doc doc: $(MKDOCS) $(MKDOCS) build -f $(DOC_FILE) .PHONY: doc-serve doc-serve: $(MKDOCS) $(MKDOCS) serve -f $(DOC_FILE) \ --dev-addr=127.0.0.1:$(DOC_PORT) \ --livereload .PHONY: clean-doc clean-doc: rm -rf $(DOC_SITE)/ .PHONY: clean clean: clean-doc rm -rf $(VENV)