Next: , Previous: Defining systems with defsystem, Up: Defining systems with defsystem


2.1 The defsystem form

Systems can be constructed programmatically by instantiating components using make-instance. Most of the time, however, it is much more practical to use a static defsystem form. This section begins with an example of a system definition, then gives the full grammar of defsystem.

Let's look at a simple system. This is a complete file that would usually be saved as hello-lisp.asd:

     (defpackage hello-lisp-system
       (:use :common-lisp :asdf))
     
     (in-package :hello-lisp-system)
     
     (defsystem "hello-lisp"
         :description "hello-lisp: a sample Lisp system."
         :version "0.2"
         :author "Joe User <joe@example.com>"
         :licence "Public Domain"
         :components ((:file "packages")
                      (:file "macros" :depends-on ("packages"))
                      (:file "hello" :depends-on ("macros"))))

Some notes about this example:


Footnotes

[1] It is possible, though almost never necessary, to override this behaviour.