# -*- 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               github 1.0

name                    coinor-clp
version                 1.17.9
revision                0
categories              math

github.setup            coin-or clp ${version} releases/
# Change github.tarball_from to 'releases' or 'archive' next update
github.tarball_from     tarball

checksums               rmd160  037253a6f0e117acb8af78aaa042215556bbecb9 \
                        sha256  c553362b4fe82b9dc10e0cead782e39d9fbf734e63174eee1ab39c5f3b7b5bca \
                        size    2176272

maintainers             {@flyingsamson tuxcad.de:flyingsamson} openmaintainer
description             A solver for linear programs
long_description        Clp (Coin-or linear programming) is an open-source linear programming solver. \
                        \nIt is primarily meant to be used as a callable library, but a basic, stand-alone executable \
                        version is also available. It is designed to find solutions of mathematical optimization \
                        problems of the form \
                        \n\
                        \nminimize   c\'x \
                        \nsuch that  lhs <= Ax <= rhs \
                        \nand        lb  <=  x <= ub \
                        \n\
                        \nCLP includes primal and dual Simplex solvers. \
                        Both dual and primal algorithms can use matrix storage methods provided by the user (0-1 and \
                        network matrices are already supported in addition to the default sparse matrix). \
                        The dual algorithm has Dantzig and Steepest edge row pivot choices, new ones may be provided \
                        by the user. The same is true for the column pivot choice of the primal algorithm. \
                        The primal can also use a non linear cost which should work for piecewise linear convex \
                        functions. CLP also includes a barrier method for solving LPs.
license                 EPL-2

homepage                https://github.com/coin-or/clp

depends_build-append    port:pkgconfig
depends_lib-append      port:asl \
                        port:coinor-coinutils \
                        port:coinor-osi \
                        port:glpk \
                        port:mumps \
                        port:readline

patchfiles              wimplicit-function-declaration.diff

configure.env-append    PKG_CONFIG_PATH=${prefix}/lib/pkgconfig \
                        PKG_CONFIG=${prefix}/bin/pkg-config

variant openblas description {compile with OpenBLAS support} {
    depends_lib-append          path:lib/libopenblas.dylib:OpenBLAS
    pre-configure {
        configure.args-append   --with-blas-lib="-L${prefix}/lib -lopenblas -llapack"
    }
}
default_variants        +openblas
