#!/bin/bash set -e echo "========================================" echo " RFCP GPU Build — ONEDIR mode" echo " CuPy-cuda13x + CUDA Toolkit 13.x" echo "========================================" echo "" SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" BACKEND_DIR="$SCRIPT_DIR/../backend" # Check backend exists if [ ! -f "$BACKEND_DIR/run_server.py" ]; then echo "ERROR: Backend not found at $BACKEND_DIR" exit 1 fi # Check Python echo "[1/5] Checking Python..." python3 --version || { echo "ERROR: Python3 not found"; exit 1; } # Check CuPy echo "" echo "[2/5] Checking CuPy installation..." if ! python3 -c "import cupy; print(f' CuPy {cupy.__version__}')" 2>/dev/null; then echo "ERROR: CuPy not installed" echo "" echo "Install CuPy:" echo " pip3 install cupy-cuda13x" echo " # or for WSL2:" echo " pip3 install cupy-cuda13x --break-system-packages" exit 1 fi # Check GPU compute echo "" echo "[3/5] Testing GPU compute..." if python3 -c "import cupy; a = cupy.array([1,2,3]); assert a.sum() == 6; print(' GPU compute: OK')" 2>/dev/null; then : else echo "WARNING: GPU compute test failed (may still work)" fi # Check CUDA echo "" echo "[4/5] Checking CUDA..." if [ -n "$CUDA_PATH" ]; then echo " CUDA_PATH: $CUDA_PATH" else echo " CUDA_PATH not set (relying on nvidia pip packages)" fi # Check nvidia pip packages echo "" echo "[5/5] Checking nvidia pip packages..." python3 -c "import nvidia; print(' nvidia packages found')" 2>/dev/null || echo " No nvidia pip packages" # Build echo "" echo "Building rfcp-server (ONEDIR mode)..." echo "" cd "$BACKEND_DIR" pyinstaller "$SCRIPT_DIR/rfcp-server-gpu.spec" --clean --noconfirm echo "" echo "========================================" if [ -f "dist/rfcp-server/rfcp-server" ] || [ -f "dist/rfcp-server/rfcp-server.exe" ]; then echo " BUILD COMPLETE! (ONEDIR mode)" echo "" echo " Output: backend/dist/rfcp-server/" ls -lh dist/rfcp-server/ | head -20 echo "" echo " Test:" echo " cd dist/rfcp-server" echo " ./rfcp-server" echo " curl http://localhost:8090/api/health" echo "========================================" else echo " BUILD FAILED — check errors above" echo "========================================" exit 1 fi