#!/bin/sh # Koh's four release targets use the pinned V compiler; Linux binaries are static musl builds. set -eu [ "$(v version)" = 'V 0.5.2 b9a2d87' ] || { echo 'Koh requires V 0.5.2 b9a2d87' >&2; exit 1; } target=${KOH_TARGET:-macos-aarch64} mkdir -p build/releases case "$target" in macos-aarch64|macos-x86_64) [ "$(uname -s)" = Darwin ] || { echo 'macOS releases require the Apple SDK on macOS' >&2; exit 1; } case "$target" in macos-aarch64) arch=arm64; cpu=arm64 ;; *) arch=x64; cpu=x86_64 ;; esac v -prod -d use_bundled_libgc -arch "$arch" -cflags "-arch $cpu -mmacosx-version-min=11.0" -o "build/releases/koh-$target" src/koh.v codesign -f -s - "build/releases/koh-$target" ;; linux-aarch64|linux-x86_64) command -v zig >/dev/null 2>&1 || { echo 'Linux cross builds require Zig on PATH' >&2; exit 1; } case "$target" in linux-aarch64) arch=arm64; triple=aarch64-linux-musl ;; *) arch=x64; triple=x86_64-linux-musl ;; esac compiler="$PWD/build/cc-$target" printf '#!/bin/sh\nexec zig cc -target %s "$@"\n' "$triple" > "$compiler" chmod 755 "$compiler" v -prod -d use_bundled_libgc -os linux -arch "$arch" -musl -cc "$compiler" -ldflags "-s" -o "build/releases/koh-$target" src/koh.v ;; *) echo "unsupported release target: $target" >&2; exit 1 ;; esac