| 1 | ;;; -*- Mode: lisp -*- |
|---|
| 2 | ;;; |
|---|
| 3 | ;;; This defsystem converts the FISHPACK Fortran routines |
|---|
| 4 | ;;; to Lisp and compiling the result. |
|---|
| 5 | ;;; |
|---|
| 6 | |
|---|
| 7 | (defpackage #:fishpack-asd |
|---|
| 8 | (:use :cl :asdf)) |
|---|
| 9 | |
|---|
| 10 | (in-package :fishpack-asd) |
|---|
| 11 | |
|---|
| 12 | (defclass fortran-source-file (source-file) ()) |
|---|
| 13 | (defmethod source-file-type ((c fortran-source-file) (s module)) "f") |
|---|
| 14 | |
|---|
| 15 | (defmethod output-files ((o operation) (c fortran-source-file)) |
|---|
| 16 | (list (make-pathname :name (component-name c) |
|---|
| 17 | :type #+cmu "x86f" #-cmu "fasl" |
|---|
| 18 | :defaults (component-pathname c)))) |
|---|
| 19 | |
|---|
| 20 | (defmethod perform ((o compile-op) (c fortran-source-file)) |
|---|
| 21 | (f2cl:f2cl-compile (make-pathname :name (component-name c) |
|---|
| 22 | :defaults (component-pathname c)) )) |
|---|
| 23 | |
|---|
| 24 | (defmethod perform ((o load-op) (c fortran-source-file)) |
|---|
| 25 | (load (car (output-files o c)))) |
|---|
| 26 | |
|---|
| 27 | (defsystem fishpack |
|---|
| 28 | :components |
|---|
| 29 | |
|---|
| 30 | ((:fortran-source-file "pimach") |
|---|
| 31 | (:fortran-source-file "merge") |
|---|
| 32 | (:fortran-source-file "cosgen" |
|---|
| 33 | :depends-on ("pimach")) |
|---|
| 34 | (:fortran-source-file "genbun" |
|---|
| 35 | :depends-on ("pimach" "poisd2" "poisp2" "poisn2")) |
|---|
| 36 | (:fortran-source-file "tri3") |
|---|
| 37 | (:fortran-source-file "trix") |
|---|
| 38 | (:fortran-source-file "hwscrt" |
|---|
| 39 | :depends-on ("trix" "tri3" "pimach")) |
|---|
| 40 | (:fortran-source-file "poisd2" |
|---|
| 41 | :depends-on ("cosgen" "trix" "merge")) |
|---|
| 42 | (:fortran-source-file "poisn2" |
|---|
| 43 | :depends-on ("cosgen" "trix" "tri3" "merge")) |
|---|
| 44 | (:fortran-source-file "poisp2" |
|---|
| 45 | :depends-on ("cosgen" "trix" "tri3" "merge" |
|---|
| 46 | "poisd2")))) |
|---|