#!/usr/bin/env bash # this is for my mac set -e BUILD_DIR="build" echo "๐Ÿงน Cleaning up old builds..." rm -rf "$BUILD_DIR" .zig-cache mkdir -p "$BUILD_DIR" mkdir -p "$BUILD_DIR/Linux(x86_64)" mkdir -p "$BUILD_DIR/Windows(x86_64)" mkdir -p "$BUILD_DIR/Windows(ARM64)" mkdir -p "$BUILD_DIR/MacOS(Silicon)" mkdir -p "$BUILD_DIR/MacOS(Intel)" echo "๐Ÿš€ Starting multi-platform compilation matrix..." echo "--------------------------------------------------------" # ๐Ÿง Build Linux binary using native GCC inside an Ubuntu Docker container echo "๐Ÿ“ฆ Building for Linux (x86_64) via GCC in Docker..." docker run --rm \ -v "$(pwd)":/src \ -w /src \ ubuntu:22.04 sh -c " apt-get update && apt-get install -y gcc xorg-dev libgl1-mesa-dev libopenal-dev libcurl4-gnutls-dev # Include the raylib source files explicitly and fix output name to wrldbox_linux gcc -O2 -Wall \ src/main.c src/world.c src/player.c src/physics.c src/render.c src/collision.c \ raylib_src/src/rcore.c raylib_src/src/rshapes.c raylib_src/src/rtextures.c \ raylib_src/src/rtext.c raylib_src/src/rmodels.c raylib_src/src/raudio.c raylib_src/src/rglfw.c \ -Iinclude -Iraylib_src/src -Iraylib_src/src/external/glfw/include \ -D_GNU_SOURCE -DPLATFORM_DESKTOP -D_GLFW_X11 \ -lX11 -lGL -lm -lpthread -ldl -lrt \ -o wrldbox_linux " mv wrldbox_linux "$BUILD_DIR/Linux(x86_64)/wrldbox_linux_x86_64" # ๐ŸชŸ Build Windows binaries natively on your Mac using build.zig echo "๐Ÿ“ฆ Building for Windows (x86_64)..." zig build -Dtarget=x86_64-windows -Doptimize=ReleaseFast mv zig-out/bin/wrldbox.exe "$BUILD_DIR/Windows(x86_64)/wrldbox_win_x86_64.exe" echo "๐Ÿ“ฆ Building for Windows (ARM64)..." zig build -Dtarget=aarch64-windows -Doptimize=ReleaseFast mv zig-out/bin/wrldbox.exe "$BUILD_DIR/Windows(ARM64)/wrldbox_win_arm64.exe" # ๐Ÿ Build macOS binaries natively on your Mac using build.zig echo "๐Ÿ“ฆ Building for macOS (Apple Silicon)..." gcc src/*.c -o wrldboxMacOS \ -I/opt/homebrew/include \ -L/opt/homebrew/lib \ -lraylib \ -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo mv wrldboxMacOS "$BUILD_DIR/MacOS(Silicon)/wrldbox_mac_arm64" echo "๐Ÿ“ฆ Building for macOS (Intel)..." zig build -Dtarget=x86_64-macos -Doptimize=ReleaseFast mv zig-out/bin/wrldbox "$BUILD_DIR/MacOS(Intel)/wrldbox_mac_x86_64" rm -rf zig-out echo "--------------------------------------------------------" echo "โœ… Done! All targets generated safely inside /$BUILD_DIR/"