3 ;;; Defsystem for converting the hompack fortran files to lisp.
5 ;;; From the root the the maxima tree, run the following with maxima:
7 ;;; :lisp (load "share/hompack/hompack-lisp.system")
8 ;;; :lisp (mk:oos "hompack-lisp" :compile :force t)
10 ;;; This should convert all the Fortran files and place them in the
11 ;;; lisp directory that hompack.system wants. This is only needed if
12 ;;; the fortran files have changed since the converted lisp files are
16 (mk:define-language :f2cl-lisp
20 :binary-extension "lisp")
22 (mk:defsystem blas-package
23 :source-pathname (maxima::maxima-load-pathname-directory)
24 :binary-pathname (maxima::maxima-objdir "share" "hompack")
26 ((:module "../lapack/blas"
28 ((:file "blas-package")))))
30 (mk:defsystem blas-hompack
31 :source-pathname (maxima::maxima-load-pathname-directory)
32 :binary-pathname (maxima::maxima-objdir "share" "hompack")
33 :depends-on ("blas-package")
36 ((:module "../lapack/blas/fortran"
37 :compiler-options (:package "BLAS" :float-format double-float)
49 (mk:defsystem hompack-package
50 :source-pathname (maxima::maxima-load-pathname-directory)
51 :binary-pathname (maxima::maxima-objdir "share" "hompack")
54 :source-extension "lisp"
57 ((:file "hompack-package")))))
59 ;; System to convert the fortran code to lisp code.
60 (mk:defsystem hompack-lisp
61 :source-pathname (maxima::maxima-load-pathname-directory)
62 :binary-pathname (maxima::maxima-load-pathname-directory)
63 :depends-on ("hompack-package" "blas-hompack")
67 :compiler-options (:package "HOMPACK" :float-format double-float)
70 :binary-pathname "lisp"
73 ;; The following are :compile-only here because HOMPACK only
74 ;; gives skeletons for them. We make them :compile-only so that
75 ;; f2cl will get the function definitions so it can generate
76 ;; calls to them appropriately.
78 ;; The user is supposed to provide appropriate definitions for
79 ;; them. Also, rho and rhojac are supposed to be user-defined,
80 ;; but the versions in HOMPACK are used for POLSYS.
81 (:file "f" :compile-only t)
82 (:file "fjac" :compile-only t)
83 (:file "fjacs" :compile-only t)
84 (:file "rhojs" :compile-only t)
85 (:file "rhoa" :compile-only t)
87 (:file "rhojac" :depends-on ("hfunp"))
91 (:file "ffunp" :depends-on ("mulp" "powp"))
92 (:file "fixpdf" :depends-on (#+nil "rhoa" "steps" "sintrp" "root"))
93 (:file "fixpds" :depends-on (#+nil "rhoa" "stepds" "sintrp" "root"))
94 (:file "fixpnf" :depends-on ("stepnf" "rootnf"))
95 (:file "fixpns" :depends-on ("stepns" "rootns"))
96 (:file "fixpqf" :depends-on ("stepqf" "rootqf"))
97 (:file "fixpqs" :depends-on ("stepqs" "rootqs"))
98 (:file "fode" :depends-on ("rhojac" #+nil "fjac"))
99 (:file "fodeds" :depends-on (#+nil "rhojs" "pcgds" #+nil "fjacs"))
100 (:file "gfunp" :depends-on ("powp" "mulp"))
102 (:file "hfun1p" :depends-on ("gfunp" "ffunp"))
103 (:file "hfunp" :depends-on ("hfun1p"))
104 (:file "initp" :depends-on ("sclgnp"))
105 (:file "mfacds" :depends-on ("gmfads"))
109 (:file "pcgds" :depends-on ("qimuds" "mfacds" "multds"))
110 (:file "pcgns" :depends-on ("mfacds" "multds" "qimuds"))
111 (:file "pcgqs" :depends-on ("solvds" "gmfads" "multds"))
112 (:file "polsys" :depends-on ("polyp"))
113 (:file "polyp" :depends-on ("initp" "strptp" "otputp" "fixpnf"))
115 (:file "qimuds" :depends-on ("solvds"))
119 (:file "rootnf" :depends-on ("tangnf"))
120 (:file "rootns" :depends-on ("tangns"))
121 (:file "rootqf" :depends-on ("upqrqf" "rho" "qrslqf" #+nil "fjac"))
122 (:file "rootqs" :depends-on (#+nil "rhojs" "rho" "pcgqs" #+nil "fjacs"))
127 (:file "stepnf" :depends-on ("tangnf"))
128 (:file "stepns" :depends-on ("tangns"))
129 (:file "stepqf" :depends-on ("tangqf" "upqrqf" "rho" "rhojac" "qrslqf" #+nil "fjac"))
130 (:file "stepqs" :depends-on ("tangqs" #+nil "rhojs" "pcgqs" #+nil "fjacs"))
135 (:file "tangnf" :depends-on ("rhojac" "rho" #+nil "fjac"))
136 (:file "tangns" :depends-on ("rhojac" "rho" "pcgns" #+nil "rhojs" "pcgds" #+nil "fjac"))
137 (:file "tangqf" :depends-on ("rhojac" "qrfaqf" "qrslqf" "r1upqf" #+nil "fjac"))
138 (:file "tangqs" :depends-on (#+nil "rhojs" "pcgqs" #+nil "fjac"))
139 (:file "upqrqf" :depends-on ("r1upqf"))