Personal tools

Hmatrix on Mac OS X

From HaskellWiki

(Difference between revisions)
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.

Contents

1 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.

2 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.

3 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

4 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

5 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.

6 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.