9.1 Building the CLI

Install build dependencies per platform (one-line):

Linux (Fedora)

sudo dnf install gcc make libcurl-devel openssl-devel zlib-devel

Linux (Debian / Ubuntu)

sudo apt install build-essential libcurl4-openssl-dev libssl-dev zlib1g-dev

macOS (Homebrew)

brew install curl openssl@3 pkg-config

Windows (MSYS2 UCRT64)

pacman -S mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-curl mingw-w64-ucrt-x86_64-openssl

Then build:

cd cli
make            # builds ./ownsona (or ownsona.exe on Windows)
make test       # sanity-check the binary, no server traffic

The Makefile detects the platform via uname -s and asks curl-config --static-libs for static linker flags. Static linking works on macOS Homebrew and MSYS2 UCRT64; on Fedora and Debian/Ubuntu it falls back to dynamic linking (libcurl required on the target machine).

The binary is small (~80–100 KB dynamically linked, ~3-5 MB statically).