;;;; -*- Mode: Lisp -*- ;;;; cl-unification.asd -- ;;;; ASDF system file. ;;;; See file COPYING for copyright licensing information. (defpackage "CL-UNIFICATION-SYSTEM" (:use "CL" "ASDF")) (in-package "CL-UNIFICATION-SYSTEM") (when (asdf:find-system 'asdf-system-connections nil) (asdf:oos 'asdf:load-op 'asdf-system-connections)) (defclass load-only-file (cl-source-file) ((last-loaded :accessor load-date :initform nil))) (defmethod operation-done-p ((op compile-op) (component load-only-file)) t) (defmethod perform :around ((op compile-op) (component load-only-file)) nil) (defmethod operation-done-p ((op load-op) (component load-only-file)) (and (load-date component) (>= (load-date component) (file-write-date (component-pathname component))))) (defmethod perform ((op load-op) (component load-only-file)) (prog1 (load (component-pathname component)) (setf (load-date component) (file-write-date (component-pathname component))))) (asdf:defsystem :cl-unification :author "Marco Antoniotti" :in-order-to ((test-op (test-op :cl-unification-test))) :serial t :components ((:file "unification-package") (:file "variables") (:file "substitutions") (:file "lambda-list-parsing") (:file "templates-hierarchy") (:file "template-reader") (:file "unifier") (:file "match-block") (:file "apply-substitution"))) #+asdf-system-connections (asdf:defsystem-connection cl-unification+cl-ppcre :requires (:cl-ppcre :cl-unification) :components ((:load-only-file "unification-package") (:module "lib-dependent" :components ((:file "cl-ppcre-template"))))) #+asdf-system-connections (asdf:defsystem-connection cl-unification+named-readtables :requires (:cl-unification :named-readtables) :components ((:load-only-file "unification-package") (:module "lib-dependent" :components ((:file "named-readtable"))))) ;;;; end of file -- cl-unification.asd --