#!/bin/bash # Quick build script - builds for all supported hardware targets set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" BUILD_TYPE="${1:-iso}" echo "🏗️ Building Archipelago for all supported hardware" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" # Array of hardware targets TARGETS=( "start9-pure:Start9 Server Pure" "hp-prodesk:HP ProDesk 400 G4 DM" "dell-optiplex:Dell OptiPlex" "generic:Generic x86_64" ) SUCCESS_COUNT=0 FAIL_COUNT=0 FAILED_TARGETS=() # Build for each target for target_info in "${TARGETS[@]}"; do IFS=':' read -r target_name target_desc <<< "$target_info" echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "🔨 Building for: $target_desc" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" if "$SCRIPT_DIR/build-for-hardware.sh" "$target_name" "$BUILD_TYPE"; then echo "✅ $target_desc build succeeded" ((SUCCESS_COUNT++)) else echo "❌ $target_desc build failed" ((FAIL_COUNT++)) FAILED_TARGETS+=("$target_desc") fi done # Summary echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "📊 Build Summary" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo " Successful: $SUCCESS_COUNT" echo " Failed: $FAIL_COUNT" if [ $FAIL_COUNT -gt 0 ]; then echo "" echo "Failed builds:" for target in "${FAILED_TARGETS[@]}"; do echo " - $target" done fi echo "" echo "📦 Build output: $SCRIPT_DIR/results/" ls -lh "$SCRIPT_DIR/results/"*.iso 2>/dev/null || echo " (no ISOs found)" echo "" if [ $FAIL_COUNT -eq 0 ]; then echo "✅ All builds completed successfully!" exit 0 else echo "⚠️ Some builds failed. Check logs above." exit 1 fi