Building about

Native

Any C11 compiler:

make
./about

Cosmopolitan APE

Downloads https://cosmo.zip/pub/cosmocc/cosmocc.zip into .cosmocc/ (gitignored via allow-list — the directory is simply not tracked):

make ape
./about.com

WSL note

WSL registers a WSLInterop binfmt that sends MZ headers to Windows. Cosmopolitan APE binaries also start with MZ, so the toolchain can mis-detect WIN32. Before make ape inside WSL:

sudo sh -c 'echo -1 > /proc/sys/fs/binfmt_misc/WSLInterop'
make ape COSMOCC_FLAGS=-m64

CI builds APE on Ubuntu runners (not WSL), where this is not an issue.

Optional: assimilate

If spawn of cc1 fails without binfmt, scripts/assimilate-cosmocc.sh can rewrite cosmocc tools to native ELF on the build host only.

CI

  • .github/workflows/ci.yml — native + APE smoke on every push/PR

  • .github/workflows/release.yml — on v* tags, publish universal .com / .exe + SHA256SUMS