Hello,
I have yesterday installed Matlisp on my system, and I'm very pleased
with it. The installation was really simple and judging from some first
tests, it seems to be just what I want. Thanks.
Then I've wanted to built it using the ATLAS libraries. I've tried
to achieve that with this call to configure:
./configure --with-lisp=sbcl --with-lisp-exec=sbcl --prefix=`pwd` --with-atlas="/usr/lib/sse2"
(The desired libraries lie in /usrr/lib/sse2 on Debian.)
But the lapack library file of the Debian package atlas3-sse2-dev
is called liblapack_atlas.so not liblapack.so, so I changed that
in the ATLAS_LIBS variable in configure.in.
To have the libraries loaded on SBCL I've added some code
load-blas-&-lapack-libraries in lazy-loader.lisp.in. It's a bit longer
than on CMUCL as I have added code that extracts the library names from
the @ATLAS_LIBS@ string and the ATLAS directory from @ATLAS_DIR@, and
then loads the .so-files via sb-alien:load-shared-object.
I'm not exactly sure wheter this is the way to go.. At least it seems
to work, and even in a way that might probably work on other systems
than mine as well.
Other changes in the patch:
- Changed the two definitions of ATLAS_P in configure.in
from nil to "(or)" and from t to "(and)", respectively, so
that one can use "#+@ATLAS_P@" in lib/lazy-loader.lisp.in,
and it will also work for the "true" case.
- "make distclean" will now also delete the files matlisp.mk,
lib/lazy-loader.lisp, src/f77-mangling.lisp, and config.status,
that are generated when calling configure.
- Updated the paragraph on building Matlisp with ATLAS:
When the ATLAS libraries have different names, the variable
ATLAS_LIBS in configure.in should be changed, not the generated
file lib/lazy-loader.lisp.
Bye,
Max
PS:
This is Linux 2.6.15.1, ia32 (Pentium Mobile), SBCL 0.9.16.21,
a Matlisp checkout of yesterday evening, atlas3-sse2-dev 3.6.0-20.6
(Debian unstable), in the case someone is interested in this.
--
Max-Gerd Retzlaff <m.r...@gm...> http://blog.matroid.org
For your amusement:
Comedy, like Medicine, was never meant to be practiced by the general
public.
|