# Maintainer: Christoph Reiter <reiter.christoph@gmail.com>

_bootstrap=1

_realname=sbcl
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=2.6.0
pkgrel=2
pkgdesc="Steel Bank Common Lisp (mingw-w64)"
url="https://www.sbcl.org/"
msys2_repository_url="https://sourceforge.net/p/sbcl/sbcl"
msys2_changelog_url="https://sourceforge.net/p/sbcl/sbcl/ci/master/tree/NEWS"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64')
license=('custom')
depends=("${MINGW_PACKAGE_PREFIX}-zstd")
source=("https://downloads.sourceforge.net/project/sbcl/sbcl/${pkgver}/${_realname}-${pkgver}-source.tar.bz2"
        "001-clang-ffs.patch")
sha256sums=('0a4bd5b01c88e6b45c2f059605d2728ab9377a6529b2ea622a7abb5ba2d691c6'
            '0aa138f67c5659b2b7aac1a6b5759ac98bb48c8f92d9c09750ac7e7104f52ef2')
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
              $([[ ${MINGW_PACKAGE_PREFIX} != *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-gcc-compat"))

if (( _bootstrap )); then
  makedepends+=("${MINGW_PACKAGE_PREFIX}-msitools")
  source+=("https://downloads.sourceforge.net/project/sbcl/sbcl/${pkgver}/${_realname}-${pkgver}-x86-64-windows-binary.msi")
  sha256sums+=('76f886db37ce70c2f29e46705c544971eeafa484f409c5b51c85a36aee015088')
else
  makedepends+=("${MINGW_PACKAGE_PREFIX}-sbcl")
fi

apply_patch_with_msg() {
  for _patch in "$@"
  do
    msg2 "Applying ${_patch}"
    patch -Nbp1 -i "${srcdir}/${_patch}"
  done
}

prepare() {
  cd ${_realname}-${pkgver}

  apply_patch_with_msg \
    001-clang-ffs.patch
}

build() {
  cd "${_realname}-${pkgver}"

  if (( _bootstrap )); then
    mkdir -p "${srcdir}/sbcl-bootstrap"
    cd "${srcdir}/sbcl-bootstrap"
    msiextract "${srcdir}/${_realname}-${pkgver}-x86-64-windows-binary.msi"
    export PATH="${srcdir}/sbcl-bootstrap/PFiles/Steel Bank Common Lisp:${PATH}"
    cd "${srcdir}/${_realname}-${pkgver}"
  fi

  export LINKFLAGS="${LDFLAGS}"
  ./make.sh sbcl --prefix="${MINGW_PREFIX}" --fancy
}

package() {
  cd "${_realname}-${pkgver}"

  INSTALL_ROOT="${pkgdir}${MINGW_PREFIX}" ./install.sh

  install -D -m644 "${srcdir}/${_realname}-${pkgver}/COPYING" \
                   "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING"
}
