Patrick Perry wrote:

> Xiao-Yong Jin wrote:
Apart from some warnings, the library compiles fine in my
system.  But there is a minor issue about the library it
links against when `./Setup test'.  I need to use `-lcblas'
instead of `-lblas' to get it to link to correct libraries.
I don't know other people's system.  But in my system,
Gentoo Linux, I use blas library provided by atlas, and
libblas.so is a fortran library and libcblas.so is for C.

I don't know of a good way to get around this. It seems like every system has a different convention for the location and name of the cblas libraries. So, everyone has to edit the "extra-libraries" and the "extra-lib-dirs" field in the blas.cabal file. Does anyone know of a better way of doing this?


A possible solution is using flags in the cabal configuration file. For instance, I have this in hmatrix.cabal:

if flag(mkl)
 if arch(x86_64)
  extra-libraries: gsl mkl_lapack mkl_intel_lp64 mkl_sequential mkl_core
 else
   extra-libraries: gsl mkl_lapack mkl_intel mkl_sequential mkl_core
else
 extra-libraries: gsl blas lapack

so if I want to link with Intel's MKL optimized blas/lapack instead of ATLAS I simply add the -fmkl flag:

runhaskell Setup.lhs configure -fmkl etc.

or even

cabal install hmatrix -fmkl

Other flags can be added to support different distributions. We could have something like

cabal install package -ffedora

or

cabal install package -fcblas

etc.

Alberto
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to