# $Id: PKGBUILD 128840 2015-03-06 20:59:30Z heftig $
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>

pkgbase=rubinius
pkgname=(rubinius rubinius-ruby)
pkgver=2.5.1
pkgrel=3
pkgdesc="Ruby runtime written in Ruby, designed for concurrency"
arch=(i686 x86_64)
url="http://rubini.us"
license=(custom)
depends=(llvm-libs libffi openssl libyaml)
makedepends=(llvm rubinius-ruby)
options=(!emptydirs)
source=(http://releases.rubini.us/${pkgbase}-${pkgver}.tar.bz2
        gemrc dirs.patch)
sha256sums=('00d6f23b7632d035d322209e736a9341155350a9d169e8471d38a554a8e26600'
            '4bb7eb2fe66e396ed16b589cdb656831407b39ad4e138d88536754c0448ac614'
            'a9922b199730c059c26781af45adc46401811ff2e6840c4aeb49da4fa41acdd9')

prepare() {
  export GEM_HOME="$srcdir/gemdir" LANG="en_US.UTF-8"
  cd $pkgbase-$pkgver

  patch -Np1 -i ../dirs.patch

  mkdir -p "$GEM_HOME"
  gem install --no-user-install -N vendor/cache/bundler-*.gem

  "$GEM_HOME/bin/bundle" install --local
}

build() {
  export GEM_HOME="$srcdir/gemdir" LANG="en_US.UTF-8"
  cd $pkgbase-$pkgver

  ./configure --prefix=/usr \
    --mandir=/usr/share/man \
    --includedir=/usr/include/rubinius \
    --appdir=/usr/lib/rubinius \
    --gemsdir=/usr/lib/rubinius/gems \
    --preserve-prefix \
    --without-rpath \
    --bin-link bundle --bin-link bundler
  rake build
}

check() {
  export GEM_HOME="$srcdir/gemdir" LANG="en_US.UTF-8"
  cd $pkgbase-$pkgver

  rake vm:test || :
}

package_rubinius() {
  optdepends=('ruby-docs: Ruby documentation')

  export GEM_HOME="$srcdir/gemdir" LANG="en_US.UTF-8"
  cd $pkgbase-$pkgver

  DESTDIR="$pkgdir" rake install

  mkdir -p "$pkgdir/usr/share/ri"
  ln -s 2.1.0 "$pkgdir/usr/share/ri/2.1"

  install -Dm644 LICENSE "$pkgdir/usr/share/licenses/rubinius/LICENSE"

### Split rubinius-ruby
  mkdir -p "$srcdir/ruby/usr/bin"
  for _f in "$pkgdir"/usr/bin/*; do
    [[ $_f == */rbx ]] && continue
    mv $_f "$srcdir/ruby/usr/bin"
  done
}

package_rubinius-ruby() {
  pkgdesc="Ruby compat for Rubinius"
  depends=("rubinius=$pkgver-$pkgrel")
  provides=(ruby)
  conflicts=(ruby)
  backup=(etc/gemrc)

  mv ruby/* "$pkgdir"
  install -Dm644 gemrc "$pkgdir/etc/gemrc"
  install -d "$pkgdir/usr/share/licenses/rubinius-ruby"
  ln -s ../rubinius/LICENSE "$pkgdir/usr/share/licenses/rubinius-ruby/LICENSE"
}
