# $Id: PKGBUILD 145182 2015-10-28 11:56:55Z fyan $
# Maintainer: Felix Yan <felixonmars@archlinux.org>

pkgname=ponyc
pkgver=0.2.1.20151021
_commit=b1a312cfc487713758ceccf1bf649f1f64f0f9ed
pkgrel=1
pkgdesc='An actor model, capabilities, high performance programming language'
url='http://ponylang.org/'
arch=('x86_64')
license=('BSD')
depends=('zlib' 'ncurses' 'gcc-libs')
makedepends=('llvm' 'git')
checkdepends=('pcre2')
options=('!strip')
optdepends=('pcre2: Needed for the regex package.')
source=("git+https://github.com/CausalityLtd/ponyc.git#commit=$_commit")
sha512sums=('SKIP')

build() {
  cd ponyc
  make config=release prefix=/usr arch=x86-64

  mkdir docs
  build/release/ponyc packages/stdlib -rexpr -g -o docs
}

check() {
  cd ponyc
  make config=release prefix=/usr arch=x86-64 test
}

package() {
  cd ponyc
  # The makefile is very strange and requires almost as much post-correction
  # as to simply do the installation myself.  Even with patches to the
  # makefile to stop it attempting to symlink locations it has no business
  # touching.
  #make config=release prefix=/usr destdir="$pkgdir"/usr/lib/pony/"$pkgver" install

  install -Dm755 build/release/ponyc "$pkgdir"/usr/lib/pony/"$pkgver"/bin/ponyc
  install -Dm644 build/release/libponyrt.a "$pkgdir"/usr/lib/libponyrt.a
  install -Dm644 build/release/libponyc.a "$pkgdir"/usr/lib/libponyc.a
  install -Dm644 src/libponyrt/pony.h "$pkgdir"/usr/include/pony.h

  # Ponyc is designed to read its standard packages from the same directory.
  install -dm755 "$pkgdir"/usr/bin
  ln -sf /usr/lib/pony/"$pkgver"/bin/ponyc "$pkgdir"/usr/bin

  cp -dr --no-preserve=ownership packages "$pkgdir"/usr/lib/pony/"$pkgver"

  # Let's include the examples as documentation is scarce.
  install -dm755 "$pkgdir"/usr/share/doc/pony
  cp -dr --no-preserve=ownership examples "$pkgdir"/usr/share/doc/pony

  cp -dr docs/* "$pkgdir"/usr/share/doc/pony

  install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
}
