Introduction
************

Purpose
=======

Installation
============

Get ASDF
--------

Many Common Lisp implementations already come with ASDF (Another System Definition Facility). SBCL and OpenMCL have it bundled and make it available via a simple (require 'asdf). Debian Users who use ``Common Lisp Controller'' already have it in their lisp images.

If you do not have ASDF yet you can download it at http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/cclan/asdf/. It is a single file called asdf.lisp. To load it type (load "asdf.lisp") into your listener or startup file.

Register the system
-------------------

ASDF needs to get advised on where the systems reside. There are several possible ways to do this. All have in common that they use the special variable ASDF:*CENTRAL-REGISTRY*. This variable contains a list of directories in which ASDF searches for system files.

Unix like Systems
.................

Unix systems support symbolic links on the filesystem level. On such a system it is easy to setup an ASDF registry by pushing a single directory onto ASDF:*CENTRAL-REGISTRY* and register new systems by simply creating a symbolic link to the real system file.

     $ cd
     $ mkdir lisp-systems
     $ cd lisp-systems
     $ ln -s ../path/to/PROJECTSYSTEM/PROJECTSYSTEM.asd .

Please do not copy the system file out of the project directory. ASDF uses the location of the system to find the other source-files.

Other Operating Systems
.......................

To register a system on operating systems which do not support symbolic links one simply pushes the project directory onto ASDF:*CENTRAL-REGISTRY*. This is best done in the startup file of the lisp implementation.

Compile and load the system
---------------------------

Compiling and loading of a system is done the same way with ASDF. If the system is not yet compiled or some source file got an update, ASDF compiles the system automatically before it loads it.

     CL-USER > (asdf:operate 'asdf:load-op :PROJECTSYSTEM)