From 9afa3ca7a9643ca6745af4620f7a77c3d3e4bc3f Mon Sep 17 00:00:00 2001 From: swrup Date: Wed, 11 Mar 2026 14:17:52 +0100 Subject: [PATCH] MNET: wip makefile --- .gitignore | 1 + GNUmakefile | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++ network.sh | 11 ++++++++++ 3 files changed, 70 insertions(+) create mode 100644 GNUmakefile create mode 100644 network.sh diff --git a/.gitignore b/.gitignore index 7aeab444..aba8e136 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ _taler_exchange_sql assets secrets !secrets/.keep +vendors diff --git a/GNUmakefile b/GNUmakefile new file mode 100644 index 00000000..23ea6950 --- /dev/null +++ b/GNUmakefile @@ -0,0 +1,58 @@ +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 + +secmod_fat=secrets/secmod.fat +tap_device=tap-mte + +check-kvm: + $(if $(wildcard /dev/kvm),,$(error KVM support not enabled)) + +# todo: just opam install . --deps-only? +installs: + opam install --yes dune utop merlin ocp-browser ocamlformat + 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) + +pins: + 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" + + +.PHONY: vendors +vendors: + @mkdir -p vendors + @for v in $(vendor_list); do \ + [ -d vendors/$$v ] || opam source $$v --dir vendors/$$v ; \ + done + +.PHONY: clean +clean: + rm -rf _build/ + rm -rf vendors/ + +# todo: don't erase already existing +secmod-storage: + @mkdir -p secrets + 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 diff --git a/network.sh b/network.sh new file mode 100644 index 00000000..f2eb77f2 --- /dev/null +++ b/network.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -e + +sudo ip link add name bridge-mte type bridge +sudo ip addr add 10.0.0.1/24 dev bridge-mte +sudo ip tuntap add name tap-mte mode tap +sudo ip link set tap-mte master bridge-mte +sudo ip link set bridge-mte up +sudo ip link set tap-mte up + +# TODO setup postgresql