Next: A more involved example, Previous: Defining systems with defsystem, Up: Defining systems with defsystem [Contents][Index]
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:
(in-package :asdf) (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:
in-package
form
to use package asdf
.
You could instead start your definition by using
a qualified name asdf:defsystem
.
defsystem
,
you are going to define functions,
create ASDF extension, globally bind symbols, etc.,
it is recommended that to avoid namespace pollution between systems,
you should create your own package for that purpose,
for instance replacing the above (in-package :asdf)
with:
(defpackage :foo-system (:use :cl :asdf)) (in-package :foo-system)
defsystem
form defines a system named hello-lisp
that contains three source files:
packages, macros and hello.
Next: A more involved example, Previous: Defining systems with defsystem, Up: Defining systems with defsystem [Contents][Index]