#!/bin/sh
# bin/cgo/zcc — CGO CC. Zig, not gcc.
# Go invokes CC with many args; a wrapper avoids spaces in $CC.
set -eu
ROOT="$(CDPATH= cd -- "$(dirname "$0")/../.." && pwd)"
case "$(uname -m)" in
  x86_64|amd64) TARGET=x86_64-linux-gnu ;;
  aarch64|arm64) TARGET=aarch64-linux-gnu ;;
  *)
    echo "zcc: unsupported arch $(uname -m)" >&2
    exit 2
    ;;
esac
if [ -n "${ZIG:-}" ] && [ -x "$ZIG" ]; then
  :
elif [ -x "$ROOT/var/zig/zig" ]; then
  ZIG="$ROOT/var/zig/zig"
elif command -v zig >/dev/null 2>&1; then
  ZIG="$(command -v zig)"
else
  echo "zcc: zig missing; run bin/cgo/zig first" >&2
  exit 127
fi
exec "$ZIG" cc -target "$TARGET" "$@"
