# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
# Maintainer (Arch): Andrea Scarpino <andrea@archlinux.org>
# Contributor: George Giorgidze <giorgidze (at) gmail.com>
# Contributor: Stefan Husmann <stefan-husmann@t-online.de>

pkgbase=antlr2
pkgname=(antlr2 antlr2-{java,python2,cxx,sharp})
pkgver=2.7.7
pkgdesc="Another Tool for Language Recognition"
url="http://www.antlr2.org/"
license=('custom:Public Domain')

pkgrel=6
arch=('i686' 'x86_64')
options=('staticlibs')
makedepends=('java-environment' 'python2' 'sh' 'nant' 'jh')

source=("http://www.antlr2.org/download/antlr-${pkgver}.tar.gz"
	"http://repo.maven.apache.org/maven2/antlr/antlr/$pkgver/antlr-$pkgver.pom"
	'runantlr2.sh' 'gcc4.4.patch' 'mono.patch')
md5sums=('01cc9a2a454dd33dcd8c856ec89af090'
         '78af3de823003f6d8dded39c70bc30ae'
         '78e9bf86bd44722f232f80bc7b04dcfe'
         '158677e4c0f357afbb56656231a54815'
         '0d1960d27ff81f2fea0dd35a8290216f')

prepare() {
  cd "${srcdir}/antlr-${pkgver}"
  patch -Np1 -i "${srcdir}"/gcc4.4.patch
  patch -Np1 -i "${srcdir}"/mono.patch
}

build() {
  cd "${srcdir}/antlr-${pkgver}"

  ./configure --prefix=/usr --disable-examples
  make -j1

  cd lib/csharp
  nant release
}

_install_license() {
  install -Dm644 "$srcdir"/antlr-${pkgver}/LICENSE.txt \
    "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}

package_antlr2() {
  depends=('sh' 'antlr2-java')

  install -Dm755 "$srcdir"/runantlr2.sh "$pkgdir"/usr/bin/runantlr2
  _install_license
}

package_antlr2-java() {
  pkgdesc+=" (Java version)"
  depends=('java-runtime')

  provides=("java-antlr2=$pkgver")
  conflicts=("java-antlr2")
  replaces=("java-antlr2")

  DESTDIR="$pkgdir" jh mvn-install antlr antlr $pkgver \
    "$srcdir"/antlr-${pkgver}.pom \
    "$srcdir"/antlr-${pkgver}/antlr/antlr.jar \
    antlr2.jar

  _install_license
}

package_antlr2-python2() {
  pkgdesc+=" (Python version)"
  depends=('python2')

  provides=("python2-antlr2=$pkgver")
  conflicts=("python2-antlr2")
  replaces=("python2-antlr2")

  cd "$srcdir"/antlr-${pkgver}/lib/python
  python2 setup.py install --root="${pkgdir}" --optimize=1

  _install_license
}

package_antlr2-cxx() {
  pkgdesc+=" (C++ version)"

  cd "$srcdir"/antlr-${pkgver}/lib/cpp
  make -j1 prefix="${pkgdir}/usr" install

  _install_license
}

package_antlr2-sharp() {
  pkgdesc+=" (C Sharp version)"
  depends=('mono')

  cd "$srcdir"/antlr-${pkgver}/lib/csharp
  install -d "$pkgdir"/usr/share
  make -j1 prefix="${pkgdir}/usr" install

  _install_license
}