-
-
Notifications
You must be signed in to change notification settings - Fork 19
/
build-config.lisp
37 lines (33 loc) · 1.62 KB
/
build-config.lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
;;;
;;; Extra config to build the binary,
;;; stuff that doesn't need to be in the .asd
;;; (and would be harmful to be there).
;;;
;; We want to configure cl+ssl for the Deploy binary,
;; and we need to load cl+ssl before we can load this config.
;; If it was in the .asd, we would have to load cl+ssl before being able
;; to load the .asd file, which is annoying
;; (it impeds loading CIEL in the REPL with a usual load-asd (C-c C-k)
;; and complicates Ultralisp or Quicklisp distribution).
;;
;; So, we need cl+ssl to build the binary with asdf:make
;; See also the Makefile that quickloads cl+ssl already (maybe this below isn't
;; required any more?)
(unless (find-package :cl+ssl)
(warn "Loading build-config.lisp: we don't find the package CL+SSL. You need to install it before loading this config file and building CIEL's binary. Let's install it with Quicklisp now.~&")
(ql:quickload "cl+ssl"))
(require "cl+ssl")
;; Don't ship libssl, rely on the target OS'.
#+linux (deploy:define-library cl+ssl::libssl :dont-deploy T)
#+linux (deploy:define-library cl+ssl::libcrypto :dont-deploy T)
;; Use compression: from 114M, 0.02s startup time to 27M and 0.42s (SBCL 2.0.10).
#+sb-core-compression
(defmethod asdf:perform ((o asdf:image-op) (c asdf:system))
(uiop:dump-image (asdf:output-file o c) :executable t :compression t))
;; Even with the binary, ASDF wants to update itself and crashes
;; if it doesn't find an ASDF directory, like on a user's system.
;; Thanks again to Shinmera.
(deploy:define-hook (:deploy asdf) (directory)
(declare (ignorable directory))
#+asdf (asdf:clear-source-registry)
#+asdf (defun asdf:upgrade-asdf () nil))