Commit 4851020a8885adc1e3bccbbc17ecbde3b7c1d14a

Thomas de Grivel 2020-08-03T15:22:52

fix build with latest deps

diff --git a/Makefile b/Makefile
index 0e0c10c..b84a083 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 
 PROGRAM = build/adams
 PREFIX = /usr/local
-LISP = sbcl
+LISP = sbcl --dynamic-space-size 2048
 LISP_LOAD = ${LISP} --load
 
 all: ${PROGRAM}
@@ -18,7 +18,7 @@ ${PROGRAM}: build.lisp config.lisp build/systems.lisp toplevel.lisp
 clean:
 	rm -rf build/*
 
-install: ${PROGRAM}
+install:
 	install -m 0755 ${PROGRAM} ${PREFIX}/bin
 
 .PHONY: all clean deps install ${PROGRAM}
diff --git a/build.lisp b/build.lisp
index 8f03252..074ab9d 100644
--- a/build.lisp
+++ b/build.lisp
@@ -18,6 +18,12 @@
 
 (in-package :common-lisp-user)
 
+(declaim (optimize (speed 1)
+                   (space 1)
+                   (safety 3)
+                   (debug 3)
+                   (compilation-speed 0)))
+
 (defun compile-lisp (path)
   (let* ((fasl (make-pathname :type "fasl" :defaults path))
          (fasl (merge-pathnames fasl)))
diff --git a/prepare-build.lisp b/prepare-build.lisp
index 65c2147..8ae26a5 100644
--- a/prepare-build.lisp
+++ b/prepare-build.lisp
@@ -123,10 +123,17 @@
 
 (defmethod collect-sources :around ((x asdf:component))
   (let ((if-feature (asdf::component-if-feature x)))
-    (if if-feature
-        (when (find (the symbol if-feature) *features*)
-          (call-next-method))
-        (call-next-method))))
+    (etypecase if-feature
+      (null
+       (call-next-method))
+      (symbol
+       (when (find (the symbol if-feature) *features*)
+         (call-next-method)))
+      (cons
+       (cond ((string-equal 'not (first if-feature))
+              (unless (find (the symbol (second if-feature)) *features*)
+                (call-next-method)))
+             (t (error "Bad if-feature")))))))
 
 #+nil (collect-sources :adams)