# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

PortSystem              1.0
PortGroup               linear_algebra 1.0
PortGroup               luarocks_org 1.0

name                    lua-numlua
version                 0.3
revision                16
luarocks.rock           numlua-${version}-1.src.rock
categories-append       math
license                 MIT
maintainers             nomaintainer

description             numerical routines for Lua
long_description        Numeric Lua is a numerical package for the Lua programming language.

checksums               rmd160  988975d312d0aa84041fbdfae2911af5221e7d50 \
                        sha256  c9f05a76931026022d9e6367bddcc3bd33c2598e87a695bc76496e6acca2f048 \
                        size    234203

linalg.setup            noveclibfort

luarocks.worksrcdir     numlua-${version}

patchfiles-append       patch-hdf_compat.diff

depends_lib-append      port:hdf5 \
                        port:fftw-3

post-extract {
    # rockspec file searches for LAPACK via -lblas
    xinstall -d -m 0755 ${worksrcpath}/blas
    if {[variant_isset accelerate]} {
        # do nothing since -lblas will find Accelerate framework
    } else {
        # trick linker so that -lblas finds the desired library
        ln -s           ${prefix}/lib/lib[string range ${linalglib} 2 end].dylib \
                        ${worksrcpath}/blas/libblas.dylib
    }
}

# see https://www.lua.org/manual/5.3/manual.html#8.3
configure.cflags-append -DLUA_COMPAT_APIINTCASTS

destroot.args-append    FFTW3_INCDIR=${prefix}/include \
                        HDF5_INCDIR=${prefix}/include \
                        FFTW3_LIBDIR=${prefix}/lib \
                        HDF5_LIBDIR=${prefix}/lib \
                        LAPACK_LIBDIR=${worksrcpath}/blas

luarocks.uploader       luarocks
