# -*- 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 # $Id$ PortSystem 1.0 name SuiteSparse epoch 20120107 version 3.4.0 revision 3 categories math science platforms darwin maintainers nomaintainer license GPL-2+ LGPL-2.1+ description Sparse matrix routines long_description SuiteSparse is a single archive that contains all packages \ authored by Tim Davis. homepage http://www.cise.ufl.edu/research/sparse/SuiteSparse/ master_sites http://www.cise.ufl.edu/research/sparse/SuiteSparse/ worksrcdir ${name} checksums md5 e59dcabc9173b1ba1b3659ae147006b8 \ sha1 6de027d48a573659b40ddf57c10e32b39ab034c6 \ rmd160 77ff7376691d2bc8581de6ae89f246cb289b2708 patchfiles makefiles.patch \ UFconfig_UFconfig.mk-patch use_configure no # cflags recommended for Macs in ${worksrcpath}/UFconfig/UFconfig.mk configure.optflags -O3 -fno-common -fexceptions variant universal {} if {[variant_isset universal]} { append configure.cflags " " ${configure.universal_cflags} } else { append configure.cflags " " ${configure.cc_archflags} } use_parallel_build no build.target post-patch { if {[variant_isset metis]} { # Use the MacPorts version rather than extracting copy in source dir # -I$(METIS_PATH)/Lib -> -I$(METIS_PATH)/include reinplace \ "s|-I\$(METIS_PATH)/Lib|-I\$(METIS_PATH)/include|g" \ ${worksrcpath}/CHOLMOD/Lib/Makefile # #include "metis.h" -> #include reinplace \ "s|#include \"metis.h\"|#include |g" \ ${worksrcpath}/CHOLMOD/Partition/cholmod_metis.c } # klu_version.h defines Real and Imag which conflicts with math.h on ppc reinplace -E \ "s|(\[^a-zA-Z\])Real(\[^a-zA-Z\])|\\1RealPart\\2|g" \ ${worksrcpath}/KLU/Include/klu_version.h reinplace -E \ "s|(\[^a-zA-Z\])Imag(\[^a-zA-Z\])|\\1ImagPart\\2|g" \ ${worksrcpath}/KLU/Include/klu_version.h # ranlib after ar # THESE LINES NEED TO HAVE TABS ENCODED IN THE PORTFILE reinplace "s|ccolamd_global\.o|ccolamd_global.o\\ - \$(RANLIB) libccolamd.a|" ${worksrcpath}/CCOLAMD/Lib/Makefile reinplace "s|colamd_global\.o|colamd_global.o\\ - \$(RANLIB) libcolamd.a|" ${worksrcpath}/COLAMD/Lib/Makefile } post-configure { # SuiteSparse does not use configure, so the variables must be # set manually. # This is done in post-configure so that ${configure.cc} is # set to its default value. reinplace -E \ "s|^CC = .*$|CC = ${configure.cc}|g" \ ${worksrcpath}/UFconfig/UFconfig.mk \ ${worksrcpath}/CSparse/Demo/Makefile \ ${worksrcpath}/CSparse/Lib/Makefile reinplace -E \ "s|^CPLUSPLUS = .*$|CPLUSPLUS = ${configure.cxx}|g" \ ${worksrcpath}/UFconfig/UFconfig.mk reinplace -E \ "s|^CFLAGS = .*$|CFLAGS = ${configure.cflags}|g" \ ${worksrcpath}/UFconfig/UFconfig.mk reinplace -E \ "s|^CFLAGS = -O|CFLAGS = ${configure.cflags}|g" \ ${worksrcpath}/CSparse/Demo/Makefile \ ${worksrcpath}/CSparse/Lib/Makefile reinplace -E \ "s|^BLAS = .*$|BLAS = -framework Accelerate|g" \ ${worksrcpath}/UFconfig/UFconfig.mk reinplace -E \ "s|^LAPACK = .*$|LAPACK = -framework Accelerate|g" \ ${worksrcpath}/UFconfig/UFconfig.mk reinplace "s|(CC)|(CC) \$(CFLAGS)|" ${worksrcpath}/CXSparse/Demo/Makefile if {[variant_isset metis]} { reinplace -E \ "s|^METIS_PATH = .*$|METIS_PATH = ${prefix}|g" \ ${worksrcpath}/UFconfig/UFconfig.mk reinplace -E \ "s|^METIS = .*$|METIS = ${prefix}/lib/libmetis.a|g" \ ${worksrcpath}/UFconfig/UFconfig.mk } } destroot { # SuiteSparse does not support "make install" eval xinstall -m 644 \ [glob ${worksrcpath}/*/Lib/*.a] \ ${destroot}${prefix}/lib xinstall -m 755 -d ${destroot}${prefix}/include/ufsparse eval xinstall -m 644 \ [glob ${worksrcpath}/*/Include/*.h] \ [glob ${worksrcpath}/*/Include/*.hpp] \ ${worksrcpath}/UFconfig/UFconfig.h \ ${destroot}${prefix}/include/ufsparse xinstall -m 755 -d ${destroot}${prefix}/share/doc/${name} eval xinstall -m 644 \ [glob ${worksrcpath}/*/Doc/*.pdf] \ ${destroot}${prefix}/share/doc/${name} } variant metis description {Use METIS (not distributable)} { depends_build port:metis patchfiles-delete UFconfig_UFconfig.mk-patch } livecheck.type regex livecheck.regex ${name}-(\\d+(\\.\\d+)*)${extract.suffix}