4.6 Building Omnivox For WSL2

Use this advanced route when maintaining the reproducible Emacsvox Windows bundle or its optional engine integrations. Ordinary WSL2 users should use the pre-built release in Install An Omnivox Windows Release Under WSL2. This target builds from source and currently produces an x86-64 Windows runtime.

Before running it, install or configure all of the following:

You do not need to install Rust, MinGW, CMake, Clang, libclang, eSpeak NG, Roslyn, Visual Studio, or the .NET reference assemblies in WSL. The target pins or builds those inside its controlled toolchain. Eloquence and DECtalk runtimes are optional and are not needed for the normal Windows WinRT voice.

The quickest prerequisite check is:

cd /path/to/emacsvox
make verify-windows-omnivox-toolchain

This is more than a presence check: on its first run it downloads the pinned .NET compiler packages, builds the pinned Docker image, and verifies the exact Rust, MinGW, libclang, Roslyn, and .NET Framework versions. A failure names the missing host command or unsupported framework before the full Omnivox build is attempted.

Clone Omnivox beside Emacsvox as shown in the source-build section. Then, from a clean Emacsvox checkout whose sibling Omnivox checkout also has no tracked changes, run:

cd /path/to/emacsvox
make windows-omnivox

This is the reproducible release path. It builds and verifies a pinned Windows-GNU executable and stages a content-addressed runtime beneath servers/omnivox-bin. It also copies the runnable payload to a Windows-local directory so native voice and eSpeak data discovery do not pay the WSL filesystem cost. Optional Eloquence and DECtalk runtimes are not downloaded by this target or required for normal WinRT speech.

Maintainers testing tracked changes should use the development route in Integration Maintenance rather than weakening the clean-release guard.