[lisplab-cvs] r55 -

Jørn Inge Vestgården jivestgarden at common-lisp.net
Thu Jun 11 18:55:22 UTC 2009


Author: jivestgarden
Date: Thu Jun 11 14:55:21 2009
New Revision: 55

Log:
fixed default loading and builing of ffi libs

Removed:
   libs.lisp
Modified:
   lisplab.asd
   start.lisp

Modified: lisplab.asd
==============================================================================
--- lisplab.asd	(original)
+++ lisplab.asd	Thu Jun 11 14:55:21 2009
@@ -1,13 +1,25 @@
 
+
 (in-package :cl-user)
+
+(defvar *lisplab-libblas-path* nil "Path to blas shared object file")
+(defvar *lisplab-liblapack-path* nil "Path to lapack shared object file")
+(defvar *lisplab-fftw-path* nil "Path to fftw shared object file")
+
 (defpackage :asdf-lisplab (:use :asdf :cl))
 (in-package :asdf-lisplab)
 
-(defun get-lisplab-lib (name &optional (libs #P"libs.lisp")) 
-  (cdr (assoc name (with-open-file (out libs)
-		     (read out)))))
+(defun load-lisplab-lib (name)
+  (sb-alien:load-shared-object name))
 
 (defsystem :lisplab
+  ;; Default system, without external libs
+  :depends-on 
+  (:lisplab-base 
+   :quadpack))
+
+(defsystem :lisplab-all
+  ;; Default system, without all libs
   :depends-on 
   (:lisplab-base 
    :lisplab-matlisp 
@@ -118,18 +130,18 @@
      (:file "f77-mangling")
      (:module :blas-libs  	
       :perform (asdf:load-op :after (op c)
-			     (sb-alien:load-shared-object
-			      (get-lisplab-lib :libblas)))	
+			     (load-lisplab-lib 
+			      cl-user::*lisplab-libblas-path*))
       :explain (asdf:load-op :after (op c)
 			     (format t "Loads alien object <~A>"
-				     (get-lisplab-lib :libblas))))
-     (:module :lapack-libs 
+				    cl-user::*lisplab-libblas-path*)))
+     (:module :lapack-libs
       :perform (asdf:load-op :after (op c)
-			     (sb-alien:load-shared-object
-			      (get-lisplab-lib :liblapack)))	
+			     (load-lisplab-lib 
+			      cl-user::*lisplab-liblapack-path*))
       :explain (asdf:load-op :after (op c)
 			     (format t "Loads alien object <~A>"
-				     (get-lisplab-lib :liblapack))))
+				    cl-user::*lisplab-liblapack-path*)))
      (:file "f77-package")
      (:file "ffi-sbcl")
      (:file "blas")
@@ -153,12 +165,11 @@
     ((:file "fftw-ffi-package")
      (:module :fftw-libs
       :perform (asdf:load-op :after (op c)
-			     (sb-alien:load-shared-object
-			      (get-lisplab-lib :libfftw)))	
+			     (load-lisplab-lib 
+			      cl-user::*lisplab-libfftw-path*))
       :explain (asdf:load-op :after (op c)
 			     (format t "Loads alien object <~A>"
-				     (get-lisplab-lib :libfftw))))
-
+				    cl-user::*lisplab-libfftw-path*)))
      (:file "fftw-ffi")
      (:file "level3-fft-fftw")))))
 

Modified: start.lisp
==============================================================================
--- start.lisp	(original)
+++ start.lisp	Thu Jun 11 14:55:21 2009
@@ -1,14 +1,28 @@
+;; Loads lisplab. Hack this file to fit your setup 
+;; and your shared libraries.
 
 (in-package :cl-user)
 
+;; TODO make this part of the package 
 (setf *READ-DEFAULT-FLOAT-FORMAT* 'double-float)
 
+;; (defvar *lisplab-libblas-path* #P"/usr/lib/atlas/libblas.so.3.0")
+;; (defvar *lisplab-liblapack-path* #P"/usr/lib/atlas/liblapack.so.3.0")
+;; (defvar  *lisplab-libfftw-path* #P"/usr/lib/libfftw3.so.3")
+
 (defun load-lisplab ()
   (asdf:oos 'asdf:load-op 'lisplab)  
   (let ((asdf:*compile-file-failure-behaviour* :ignore))
     ;; There seems to bee some compilation trouble in SBCL 
     ;; due to type interference. Should be fixed, not just skipped.
-    (asdf:oos 'asdf:load-op 'slatec)))
+    (asdf:oos 'asdf:load-op 'slatec))
+
+  ;; The system lisplab-matlisp depends on libblas.so and liblapack.so
+  ;; (asdf:oos 'asdf:load-op 'lisplab-matlisp)
+
+  ;; The system lisplab-fftw depends on libfftw.so
+  ;; (asdf:oos 'asdf:load-op 'lisplab-fftw)
+  )
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 (load-lisplab)




More information about the lisplab-cvs mailing list