1 ;;;; -*- Mode: lisp -*-
3 ;;;; Defsystem to convert the original ODEPACK Fortran files to lisp
4 ;;;; for use by maxima. This only supports the routines necessary to
7 ;;;; This requires that f2cl be loaded.
8 (mk:define-language :f2cl
12 :binary-extension "lisp")
14 ;; Create a logical pathname for our files.
15 (let ((base (make-pathname :directory (pathname-directory *load-pathname*))))
16 (setf (logical-pathname-translations "odepack")
17 (list (list "**;*.*.*"
20 :directory '(:relative :wild-inferiors)
21 :name :wild :type :wild)
24 (mk:defsystem odepack-package
25 :source-pathname (translate-logical-pathname "odepack:")
26 :binary-pathname (translate-logical-pathname "odepack:src")
32 ((:file "package")))))
35 (mk:defsystem odepack-blas-util
36 :source-pathname (translate-logical-pathname "odepack:fortran")
37 :binary-pathname (translate-logical-pathname "odepack:src")
38 :depends-on ("odepack-package")
40 ;; At least dgefa and idamax are passed slices of arrays. Thus, we
41 ;; can't declare arrays as simple-arrays. For simplicity, skip that
42 ;; for all files in this system.
43 :compiler-options (:common-as-array t
44 :float-format double-float
56 :depends-on ("daxpy"))
76 :depends-on ("ixsav"))
78 :depends-on ("iumach"))
81 :depends-on ("dumsum"))
84 (mk:defsystem odepack-lsode
85 :source-pathname (translate-logical-pathname "odepack:fortran")
86 :binary-pathname (translate-logical-pathname "odepack:src")
89 :compiler-options (:common-as-array t
90 :float-format double-float
91 :array-type :simple-array
93 :depends-on ("odepack-blas-util")
100 :compiler-options (:common-as-array t
103 :float-format double-float
104 :array-type :simple-array
106 :depends-on ("dstode"
116 :depends-on ("dcfode"