
     A Portable System Definition Facility for Common Lisp

In order to maintain a large system of modules with complex load and
compile time dependendies, a declarative and central representation of
a system, its subsystems and modules is preferrable to one where these
dependencies are associated with a particular module (e.g. by REQUIRE
and PROVIDE).  

Since in Lisp the definition of other languages is a frequently used
programming technique, the load and compile time dependencies are also
parameterised by the compiler or loader to be used for a module or
system.  The Portable System Definition Facility is intended to meet
this need.


Summary
=======

	P-defsys.l 		| Customization
	defsys.l    		| implement the defsystem facility.

	defpackage.l		| For those versions of CL which don't
				| implement defpackage

	expand-file-name.l 	| make CL understand environment variables
				| in Unix or MacIntosh pathnames.

	doc/defsys.tex		| documentation
	defsys.dvi

	test-defsys 		| a simple example


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

1.  Make a directory ~/lisp/DEFSYS/ and copy the package into it.
	
	(on the Mac: Create a folder "home;defsys:" 
	 where home is a logical namestring defined in your init.lisp)


2.  Recompile Portable Defsys
	Evaluate:
	(defvar *DEFSYSTEM-DIRECTORY* "~/lisp/DEFSYS/")
	(load "~/lisp/DEFSYS/recompile-defsys.l")

	This should make all the binaries for your CL.
	
	on the Mac:
	(defvar *DEFSYSTEM-DIRECTORY* "home;defsys:")
	(load "home;defsys:recompile-defsys.l")

3.  To load, put into the CL init file:
	
	(defvar *DEFSYSTEM-DIRECTORY* "~/lisp/DEFSYS/")
	(let ((*default-pathname-defaults*
	       (format nil "~Abinary/" *DEFSYSTEM-DIRECTORY*)))
	  (require "P-defsys"))

	on the Mac:
        (defvar *DEFSYSTEM-DIRECTORY* "home;defsys:")
        ...

If you want to use a different directory than ~/lisp/DEFSYS/, you
could either:

 	change the line in P-defsys.l where *defsystem-directory* is
	defined or

 	set *defsystem-directory* to wherever your defsys files reside

before loading P-defsys or recompile-defsys.
