Fix one minor typo in patch.
[maxima.git] / share / odepack / odepack-lisp.system
blobab5be7016800ea7f944b9b4c3e0e4aee6c82ca69
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
5 ;;;; run dlsode.
6 ;;;;
7 ;;;; This requires that f2cl be loaded.
8 (mk:define-language :f2cl
9     :compiler #'f2cl:f2cl
10     :loader #'identity
11     :source-extension "f"
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 "**;*.*.*"
18                     (merge-pathnames
19                      (make-pathname
20                       :directory '(:relative :wild-inferiors)
21                       :name :wild :type :wild)
22                      base)))))
24 (mk:defsystem odepack-package
25   :source-pathname (translate-logical-pathname "odepack:")
26   :binary-pathname (translate-logical-pathname "odepack:src")
27   :components
28   ((:module "package"
29     :source-pathname ""
30     :load-only t
31     :components
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")
39   :language :f2cl
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
45                      :package "ODEPACK")
46   :components
47   ((:module "blas"
48     :source-pathname ""
49     :source-extension "f"
50     :components
51     (
52      (:file "dgesl"
53       :depends-on ("daxpy"
54                    "ddot"))
55      (:file "dgbsl"
56       :depends-on ("daxpy"))
57      (:file "dgefa"
58       :depends-on ("idamax"
59                    "dscal"
60                    "daxpy"))
61      (:file "dgbfa"
62       :depends-on ("idamax"
63                    "dscal"
64                    "daxpy"))
65      (:file "idamax")
66      (:file "dscal")
67      (:file "daxpy")
68      (:file "ddot")
69      (:file "dcopy")))
70    (:module "util"
71     :source-pathname ""
72     :source-extension "f"
73     :language :f2cl
74     :components
75     ((:file "xerrwd"
76       :depends-on ("ixsav"))
77      (:file "ixsav"
78       :depends-on ("iumach"))
79      (:file "iumach")
80      (:file "dumach"
81       :depends-on ("dumsum"))
82      (:file "dumsum")))))
84 (mk:defsystem odepack-lsode
85   :source-pathname (translate-logical-pathname "odepack:fortran")
86   :binary-pathname (translate-logical-pathname "odepack:src")
87   :source-extension "f"
88   :language :f2cl
89   :compiler-options (:common-as-array t
90                      :float-format double-float
91                      :array-type :simple-array
92                      :package "ODEPACK")
93   :depends-on ("odepack-blas-util")
94   :components
95   ((:module "lsode"
96     :source-pathname ""
97     :source-extension "f"
98     :components
99     ((:file "dlsode"
100       :compiler-options (:common-as-array t
101                          :declare-common t
102                          :common-block-file t
103                          :float-format double-float
104                          :array-type :simple-array
105                          :package "ODEPACK")
106       :depends-on ("dstode"
107                    "dewset"
108                    "dvnorm"
109                    "dintdy"
110                    "dsolsy"))
111      (:file "dsolsy")
112      (:file "dewset")
113      (:file "dvnorm")
114      (:file "dintdy")
115      (:file "dstode"
116       :depends-on ("dcfode"
117                    "dvnorm"
118                    "dprepj"))
119      (:file "dcfode")
120      (:file "dprepj")))))