# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Arch Haskell Team <arch-haskell@haskell.org>

pkgname=tamarin-prover
pkgver=1.6.0
pkgrel=224
pkgdesc="The Tamarin prover for security protocol analysis"
url="https://tamarin-prover.github.io"
license=("GPL")
arch=('x86_64')
depends=('ghc-libs' 'graphviz' 'maude' 'haskell-hunit' 'haskell-binary-orphans' 'haskell-binary-instances'
         'haskell-blaze-builder' 'haskell-blaze-html' 'haskell-cmdargs' 'haskell-conduit'
         'haskell-fclabels' 'haskell-file-embed' 'haskell-gitrev' 'haskell-http-types'
         'haskell-lifted-base' 'haskell-monad-unlift' 'haskell-resourcet' 'haskell-safe'
         'haskell-shakespeare' 'haskell-threads' 'haskell-wai' 'haskell-warp' 'haskell-yesod-core'
         'haskell-yesod-static' 'haskell-tamarin-prover-utils' 'haskell-tamarin-prover-term'
         'haskell-tamarin-prover-theory' 'haskell-tamarin-prover-sapic')
optdepends=('ocaml: for sapic support')
makedepends=('ghc' 'ocaml>=4.11.0')
source=("tamarin-prover-$pkgver.tar.gz::https://github.com/tamarin-prover/tamarin-prover/archive/$pkgver.tar.gz"
        maude-3.1.patch)
sha512sums=('7f3569f740d63d715b92a8f073eaecb8b32efe59b910b246977d36bb9e873765440e72feb6e76c7cbafab0495b88cfc666bb1dd12f685627c60d5cbd97b2973e'
            '1ef5e4c370a0c5f5541d50600604ba7adc566c2f5cf415cdb844842bb10b343edd00aa5aa654f8e55355c80f48a34382c87c3fba4adca0c77e726f407f3815c3')

prepare() {
    cd $pkgname-$pkgver
    patch -p1 -i ../maude-3.1.patch
    sed -i '/cp sapic/d' plugins/sapic/Makefile
}

build() {
    cd $pkgname-$pkgver

    runhaskell Setup configure -O --enable-executable-dynamic --prefix=/usr \
        --docdir="/usr/share/doc/${pkgname}" --datasubdir="$pkgname" \
            -fthreaded -ftest-coverage -f-build-tests --ghc-option='-pie'
    runhaskell Setup build $MAKEFLAGS

    cd plugins/sapic
    make -j1
}

check() {
    cd $pkgname-$pkgver
    LD_LIBRARY_PATH="$PWD"/dist/build dist/build/tamarin-prover/tamarin-prover test
}

package() {
    cd $pkgname-$pkgver
    runhaskell Setup copy --destdir="${pkgdir}"

    install -Dm644 etc/filetype.vim "$pkgdir"/usr/share/vim/vimfiles/ftdetect/tamarin.vim
    install -Dm644 etc/syntax/spthy.vim "$pkgdir"/usr/share/vim/vimfiles/syntax/spthy.vim
    ln -s spthy.vim "$pkgdir"/usr/share/vim/vimfiles/syntax/sapic.vim

    cd plugins/sapic
    install -Dm755 sapic "$pkgdir"/usr/bin/sapic
}
