# 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=7
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' 'gtk2' 'sqlite' 'tk' 'zip')
# Use latest commit where "make check" works. Found with git bisect:
source=("git://git.sv.gnu.org/smalltalk.git#commit=edb6bad6950c787f4b4c7f8ac5f7047ac1e8b984")
#source=("git://git.sv.gnu.org/smalltalk.git#tag=$pkgver")
md5sums=('SKIP')
optdepends=('tk: for gst-blox'
            'sqlite: database in a file'
            'gtk2: GUI toolkit')

prepare() {
  cd "$pkgname"

  autoreconf -vi
  sed 's/int yylineno = 1;//g' -i libgst/genpr-scan.l
  sed 's/int yylineno = 1;//g' -i libgst/genvm-scan.l
  sed 's/int yylineno = 1;//g' -i libgst/genbc-scan.l

  sed '/XML-Expat/d' -i tests/testsuite.at
}

build() {
  cd "$pkgname"

  export CFLAGS="$CFLAGS -w"

  ./configure \
    --prefix=/usr \
    --libexecdir=/usr/lib/smalltalk \
    --with-imagedir=/var/lib/smalltalk \
    --enable-gtk=yes \
    --with-readline \
    --with-tcl \
    --with-x \
    --without-emacs \
    --with-tk \
    --with-system-libffi \
    --with-system-libsigsegv

  echo '#define USE_INTERP_RESULT 1' >> config.h
  make -j1
}

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

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"
}

# vim: ts=2 sw=2 et:
