1 ;; Simple script to convert all of the Fortran sources to lisp.
3 ;; This should be run from the root of the maxima source tree. We go
4 ;; one by one and load the appropriate defsystem file and run mk:oos
5 ;; to convert the Fortran sources to Lisp. These are not done in any
8 ;; Note that the current conversion was done using CMUCL. It's
9 ;; probably best to continue to use CMUCL to do the conversion. Why?
10 ;; So that the diffs between conversions are minimized. Other than
11 ;; this, any Lisp that can run f2cl can be used to do the conversion.
13 ;; This can be done from a running maxima-local:
15 ;; :lisp (load "lisp-utils/convert-fortran")
17 ;; For this to work, you must have f2cl available. If REQUIRE doesn't
18 ;; work, you'll have to load f2cl yourself.
21 (defun convert-system (system-name system-file
&optional
(clear-info t
))
23 ;; Clear the function info in case the various packages have
24 ;; functions with the same name but different parameters or return
26 (f2cl::clear-f2cl-finfo
))
28 (mk:oos system-name
:compile
:force t
))
30 (convert-system "slatec" "src/numerical/slatec/slatec.system")
31 (convert-system "lbfgs-lisp" "share/lbfgs/lbfgs-lisp.system")
32 (convert-system "minpack-lisp" "share/minpack/minpack-lisp.system")
34 ;; BLAS and LAPACK should be compiled in this order. And we probably
35 ;; don't want to clear out the f2cl function info when compiling
36 ;; LAPACK since LAPACK calls some BLAS routines.
37 (convert-system "blas-lisp" "share/lapack/blas/blas-lisp.system")
38 (convert-system "lapack-lisp" "share/lapack/lapack/lapack-lisp.system" nil
)
40 (convert-system "colnew-lisp" "share/colnew/colnew-lisp.system")