#!/bin/bash

# Baut und installiert die SDL3.0 Librays. 
# Mit den Modulen TTF, RTF, MIXER und Image.
# Wird kein Parameter übergeben, werden die Pakete in "/tmp/sdl" gebaut.

echo "Build SDL"

set -euo pipefail

SDL_LIB_SRC=(
    "https://github.com/libsdl-org/SDL.git sdl_modul"
#    "https://github.com/libsdl-org/sdl2-compat.git sdl_modul"
    "https://github.com/libsdl-org/SDL_ttf.git sdl_modul"
    "https://github.com/libsdl-org/SDL_rtf.git sdl_modul"
    "https://github.com/libsdl-org/SDL_mixer.git sdl_modul"
    "https://github.com/libsdl-org/SDL_image.git sdl_modul"
    "https://github.com/libsdl-org/SDL_net.git sdl_modul"
)

if [ $# -eq 0 ]; then
  BUILD_ROOT="/tmp/sdl"
else
  BUILD_ROOT=${1%/}
fi

LINE="==================================================="
SDL_DIR=$BUILD_ROOT
BUILD_DIR=$BUILD_ROOT"/build"
SDL_MODUL="sdl_modul"
SDL_MODUL_DIR="/tmp/sdl/"$SDL_MODUL
ARCHLINUX_PACMAN="/usr/bin/pacman"
ARCHLINUX_SDL_LIB_CFG="/etc/ld.so.conf.d/libsdl3-0.conf"

cleanup()
{
  cd $SDL_DIR
  if [ -d $SDL_MODUL_DIR ]; then
    sudo rm -r $SDL_MODUL_DIR
  fi

  if [ -d $BUILD_DIR ]; then
    sudo rm -r $BUILD_DIR
  fi
}

if [ ! -d $SDL_DIR ]; then
  mkdir -p $SDL_DIR
fi

cd $SDL_DIR

typeset -i i=0 max=${#SDL_LIB_SRC[*]}
while (( i < max ))
do
  cleanup
  echo $LINE
  echo "BUILD "${SDL_LIB_SRC[$i]}
  echo $LINE 
  git clone ${SDL_LIB_SRC[$i]}
  if [ ! -d $BUILD_DIR ]; then
    mkdir -p $BUILD_DIR
  fi

  cd $BUILD_DIR
  cmake "../"$SDL_MODUL
  make -j16
  sudo make install
  cleanup
  echo
  i=i+1
done

if [ -f "$ARCHLINUX_PACMAN" ]; then 
  if [ ! -f "$ARCHLINUX_SDL_LIB_CFG" ]; then 
    echo "Ist wohl ArchLinux"
    echo "Lib Suchpfad hinzufügen"
    echo "/usr/local/lib" | sudo tee $ARCHLINUX_SDL_LIB_CFG
    sudo sudo ldconfig
  fi
fi
