#!/usr/bin/env bash # scripts/build-prod.sh # Production build of llama.cpp (Release + LTO, RTX 3070 target). set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ROOT="$SCRIPT_DIR/.." VENDOR="$ROOT/vendor/llama.cpp" BUILD_DIR="$VENDOR/build-prod" if [ ! -f "$VENDOR/CMakeLists.txt" ]; then echo "[ERROR] vendor/llama.cpp not initialised." echo " Run: git submodule update --init --recursive" exit 1 fi echo "[INFO] Configuring llama.cpp (prod, CUDA cc86)..." cmake -S "$VENDOR" -B "$BUILD_DIR" \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=ON \ -DGGML_CUDA=ON \ -DCMAKE_CUDA_ARCHITECTURES=86 \ -DLLAMA_BUILD_TESTS=OFF \ -DLLAMA_BUILD_EXAMPLES=OFF \ -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON echo "[INFO] Building (prod)..." cmake --build "$BUILD_DIR" \ --parallel "$(nproc 2>/dev/null || echo 4)" \ --config Release echo "[OK] Prod build complete: $BUILD_DIR"