My agentic slop goes here. Not intended for anyone else!
1.DEFAULT_GOAL := all
2
3.PHONY: all
4all:
5 opam exec -- dune build --root . @install
6
7.PHONY: deps
8deps: ## Install development dependencies
9 opam install -y dune-release ocamlformat utop ocaml-lsp-server
10 opam install --deps-only --with-test --with-doc -y .
11
12.PHONY: create_switch
13create_switch: ## Create an opam switch without any dependency
14 opam switch create . --no-install -y
15
16.PHONY: switch
17switch: ## Create an opam switch and install development dependencies
18 opam install . --deps-only --with-doc --with-test
19 opam install -y dune-release ocamlformat utop ocaml-lsp-server
20
21.PHONY: build
22build: ## Build the project, including non installable libraries and executables
23 opam exec -- dune build --root .
24
25.PHONY: test
26test: ## Run the unit tests
27 opam exec -- dune runtest --root .
28
29.PHONY: clean
30clean: ## Clean build artifacts and other generated files
31 opam exec -- dune clean --root .
32
33.PHONY: doc
34doc: ## Generate odoc documentation
35 opam exec -- dune build --root . @doc
36
37.PHONY: fmt
38fmt: ## Format the codebase with ocamlformat
39 opam exec -- dune build --root . --auto-promote @fmt
40
41.PHONY: watch
42watch: ## Watch for the filesystem and rebuild on every change
43 opam exec -- dune build --root . --watch