# -*- 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           cmake 1.1

name                newmat
version             11
revision            0
categories          math
license             Restrictive
maintainers         nomaintainer

description         This C++ library is intended for scientists and engineers who need \
                    to manipulate a variety of types of matrices using standard matrix operations.
long_description    This C++ library is intended for scientists and engineers who need \
                    to manipulate a variety of types of matrices using standard matrix operations. \
                    Emphasis is on the kind of operations needed in statistical calculations \
                    such as least squares, linear equation solve and eigenvalues. \
                    It supports matrix types, e.g., Matrix (rectangular matrix), UpperTriangularMatrix, \
                    LowerTriangularMatrix, DiagonalMatrix, SymmetricMatrix, BandMatrix, UpperBandMatrix, \
                    LowerBandMatrix, SymmetricBandMatrix, IdentityMatrix, RowVector, ColumnVector.

homepage            http://www.robertnz.net/nm11.htm
master_sites        http://www.robertnz.net/ftp/
distname            ${name}${version}

checksums           rmd160  f391ba5e97edfbf1394e8626a47416cff6cf5902 \
                    sha256  daf313a4db0db14dfcce236ad3cdc514d449e62ddd4f1b07cc31179b0787db6f \
                    size    247137

# Error: Failed to activate newmat: Image error: /opt/local/lib/libnewmat.a is being used by the active optpp port.
conflicts           optpp

# Build with clang fails with:
# newmat6.cpp:431:13: error: ordered comparison between pointer and zero ('int *' and 'int')
patchfiles          patch-newmat6.diff
# This is needed to support a fix for clang build. Otherwise gcc-4.2 builds it without C++11.
compiler.cxx_standard 2011

configure.cxxflags-append -Duse_namespace

extract.mkdir       yes

pre-configure {
    file copy ${filespath}/CMakeLists.txt ${worksrcpath}
}

livecheck.type      regex
livecheck.url       ${homepage}/download.html
livecheck.regex     {newmat([0-9.]+).tar.gz.*}
