1 ;;;; -*- Mode: Lisp -*- 2 ;;;; cl-unification.asd -- 3 ;;;; ASDF system file. 4 5 ;;;; See file COPYING for copyright licensing information. 6 7 (defpackage "CL-UNIFICATION-SYSTEM" (:use "CL" "ASDF")) 8 9 (in-package "CL-UNIFICATION-SYSTEM") 10 11 (when (asdf:find-system 'asdf-system-connections nil) 12 (asdf:oos 'asdf:load-op 'asdf-system-connections)) 13 14 (defclass load-only-file (cl-source-file) 15 ((last-loaded :accessor load-date :initform nil))) 16 (defmethod operation-done-p ((op compile-op) (component load-only-file)) 17 t) 18 (defmethod perform :around ((op compile-op) (component load-only-file)) 19 nil) 20 (defmethod operation-done-p ((op load-op) (component load-only-file)) 21 (and (load-date component) 22 (>= (load-date component) (file-write-date (component-pathname component))))) 23 (defmethod perform ((op load-op) (component load-only-file)) 24 (prog1 (load (component-pathname component)) 25 (setf (load-date component) 26 (file-write-date (component-pathname component))))) 27 28 (asdf:defsystem :cl-unification 29 :author "Marco Antoniotti" 30 :in-order-to ((test-op (test-op :cl-unification-test))) 31 :serial t 32 :components ((:file "unification-package") 33 (:file "variables") 34 (:file "substitutions") 35 (:file "lambda-list-parsing") 36 (:file "templates-hierarchy") 37 (:file "template-reader") 38 (:file "unifier") 39 (:file "match-block") 40 (:file "apply-substitution"))) 41 42 #+asdf-system-connections 43 (asdf:defsystem-connection cl-unification+cl-ppcre 44 :requires (:cl-ppcre :cl-unification) 45 :components ((:load-only-file "unification-package") 46 (:module "lib-dependent" 47 :components ((:file "cl-ppcre-template"))))) 48 49 #+asdf-system-connections 50 (asdf:defsystem-connection cl-unification+named-readtables 51 :requires (:cl-unification :named-readtables) 52 :components ((:load-only-file "unification-package") 53 (:module "lib-dependent" 54 :components ((:file "named-readtable"))))) 55 56 ;;;; end of file -- cl-unification.asd --