Difference between revisions of "Hmatrix on Mac OS X"

From HaskellWiki
Jump to: navigation, search
(instructions for the new version)
Line 22: Line 22:
 
== Installing GSLHaskell ==
 
== Installing GSLHaskell ==
   
As of 20 Jan 2007, the Darcs version of GSLHaskell was easier to get working than the older tarball release. Download it as follows:
 
  +
The [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/hmatrix most recent version] of GSLHaskell is available on [http://hackage.haskell.org/ HackageDB] with the name ''hmatrix''. You can also download it from the darcs repository as follows:
   
darcs get http://dis.um.es/~alberto/GSLHaskell --partial
+
darcs get http://perception.inf.um.es/~aruiz/darcs/hmatrix --partial
   
Next, edit GSLHaskell/src/GSLHaskell.cabal to refer to the appropriate versions of BLAS and LAPACK:
+
Next, edit hmatrix.cabal to refer to the appropriate versions of BLAS and LAPACK:
   
 
extra-libraries: gsl gslcblas LAPACK
 
extra-libraries: gsl gslcblas LAPACK
   
To build and install GSLHaskell, type:
+
To build and install the package, type:
   
cd GSLHaskell/src
 
  +
runhaskell Setup.lhs configure
runhaskell Setup.hs configure
+
runhaskell Setup.lhs build
runhaskell Setup.hs build
+
sudo runhaskell Setup.lhs install
sudo runhaskell Setup.hs install
 
   
 
== Using GSLHaskell ==
 
== Using GSLHaskell ==
Line 46: Line 46:
 
To build an example program using GHC, type:
 
To build an example program using GHC, type:
   
cd ../examples
+
cd examples
 
ghc --make -optl-L/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/ plot.hs
 
ghc --make -optl-L/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/ plot.hs
   
Line 59: Line 59:
 
export GNUTERM=aqua
 
export GNUTERM=aqua
   
You should now be able to build and run GSLHaskell/examples/plot.hs, and see three nicely anti-aliased plots. If you're using an xterm, you can also choose to leave GNUTERM unset to use gnuplot's built-in X11 support, which is uglier, but apparently allows rotation of 3D plots using the mouse.
+
You should now be able to build and run examples/plot.hs, and see three nicely anti-aliased plots. If you're using an xterm, you can also choose to leave GNUTERM unset to use gnuplot's built-in X11 support, which is uglier, but apparently allows rotation of 3D plots using the mouse.
   
 
== Using fink ==
 
== Using fink ==
   
With minor change the instructions work for fink. (I have already had the ghc and ghc-bin packages) In short:
+
With minor changes the instructions work for fink. (I have already had the ghc and ghc-bin packages) In short:
   
 
fink install gsl
 
fink install gsl
 
fink install atlas
 
fink install atlas
 
fink install darcs
 
fink install darcs
darcs get http://dis.um.es/~alberto/GSLHaskell --partial
+
darcs get http://perception.inf.um.es/~aruiz/darcs/hmatrix --partial
 
(fink instal gnuplot)
 
(fink instal gnuplot)
   
cd GSLHaskell/src
 
  +
runhaskell Setup.lhs configure
runhaskell Setup.hs configure
+
runhaskell Setup.lhs build
runhaskell Setup.hs build
 
 
su
 
su
runhaskell Setup.hs install
+
runhaskell Setup.lhs install
 
exit
 
exit
cd ../examples
+
cd examples
 
export LD_LIBRARY_PATH=/sw/lib/
 
export LD_LIBRARY_PATH=/sw/lib/
 
runhaskell tests
 
runhaskell tests
Cases: 31 Tried: 31 Errors: 0 Failures: 0
 
  +
OK, passed 100 tests.
Counts {cases = 31, tried = 31, errors = 0, failures = 0}
 
  +
OK, passed 100 tests.
 
  +
etc.
Note that the getting the latest version with darcs is essential: I could not get the tar.gz distribution to work.
 

Revision as of 13:11, 3 December 2007

Here are some notes on getting GSLHaskell running under Mac OS X 10.4 using MacPorts or fink. These notes may be incomplete, and the details may change slightly in the future.

Please update this page with anything you discover along the way.

Installing GHC using MacPorts

First, you will want to install GHC using MacPorts, not the standalone installers. Assuming that you have uninstalled any other versions of ghc, type:

sudo port install ghc

This may take several hours to bootstrap on a slow machine.

Required libraries

GSLHaskell requires working versions of GSL, BLAS and LAPACK. You can get GSL and BLAS from DarwinPorts:

sudo port install gsl

The accelerated version of LAPACK bundled with MacOS X 10.4 appears to link with GSLHaskell, though I haven't tested it extensively.

Installing GSLHaskell

The most recent version of GSLHaskell is available on HackageDB with the name hmatrix. You can also download it from the darcs repository as follows:

darcs get http://perception.inf.um.es/~aruiz/darcs/hmatrix --partial

Next, edit hmatrix.cabal to refer to the appropriate versions of BLAS and LAPACK:

extra-libraries:    gsl gslcblas LAPACK

To build and install the package, type:

runhaskell Setup.lhs configure
runhaskell Setup.lhs build
sudo runhaskell Setup.lhs install

Using GSLHaskell

These instructions are awkward, and can probably be improved with better knowledge of GHC and/or Cabal.

To load GSLHaskell using GHCI, you need to add two directories to your LD_LIBRARY_PATH:

export LD_LIBRARY_PATH=/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/:/opt/local/lib

To build an example program using GHC, type:

cd examples
ghc --make -optl-L/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/ plot.hs

Plotting with gnuplot and Aquaterm

Install gnuplot using MacPorts:

sudo port install gnuplot

If Aquaterm fails to compile, upgrade to the latest version of XCode. Tell gnuplot what terminal to use:

export GNUTERM=aqua

You should now be able to build and run examples/plot.hs, and see three nicely anti-aliased plots. If you're using an xterm, you can also choose to leave GNUTERM unset to use gnuplot's built-in X11 support, which is uglier, but apparently allows rotation of 3D plots using the mouse.

Using fink

With minor changes the instructions work for fink. (I have already had the ghc and ghc-bin packages) In short:

 fink install gsl
 fink install atlas
 fink install darcs
 darcs get http://perception.inf.um.es/~aruiz/darcs/hmatrix --partial
 (fink instal gnuplot)
 runhaskell Setup.lhs configure
 runhaskell Setup.lhs build
 su
 runhaskell Setup.lhs install
 exit  
 cd examples
 export LD_LIBRARY_PATH=/sw/lib/
 runhaskell tests
 OK, passed 100 tests.
 OK, passed 100 tests.
 etc.