Next: How do I mark a source file to be loaded only and not compiled?, Previous: I want to put my module's files at the top level. How do I do this?, Up: Issues with using and extending ASDF to define systems
Starting with ASDF 2.014.14, you may just pass
the builtin class cl-source-file.cl as
the :default-component-class argument to defsystem:
(defsystem my-cl-system
:default-component-class cl-source-file.cl
...)
Another builtin class cl-source-file.lsp is offered
for files ending in .lsp.
If you want to use a different extension for which ASDF doesn't provide builtin support, or want to support versions of ASDF earlier than 2.014.14 (but later than 2.000), you can define a class as follows:
;; Prologue: make sure we're using a sane package.
(defpackage :my-asdf-extension
(:use :asdf :common-lisp)
(:export #:cl-source-file.lis))
(in-package :my-asdf-extension)
(defclass cl-source-file.lis (cl-source-file)
((type :initform "lis")))
Then you can use it as follows:
(defsystem my-cl-system
:default-component-class my-asdf-extension:cl-source-file.lis
...)
Of course, if you're in the same package, e.g. in the same file,
you won't need to use the package qualifier before cl-source-file.lis.
Actually, if all you're doing is defining this class
and using it in the same file without other fancy definitions,
you might skip package complications:
(in-package :asdf)
(defclass cl-source-file.lis (cl-source-file)
((type :initform "lis")))
(defsystem my-cl-system
:default-component-class cl-source-file.lis
...)