Build targets
Every Hover build ends in the same place: the generated sim.cpp is handed to zig c++ and linked against a prebuilt static runtime library for the target platform.
The compile line
Using Zig as the C++ driver is what makes cross-compilation cheap: the target triple is just a flag, and Zig ships the sysroot for every target it supports. Nothing in the compiler or runtime source is platform-conditional.
The runtime library
libhover_runtime.a is built once per target from the C++ sources under runtime/ — the Modified Nodal Analysis engine (mna/, built on Eigen), the VM and its logger (vm/), and the integration methods (solvers/, one translation unit per solver named in .solver). It's compiled with zig c++ and archived with zig ar, same as the per-simulation build.
Standalone releases
The Makefile builds a self-contained release zip per platform. A release bundles the hover binary, the runtime sources (which hover --setup compiles into libhover_runtime.a on first use), the licenses, and an hpm symlink to the same binary (hpm.bat on Windows — symlinks need elevation there, and zip does not carry them portably):
make linux/make windows— packagelinux-x86_64/windows-x86_64, kept as back-compat aliases.make <platform>— any row in the Makefile'sPLATFORMSlist: Linux, Windows, FreeBSD, NetBSD and OpenBSD across x86_64, aarch64, x86, arm and riscv64.make all— every platform.make clean— removes build artifacts and standalone folders.
Two things a release deliberately does not bundle. The standard library ships as one ordinary package published to the web — hover --setup downloads it into ~/.hover on first run, which is what lets a stdlib fix reach users without a compiler release (the cost: a fresh install needs network access once). And there is no vendored Zig toolchain — on Windows --setup downloads one into ./toolchain/zig; elsewhere it expects Zig on PATH. See Install.
make stdlib-archives goes the other direction: it packages stdlib/ from the source tree into the archive, hash and index entry that get published for --setup to download. The bundled stdlib/ directory next to a repo-built binary is only a fallback for running straight out of the source tree — see Imports.