diff --git a/cxml.asd b/cxml.asd index 51cfb50..d71def6 100644 --- a/cxml.asd +++ b/cxml.asd @@ -2,11 +2,6 @@ (:use :asdf :cl)) (in-package :cxml-system) -(defclass dummy-cxml-component () ()) - -(defmethod asdf:component-name ((c dummy-cxml-component)) - :cxml) - (progn (format t "~&;;; Checking for wide character support...") (force-output) @@ -45,12 +40,9 @@ (let (#+sbcl (*compile-print* nil)) (call-next-method)))) -(asdf:defsystem :cxml-xml +(defsystem "cxml/xml" :default-component-class closure-source-file - :pathname #+asdf2 "xml/" - #-asdf2 (merge-pathnames - "xml/" - (make-pathname :name nil :type nil :defaults *load-truename*)) + :pathname "xml/" :components ((:file "package") (:file "util" :depends-on ("package")) @@ -75,7 +67,7 @@ (name (concatenate 'string (pathname-name normal) "-utf8"))) (list (make-pathname :name name :defaults normal)))) -;; must be an extra method because of common-lisp-controller's :around method +;; must be an extra method because of common-lisp-controller's :around method (defmethod output-files :around ((operation compile-op) (c utf8dom-file)) (let ((x (call-next-method))) (setf (slot-value c 'of) (car x)) @@ -91,12 +83,9 @@ :closure-common-system)))) (call-next-method))) -(asdf:defsystem :cxml-dom +(defsystem "cxml/dom" :default-component-class closure-source-file - :pathname #+asdf2 "dom/" - #-asdf2 (merge-pathnames - "dom/" - (make-pathname :name nil :type nil :defaults *load-truename*)) + :pathname "dom/" :components ((:file "package") (:file rune-impl :pathname "dom-impl" :depends-on ("package")) @@ -106,31 +95,24 @@ #+rune-is-integer (utf8dom-file utf8-builder :pathname "dom-builder" :depends-on (utf8-impl)) (:file "dom-sax" :depends-on ("package"))) - :depends-on (:cxml-xml)) + :depends-on ("cxml/xml")) -(asdf:defsystem :cxml-klacks +(defsystem "cxml/klacks" :default-component-class closure-source-file - :pathname #+asdf2 "klacks/" - #-asdf2 (merge-pathnames - "klacks/" - (make-pathname :name nil :type nil :defaults *load-truename*)) + :pathname "klacks/" :serial t :components ((:file "package") (:file "klacks") (:file "klacks-impl") (:file "tap-source")) - :depends-on (:cxml-xml)) + :depends-on ("cxml/xml")) -(asdf:defsystem :cxml-test - :default-component-class closure-source-file - :pathname #+asdf2 "test/" - #-asdf2 (merge-pathnames - "test/" - (make-pathname :name nil :type nil :defaults *load-truename*)) - :components ((:file "domtest") (:file "xmlconf")) - :depends-on (:cxml-xml :cxml-klacks :cxml-dom)) +(defsystem "cxml/test" + :default-component-class closure-source-file + :pathname "test/" + :components ((:file "domtest") (:file "xmlconf")) + :depends-on ("cxml/xml" "cxml/klacks" "cxml/dom")) -(asdf:defsystem :cxml - :components () - :depends-on (:cxml-dom :cxml-klacks #-allegro :cxml-test)) +(defsystem "cxml" + :depends-on ("cxml/dom" "cxml/klacks" #-allegro "cxml/test")) diff --git a/xml/catalog.lisp b/xml/catalog.lisp index 301eb67..a4f5e17 100644 --- a/xml/catalog.lisp +++ b/xml/catalog.lisp @@ -226,14 +226,12 @@ (warn "ignoring catalog error: ~A" c)))) (defparameter *catalog-dtd* - (let* ((cxml - (slot-value (asdf:find-system :cxml) 'asdf::relative-pathname)) - (dtd (merge-pathnames "catalog.dtd" cxml))) - (with-open-file (s dtd :element-type '(unsigned-byte 8)) - (let ((bytes - (make-array (file-length s) :element-type '(unsigned-byte 8)))) - (read-sequence bytes s) - bytes)))) + (let ((dtd (asdf:system-relative-pathname :cxml "catalog.dtd"))) + (with-open-file (s dtd :element-type '(unsigned-byte 8)) + (let ((bytes + (make-array (file-length s) :element-type '(unsigned-byte 8)))) + (read-sequence bytes s) + bytes)))) (defun parse-catalog-file/strict (uri) (let* ((*catalog* nil)