a73x

6d5756ad

build: the Makefile names the gates' boxes and provisions a guest

a73x   2026-09-04 12:50

Commit message
build: the Makefile names the gates' boxes and provisions a guest

The three names and what each one is for, beside the targets that read
them, plus `make provision-mac` for the macOS VM both gates run against.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SakwJEwD9dXBoRP5kWbemW

Makefile
Old New
@@ -22,7 +22,7 @@ MUX_TARGET ?= native
22 endif 22 endif
23 MUX_TARGET ?= x86_64-linux-musl 23 MUX_TARGET ?= x86_64-linux-musl
24 24
25 .PHONY: build check ci test e2e soak bench agent throughput vm coverage deps clean clean-deps xversion xversion-build install release mac-sdk mac xos 25 .PHONY: build check ci test e2e soak bench agent throughput vm coverage deps clean clean-deps xversion xversion-build install release mac-sdk mac xos provision-mac
26 26
27 # The QUIC stack (deps/quic) is built on demand by build.zig, so no target 27 # The QUIC stack (deps/quic) is built on demand by build.zig, so no target
28 # here needs to depend on this one. It exists to make the one-time cost 28 # here needs to depend on this one. It exists to make the one-time cost
@@ -170,14 +170,36 @@ throughput: mac-sdk
170 mac-sdk: 170 mac-sdk:
171 sh ./deps/mac-sdk.sh 171 sh ./deps/mac-sdk.sh
172 172
173 # The `make vm` of the macOS port: user journeys on the Mac, over ssh. 173 # The `make vm` of the macOS port: user journeys on a real macOS, over ssh.
174 #
175 # Both macOS gates take their boxes BY NAME in the environment, and neither
176 # has a default for one — a gate that guessed a box would eventually guess
177 # somebody's laptop (test/box_lib.sh):
178 #
179 # MAC_BOX the macOS box under test, with no toolchain on it. Both
180 # gates may SCRUB it, so make it a VM: provision-mac below.
181 # MAC_BUILDER a Mac holding this repo with zig and deps/mac-sdk. It
182 # builds and is never scrubbed. Defaults to $MAC_BOX.
183 # LINUX_BOX (xos only) an x86_64 Linux VM both this box and MAC_BOX can
184 # reach, also scrubbed.
185 #
186 # eval "$(test/provision-mac.sh)" # export MAC_BOX=admin@...
187 # MAC_BUILDER=squirtle make mac
174 mac: build 188 mac: build
175 sh ./test/mac.sh 189 sh ./test/mac.sh
176 190
191 # The pristine macOS guest the two gates run against: clone the hand-made
192 # base image on a tart host, boot it bridged onto the LAN, key it to this
193 # box, and print the one `export MAC_BOX=...` line to eval. `--down` when
194 # the run is over. The base image is a human action; this is not.
195 provision-mac:
196 @sh ./test/provision-mac.sh
197
177 # The cross-OS gate (test/xos.sh): a macOS client on a Linux daemon and a 198 # The cross-OS gate (test/xos.sh): a macOS client on a Linux daemon and a
178 # Linux client on a macOS daemon, over ssh and over QUIC. A hand gate beside 199 # Linux client on a macOS daemon, over ssh and over QUIC. A hand gate beside
179 # vm and mac, never inside ci — it needs two other machines, and ci stays 200 # vm and mac, never inside ci — it needs three other machines (MAC_BOX,
180 # hermetic and offline. 201 # LINUX_BOX and MAC_BUILDER, documented above), and ci stays hermetic and
202 # offline.
181 # 203 #
182 # Two builds, because the two sides of the seam are two architectures. The 204 # Two builds, because the two sides of the seam are two architectures. The
183 # musl one is what gets installed on the Linux box: static, for vm's reason 205 # musl one is what gets installed on the Linux box: static, for vm's reason