#!/bin/bash # Build script for all pi calculation programs # This script calls build.sh for each language SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" cd "$SCRIPT_DIR" echo "=== Building all pi calculation programs ===" echo "" # Colors for output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Track success/failure BUILD_SUCCESS=0 BUILD_FAILED=0 # Function to print success message print_success() { echo -e "${GREEN}✓${NC} $1 built successfully" BUILD_SUCCESS=$((BUILD_SUCCESS + 1)) } # Function to print error message print_error() { echo -e "${RED}✗${NC} $1 build failed" BUILD_FAILED=$((BUILD_FAILED + 1)) } # Function to print warning message print_warning() { echo -e "${YELLOW}⚠${NC} $1" } # List of all languages LANGUAGES="bash brainfuck c cpp crystal csharp d dart elixir erlang fortran go haskell java javascript julia kotlin objective-c scala typescript lua nim odin perl php python r ruby rust swift zig assembly wolfram vimscript" # Build each language for lang in $LANGUAGES; do echo "=== $lang ===" if [ -f "$lang/cmd/build.sh" ]; then cd "$lang" if cmd/build.sh 2>&1; then print_success "$lang" else print_error "$lang" fi cd "$SCRIPT_DIR" else print_error "$lang/cmd/build.sh not found" fi echo "" done echo "=== Build Summary ===" echo -e "Successful: ${GREEN}$BUILD_SUCCESS${NC}" echo -e "Failed: ${RED}$BUILD_FAILED${NC}" if [ $BUILD_FAILED -eq 0 ]; then echo -e "${GREEN}✓ All builds completed successfully!${NC}" exit 0 else echo -e "${RED}✗ Some builds failed${NC}" exit 1 fi # ============================================ # Bash (no compilation needed) # ============================================