storage=secmod.fat
service=tap0

setup-switch:
	opam switch create mte ocaml.5.4.1
	opam update
	opam install --yes . --deps-only

vendors: source.sh
	@mkdir -p vendors
	@./source.sh

.PHONY: clean
clean:
	rm -rf _build/
	rm -rf vendors/

assets:
	@cp -r default/assets ./

secmod.fat:
	mfat make --sectors=2048 $(storage)

src/manifest.json:
	@dune exec src/mte.exe > src/manifest.json

build: vendors
	@dune build @all
	@dune build --workspace dune-workspace.solo5 src/mte.exe

run: build
	@solo5-hvt --block:storage=$(storage) --net:service=$(service) -- ./_build/solo5/src/mte.exe
