# Maintainer: Alexander F. Rødseth <xyproto@archlinux.org>
# Contributor: Kaiting Chen <kaitocracy@gmail.com>
# Contributor: mrshpot <mrshpot at gmail dot com>
# Contributor: Michael Fellinger <m.fellinger@gmail.com>

pkgname=smalltalk
pkgver=3.2.91
pkgrel=9
pkgdesc='GNU Smalltalk interpreter and libraries'
url='http://smalltalk.gnu.org/'
license=(GPL LGPL)
arch=(x86_64)
options=('!emptydirs' staticlibs)
depends=(gmp libffi libltdl libsigsegv)
makedepends=(gdbm git gmp gtk3 sqlite tk zip)
# Use latest commit where "make check" works. Found by using "git bisect".
source=("git://git.sv.gnu.org/smalltalk.git#commit=edb6bad6950c787f4b4c7f8ac5f7047ac1e8b984")
sha256sums=('SKIP')
optdepends=('gtk3: GUI toolkit'
            'sqlite: database in a file'
            'tk: for gst-blox')

prepare() {
  cd $pkgname
  autoreconf -iv
  sed 's/int yylineno = 1;//g' -i libgst/gen{bc,pr,vm}-scan.l
  sed '/XML-Expat/d' -i tests/testsuite.at
}

build() {
  cd $pkgname
  export CFLAGS="$CFLAGS -Wl,--allow-multiple-definition -w"
  ./configure \
    --enable-gtk=yes \
    --libexecdir=/usr/lib/smalltalk \
    --prefix=/usr \
    --with-imagedir=/var/lib/smalltalk \
    --with-readline \
    --with-system-libffi \
    --with-system-libsigsegv \
    --with-tk \
    --with-tcl \
    --with-x \
    --without-emacs
  echo '#define USE_INTERP_RESULT 1' >> config.h
  make -j1
}

check() {
  make -C $pkgname check -j1
}

package() {
  cd $pkgname
  make DESTDIR="$pkgdir" install
  # Fix manpage symlink
  rm -f "$pkgdir/usr/share/man/man1/gst-reload.1"
  ln -s gst-load.1 "$pkgdir/usr/share/man/man1/gst-reload.1"
}
