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

name                    lp_solve
version                 5.5.2.11

set branch              [join [lrange [split ${version} .] 0 1] .]
categories              math
platforms               darwin
license                 LGPL
maintainers             {ryandesign @ryandesign} openmaintainer

homepage                http://lpsolve.sourceforge.net/${branch}/
master_sites            sourceforge:project/lpsolve/lpsolve/${version}

use_configure           no

if {${universal_possible} && [variant_isset universal]} {
    set merger_must_run_binaries yes
    foreach arch ${configure.universal_archs} {
        lappend merger_build_args(${arch}) \
                        CC="${configure.cc} -arch ${arch}" \
                        CXX="${configure.cxx} -arch ${arch}"
    }
} else {
    build.args-append   CC="${configure.cc} ${configure.cc_archflags}" \
                        CXX="${configure.cxx} ${configure.cxx_archflags}"
}

build.args-append       -f ${filespath}/Makefile \
                        CFLAGS="${configure.cflags}" \
                        CPPFLAGS="${configure.cppflags}" \
                        CXXFLAGS="${configure.cxxflags}" \
                        LDFLAGS="${configure.ldflags}" \
                        PREFIX="${prefix}"
destroot.args-append    {*}${build.args}

if {${subport} eq ${name}} {
    revision            0
    checksums           rmd160  2d73859035920ac10747807e21546f70e9b1c2ca \
                        sha256  6d4abff5cc6aaa933ae8e6c17a226df0fc0b671c438f69715d41d09fe81f902f \
                        size    556506

    description         Linear Programming Solver

    long_description    Mixed Integer Linear Programming (MILP) solver. \
                        lp_solve solves pure linear, (mixed) integer/binary, \
                        semi-continuous and special ordered sets (SOS) models.

    distname            ${name}_${version}_source
    worksrcdir          ${name}_${branch}

    post-extract {
        # Convert DOS to UNIX line endings so we can patch
        reinplace -W ${worksrcpath} "s|\r||g" \
                        configure \
                        lpsolve55/ccc.hp-ux
    }

    patchfiles          patch-Wno-long-double.diff \
                        patch-CC.diff \
                        patch-TMPDIR.diff \
                        patch-idirafter.diff \
                        patch-install_name.diff
}

subport ${name}_java {
    PortGroup           java 1.0

    revision            0
    checksums           rmd160  8c8ac00143ce0a0d8f8ca063f58a2bfb70b65f01 \
                        sha256  0a4dcd21e0c494f51b5de4e5e7bcd608c71bbab957e37ac776cba19808a2d6c9 \
                        size    471056

    description         Java library for Linear Programming Solver

    long_description    {*}${description}

    use_zip             yes
    distname            ${name}_${version}_java
    worksrcdir          ${name}_${branch}_java

    build.target        java
    destroot.target     installjava

    notes "
To run a class Foo in the current directory, use e.g.:

java -cp .:${prefix}/share/java/${name}/lpsolve55j.jar -Djava.library.path=${prefix}/lib Foo
"
}

if {${subport} eq ${name}} {
    livecheck.regex     ${name}_(\[0-9.\]+)_source\\.tar
} else {
    livecheck.type      none
}
