# -*- 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
description DSDP is a open source implementation of an interior-point method for semidefinite programming
long_description DSDP provides primal and dual solutions, exploits low-rank structure \
and sparsity in the data, and has relatively low memory requirements for an \
interior-point method. The dual-scaling algorithm implemented in this package has \
a convergence proof and worst-case polynomial complexity under mild assumptions on the data
homepage http://www.mcs.anl.gov/hs/software/DSDP/
distname ${name}${version}
checksums rmd160 75cf8629445522a4f9bbfffdcec25e832c8ffc4e \
sha256 8915e55456f1a7cc5c970ad157d094a5fb399737cf192dfe79b89c2d94d97a8a
patchfiles patch-make.include.diff \
patch-src-sys-dsdploginfo.c.diff
if { ![variant_isset universal] } {
DSDPROOT=${worksrcpath} \
MP_ARCHFLAGS=${configure.cc_archflags}
foreach arch ${configure.universal_archs} {
lappend merger_build_env(${arch}) \
DSDPROOT=${worksrcpath}-${arch} \
"MP_ARCHFLAGS=-arch ${arch}"
variant atlas description {Use ATLAS as BLAS, LAPACK library} {
depends_lib-append port:atlas
variant octave description {Build DSDP with octave interface} {
depends_lib-append path:bin/octave:octave
reinplace "s|@@MP_CC@@|${configure.cc}|g" \
${worksrcpath}/make.include
if {[variant_isset atlas]} {
reinplace "s|@@MP_LAPACKBLAS@@|-ltatlas -lm|g" \
${worksrcpath}/make.include