Skip to content
xcvb.asd 5.03 KiB
Newer Older
Spencer Brody's avatar
Spencer Brody committed
;;; -*- mode: lisp -*-

(in-package :asdf)
(when (plusp (length (getenv "XCVB_FARMER")))
  (pushnew :xcvb-farmer *features*))

Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
(map () 'require
     '(;; Actually used by XCVB
       :sb-grovel :sb-posix :sb-sprof
       ;; Used by SLIME
       :sb-cltl2 :sb-introspect :sb-bsd-sockets))
(proclaim '(optimize (speed 2) (safety 3) (debug 3) (compilation-speed 0)))

(defsystem "xcvb"
  :version (:read-file-line "version.text")
  :author ("Francois-Rene Rideau" "Spencer Brody" "Joyce Chen")
  :maintainer "Francois-Rene Rideau"
  :licence "MIT"
  :description "XCVB"
  :long-description "an eXtensible Component Verifier and Builder for Lisp.
XCVB provides a scalable system to build large software in Lisp, featuring
deterministic separate compilation and enforced locally-declared dependencies."
  :defsystem-depends-on ("asdf" "xcvb-driver" "xcvb-bootstrap")
  :depends-on ((:version "asdf" "3.1.4") "poiu"
               "xcvb-driver" "xcvb-bootstrap" "asdf-encodings"
               "lambda-reader"
               "fare-mop" "fare-memoization"
               "command-line-arguments"
               "asdf-dependency-grovel"
               "fare-quasiquote-extras"
               "ironclad" "binascii" "babel"
               "inferior-shell"
               "lisp-interface-library"
               #+clozure "single-threaded-ccl"
               #+xcvb-farmer "quux-iolib"
               #|#-clisp "rucksack"|#)
Spencer Brody's avatar
Spencer Brody committed
    :components
    ((:file "version")
     (:file "pkgdcl" :depends-on ("version"))
     (:file "conditions" :depends-on ("pkgdcl"))
     (:file "macros" :depends-on ("pkgdcl"))
     (:file "utilities" :depends-on ("macros"))
     (:file "logging" :depends-on ("specials"))
     (:file "commands" :depends-on ("specials" "macros"))
     (:file "string-escape" :depends-on ("utilities"))
     (:file "virtual-pathnames" :depends-on ("specials" "utilities"))
     (:file "grain-interface" :depends-on ("utilities" "conditions"))
     (:file "grain-sets" :depends-on ("grain-interface"))
     (:file "grain-registry" :depends-on ("grain-interface" "specials"))
     (:file "source-registry" :depends-on ("grain-registry" "commands"))
     (:file "computations" :depends-on ("grain-interface" "grain-registry"))
     (:file "manifest" :depends-on ("macros" "virtual-pathnames" "commands"))
     (:file "extract-target-properties" :depends-on ("specials" "string-escape" "grain-interface"))
     (:file "grain-implementation" :depends-on ("grain-registry" "extract-target-properties"))
     (:file "names" :depends-on ("grain-registry" "grain-interface"))
     (:file "normalize-dependency" :depends-on ("names" "grain-interface"))
     (:file "traversal" :depends-on ("names" "computations"))
     (:file "change-detection" :depends-on ("traversal"))
     (:file "dependencies-interpreter" :depends-on ("normalize-dependency" "traversal"))
     (:file "pathname-mappings" :depends-on ("specials" "grain-interface"))
     (:file "static-traversal" :depends-on ("grain-sets" "dependencies-interpreter"))
     (:file "external-commands" :depends-on ("specials" "utilities" "grain-interface"))
     (:file "target-lisp-commands" :depends-on ("specials" "utilities" "grain-interface" "external-commands"))
     (:file "run-program-backend" :depends-on ("profiling" "static-traversal" "target-lisp-commands"
					       "computations" "commands" "virtual-pathnames"))
            :depends-on ("profiling" "static-traversal" "target-lisp-commands" "computations"
                         "extract-target-properties" "commands" "virtual-pathnames" "specials"))
     (:file "blaze-backend"
            :depends-on ("profiling" "static-traversal" "target-lisp-commands" "computations"
                         "extract-target-properties" "commands" "virtual-pathnames" "specials"))
     (:file "simplifying-traversal" :depends-on ("traversal" "dependencies-interpreter"))
     (:file "list-files" :depends-on ("simplifying-traversal" "commands"))
     (:file "asdf-backend" :depends-on ("simplifying-traversal" "logging" "commands"))
     (:file "ne-makefile-backend" :depends-on ("commands" "makefile-backend"
                                               "asdf-backend" "simplifying-traversal"))
     (:file "asdf-converter" :depends-on ("commands" "grain-interface" "source-registry"))
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
     (:file "self-upgrade" :depends-on ("commands"))
     (:file "slave" :depends-on ("commands"))
     #+xcvb-farmer
     (:file "farmer"
            :depends-on ("profiling" "commands" "target-lisp-commands" "external-commands"
                                     "grain-interface" "dependencies-interpreter"))
     (:file "cffi-grovel-support" :depends-on
            ("makefile-backend" "static-traversal" "computations" "target-lisp-commands"
                                "grain-implementation" "asdf-backend" "dependencies-interpreter"))
     (:file "main" :depends-on ("commands")))
  :in-order-to ((test-op (test-op "xcvb-test"))))