homebrew-core/Formula/suite-sparse.rb

52 lines
1.6 KiB
Ruby

require 'formula'
class SuiteSparse < Formula
homepage 'http://www.cise.ufl.edu/research/sparse/SuiteSparse'
url 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-4.0.2.tar.gz'
sha1 '46b24a28eef4b040ea5a02d2c43e82e28b7d6195'
option "without-tbb", "Do not link with tbb (Threading Building Block)"
option "with-metis", "Compile in metis libraries"
option "with-openblas", "Use openblas instead of Apple's Accelerate.framework"
depends_on "tbb" unless build.include? "without-tbb"
# Metis is optional for now because of
# cholmod_metis.c:164:21: error: use of undeclared identifier 'idxtype'
depends_on "metis" if build.include? "with-metis"
depends_on "homebrew/science/openblas" if build.include? "with-openblas"
def install
# SuiteSparse doesn't like to build in parallel
ENV.j1
inreplace 'SuiteSparse_config/SuiteSparse_config.mk' do |s|
if build.include? 'with-openblas'
s.change_make_var! "BLAS", "-lopenblas"
s.change_make_var! "LAPACK", "$(BLAS)"
else
s.change_make_var! "BLAS", "-Wl,-framework -Wl,Accelerate"
s.change_make_var! "LAPACK", "$(BLAS)"
end
unless build.include? "without-tbb"
s.change_make_var! "SPQR_CONFIG", "-DHAVE_TBB"
s.change_make_var! "TBB", "-ltbb"
end
if build.include? 'with-metis'
s.remove_make_var! "METIS_PATH"
s.change_make_var! "METIS", Formula.factory("metis").lib + "libmetis.a"
end
s.change_make_var! "INSTALL_LIB", lib
s.change_make_var! "INSTALL_INCLUDE", include
end
system "make library"
lib.mkpath
include.mkpath
system "make install"
end
end