#!/bin/sh

PRGNAM=ppsspp
VERSION=1.19.3
BUILD=1
case "$(uname -m)" in
  x86_64) ARCH=amd64 ;;
  aarch64) ARCH=arm64 ;;
  *) exit 1
esac

HOMEPAGE="https://www.ppsspp.org/"
REPO="https://github.com/hrydgard/${PRGNAM}.git"

MAINTAINER="Gernot Walzl"
EMAIL="gernot.walzl@gmx.at"
DATE="2025-12-22"

DESC="PSP emulator
 PPSSPP can run your PSP games on your PC in full HD resolution
 or even higher."


# set initial variables
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

# exit on error
set -e

# setup the environment
sudo apt-get install \
  build-essential \
  cmake \
  git \
  libgl1-mesa-dev \
  libsdl2-dev \
  libvulkan-dev

# setup the project
if [ ! -d "$PRGNAM" ]; then
  git clone "$REPO"
fi
cd "$PRGNAM"
git fetch
git checkout "v${VERSION}"
git submodule update --init --recursive

# build
cd "$TMP" || exit 1
mkdir "${PRGNAM}_build" || true
cd "${PRGNAM}_build"
cmake \
  -DCMAKE_INSTALL_PREFIX=/usr \
  "$CWD/$PRGNAM"
make -j "$(nproc)"

# install
rm -rf "$PKG"
mkdir -p "$PKG/usr/share/doc/$PRGNAM"
make install/strip DESTDIR="$PKG"

# copy build script
cat "$CWD/$0" > "$PKG/usr/share/doc/$PRGNAM/$PRGNAM.DebBuild"

# changelog
cat > "$PKG/usr/share/doc/$PRGNAM/changelog.Debian" <<EOF
$PRGNAM ($VERSION-$BUILD) unstable; urgency=medium

  * Created a Debian package.

 -- $MAINTAINER <$EMAIL>  $(date -d$DATE -R)
EOF
gzip -n9 "$PKG/usr/share/doc/$PRGNAM/changelog.Debian"

# copyright
cat > "$PKG/usr/share/doc/$PRGNAM/copyright" <<EOF
Files: *
Copyright: 2012-2023, Henrik Rydgård
License: GPL-2+
EOF

# DEBIAN/control
mkdir -p "$PKG/DEBIAN"
cat > "$PKG/DEBIAN/control" <<EOF
Package: $PRGNAM
Version: $VERSION-$BUILD
Section: games
Priority: optional
Architecture: $ARCH
Depends: libc6, libgl1, libsdl2-2.0-0, libvulkan1
Installed-Size: $(du -s "$PKG" | cut -f1)
Maintainer: $MAINTAINER <$EMAIL>
Description: $DESC
Homepage: $HOMEPAGE
EOF

# DEBIAN/md5sums
cd "$PKG"
find . -type d -name 'DEBIAN' -prune -o -type f -printf '%P\0' \
  | sort -z | xargs -0 md5sum \
  > "$PKG/DEBIAN/md5sums"

# build a deb
cd "$TMP"
fakeroot dpkg-deb -b "$PKG" "$OUTPUT"

# clean
cd "$CWD"
rm -rf "$PKG"
rm -rf "$TMP/${PRGNAM}_build"
