Желание делать отдельный самодостаточный исполняемый файл, хотя можно просто дать исходники, немного станновато, но допустим, что такая необходимость возникла.
Проект к этому моменту уже приобрёл законченный вид и организован как локальная система quicklisp. Здесь можно прочитать как сразу создать удобную среду для разработки.
Далее нужен buildapp, это исполняемый файл, так что переходим в каталог, который у нас в ${PATH}. Для меня это ~/local/bin. Запускаем sbcl
(ql:quickload 'buildapp)
(buildapp:build-buildapp)
Переходим в каталог проекта и запускаем sbcl, загружаем наш проект (в моём случае test-cffi) и записываем его манифест.
(ql:quickload :test-cffi)
(ql:write-asdf-manifest-file "test-cffi.manifest")
И уже окончательно:
% buildapp --output test-cffi --manifest-file test-cffi.manifest \
--load-system test-cffi --entry test-cffi:main
% ls -l
-rw-r--r-- 1 rabbit rabbit 1654 01-May-2016 20:49 test-cffi.manifest
-rw-r--r-- 1 rabbit rabbit 111 01-May-2016 20:57 package.lisp
-rw-r--r-- 1 rabbit rabbit 57 17-Apr-2016 15:22 README.txt
-rwxr-xr-x 1 rabbit rabbit 57802800 01-May-2016 22:06 test-cffi*
-rw-r--r-- 1 rabbit rabbit 280 17-Apr-2016 15:45 test-cffi.asd
-rw-r--r-- 1 rabbit rabbit 2181 01-May-2016 20:59 test-cffi.lisp
Функция main, которая дожна быть экспортирована из нашего проекта имеет вид:
(defun main (argv)
(declare (ignore argv))
(win-box))