mte/GNUmakefile

58 lines
2 KiB
Text
Raw Normal View History

2026-03-11 19:39:43 +01:00
vendor_list := \
mkernel miou zarith bstr mnet mirage-crypto-rng-mkernel gmp digestif \
kdf utcp flux h1 httpcats mhttp multipart_form-miou prettym tls \
x509 vifu cachet mfat mirage-mtime caqti caqti-miou caqti-mnet caqti-driver-pgx
2026-03-11 14:17:52 +01:00
secmod_fat=secrets/secmod.fat
tap_device=tap-mte
check-kvm:
$(if $(wildcard /dev/kvm),,$(error KVM support not enabled))
2026-03-11 19:39:43 +01:00
# todo: just opam install . --deps-only?
2026-03-11 14:17:52 +01:00
installs:
2026-03-11 19:39:43 +01:00
opam install --yes mcrunch
opam install --yes sqlite3 # needed for caqti even if not used
opam install --yes caqti-driver-pgx
opam install --yes $(vendor_list)
2026-03-11 14:17:52 +01:00
pins:
2026-03-11 19:39:43 +01:00
opam pin --no-action --yes "git+https://github.com/mirage/Zarith.git#zarith-1.14"
opam pin --no-action --yes "git+https://github.com/swrup/mirage-mtime.git#6a6bb4dd25624a3c43e6417dcdf73f3c689946a7"
opam pin --no-action --yes "git+https://github.com/robur-coop/vif.git#8c6ac3fb97cb9a31bf6ad8ec63c942336dcfd03e"
opam pin --no-action --yes add caqti "git+https://github.com/swrup/ocaml-caqti.git#7838c29ffa9095d32b95affee26b22ef2ad302fd"
opam pin --no-action --yes add caqti-miou "git+https://github.com/swrup/ocaml-caqti.git#7838c29ffa9095d32b95affee26b22ef2ad302fd"
opam pin --no-action --yes add caqti-mnet "git+https://github.com/swrup/ocaml-caqti.git#7838c29ffa9095d32b95affee26b22ef2ad302fd"
opam pin --no-action --yes add caqti-driver-pgx "git+https://github.com/swrup/ocaml-caqti.git#7838c29ffa9095d32b95affee26b22ef2ad302fd"
opam pin --no-action --yes "git+https://github.com/swrup/mfat.git#40afdb419df56d4932928a61906e012a3c534549"
2026-03-11 14:17:52 +01:00
2026-03-11 19:39:43 +01:00
.PHONY: vendors
2026-03-11 14:17:52 +01:00
vendors:
2026-03-11 19:39:43 +01:00
@mkdir -p vendors
2026-03-11 14:17:52 +01:00
@for v in $(vendor_list); do \
2026-03-11 19:39:43 +01:00
[ -d vendors/$$v ] || opam source $$v --dir vendors/$$v ; \
2026-03-11 14:17:52 +01:00
done
.PHONY: clean
clean:
rm -rf _build/
rm -rf vendors/
2026-03-11 19:39:43 +01:00
# todo: don't erase already existing
2026-03-11 14:17:52 +01:00
secmod-storage:
2026-03-11 19:39:43 +01:00
@mkdir -p secrets
2026-03-11 14:17:52 +01:00
mfat make --sectors=2048 $(secmod_fat)
assets:
cp default/assets ./
manifest:
dune exec src/mte.exe > manifest.json
build:
dune build src/mte.exe
run:
solo5-hvt --block:storage=$(secmod_fat) --net:service=$(tap_device) -- _build/solo5/main.exe --solo5:quiet