changeset 371: | 7dcabf3e0edc |
parent: | 532910875d5a |
author: | Richard Westhaver <ellis@rwest.io> |
date: | Tue, 24 Sep 2024 15:53:24 -0400 |
permissions: | -rw-r--r-- |
description: | no link in bootstrap.sh |
271 | 1 | ;;; autogen.lisp --- Auto-generate CC Infrastructure |
2 | ||
3 | ;; This script must be ran with a compliant CC lisp core image from a complian |
|
4 | ;; CC lisp compiler. The easiest way to get started is by running the |
|
5 | ;; 'bootstrap.sh' script first which will download these for you into the |
|
6 | ;; local 'STASH' directory and run this script automatically. |
|
212 | 7 | |
271 | 8 | #| |
9 | # download pre-compiled binaries and run autogen.lisp |
|
10 | ./bootstrap.sh |
|
11 | ||
12 | # or run manually with local lisp runtime and core |
|
13 | sbcl --core $LISP_HOME/user.core --script autogen.lisp \ |
|
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
14 | --eval "(infra/autogen:autogen)" |
271 | 15 | |# |
212 | 16 | |
17 | ;;; Code: |
|
18 | (in-package :std-user) |
|
19 | ||
264 | 20 | (defpkg :infra/autogen |
308
64e35d4f68fd
lisp updates, ld fix, emacs with tree-sitter explicit
Richard Westhaver <ellis@rwest.io>
parents:
296
diff
changeset
|
21 | (:nicknames :infra) |
212 | 22 | (:use :cl :skel :log :std/named-readtables |
23 | :dat/json :dat/sxp :net/fetch :net/util |
|
24 | :cli/progress :cli/ansi :cli/ed :cli/prompt |
|
219 | 25 | :cli/shell :std/hash-table :std/alien :std/macs |
271 | 26 | :std/fmt) |
308
64e35d4f68fd
lisp updates, ld fix, emacs with tree-sitter explicit
Richard Westhaver <ellis@rwest.io>
parents:
296
diff
changeset
|
27 | (:export :autogen *profile* :*host* |
64e35d4f68fd
lisp updates, ld fix, emacs with tree-sitter explicit
Richard Westhaver <ellis@rwest.io>
parents:
296
diff
changeset
|
28 | :*all-features* :*host-env* :gethost :getprofile |
64e35d4f68fd
lisp updates, ld fix, emacs with tree-sitter explicit
Richard Westhaver <ellis@rwest.io>
parents:
296
diff
changeset
|
29 | :getenv)) |
254 | 30 | |
264 | 31 | (in-package :infra/autogen) |
212 | 32 | (in-readtable :shell) |
271 | 33 | ;;; Vars |
295 | 34 | (defvar *all-features* |
35 | (list :default :org :demo :emacs-mini :ts :ts-langs :rust-tools :quicklisp :pod :box :packy)) |
|
36 | ||
254 | 37 | (defparameter *profile* (uiop:read-file-forms |
38 | (if-let ((profile (sb-posix:getenv "INFRA_PROFILE"))) |
|
295 | 39 | (probe-file profile) |
40 | (when-let ((default (probe-file "default.sxp"))) |
|
41 | (sb-posix:setenv "INFRA_PROFILE" (namestring default) 1) |
|
42 | default)))) |
|
254 | 43 | (defparameter *host* (uiop:read-file-forms |
255
ad70dec68fa1
autogen updates and moved Containerfiles
Richard Westhaver <ellis@rwest.io>
parents:
254
diff
changeset
|
44 | (let ((hcfg (format nil "~a.sxp" (sb-unix:unix-gethostname)))) |
ad70dec68fa1
autogen updates and moved Containerfiles
Richard Westhaver <ellis@rwest.io>
parents:
254
diff
changeset
|
45 | (unless (probe-file hcfg) |
ad70dec68fa1
autogen updates and moved Containerfiles
Richard Westhaver <ellis@rwest.io>
parents:
254
diff
changeset
|
46 | (print #0$./check.sh$#)) |
ad70dec68fa1
autogen updates and moved Containerfiles
Richard Westhaver <ellis@rwest.io>
parents:
254
diff
changeset
|
47 | hcfg))) |
254 | 48 | (defparameter *host-env* (let ((table (make-hash-table :test 'equal)) |
49 | (keys (list "STASH" "STORE" "DIST" "PACKY_URL" "VC_URL" "INSTALL_PREFIX" |
|
288 | 50 | "CC" "AR" "HG" "GIT" "LISP" "RUSTC" "LD" "SHELL" "DEV" "DEV_HOME" |
254 | 51 | "DEV_ID" "WORKER" "WORKER_ID" "WORKER_HOME" "CARGO_HOME" "RUSTUP_HOME" |
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
52 | "LISP_HOME" "INFRA_PROFILE" "LOG_LEVEL"))) |
254 | 53 | (dolist (k keys table) |
54 | (setf (gethash k table) (sb-posix:getenv k))))) |
|
271 | 55 | |
56 | ;;; Utils |
|
57 | (defun gethost (k) (getf *host* k)) |
|
58 | (defun getprofile (k) (getf *profile* k)) |
|
59 | ||
254 | 60 | (defun getenv (k) (gethash *host-env* k)) |
212 | 61 | |
271 | 62 | (defun setenv (k v) |
63 | (sb-posix:setenv k v 1) |
|
64 | (setf (gethash k *host-env*) v)) |
|
65 | ||
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
66 | (defmacro setenv* (&rest forms) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
67 | `(progn |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
68 | ,@(loop for (k v) on forms by #'cddr while v |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
69 | collect `(setenv ,k (or ,v ""))))) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
70 | |
289 | 71 | (defmacro check-err (is-warn ctrl &rest args) |
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
72 | `(if ,is-warn |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
73 | (warn 'simple-warning |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
74 | :format-control ,ctrl |
289 | 75 | :format-arguments (list ,@args)) |
76 | (std:simple-program-error |
|
77 | ,ctrl |
|
78 | ,@args))) |
|
79 | ||
80 | (defun setenv-exe (k v &optional warn) |
|
81 | (if-let ((path (cli:find-exe v))) |
|
295 | 82 | (setenv k (namestring path)) |
83 | (check-err warn "~A not found: ~A" k v))) |
|
289 | 84 | |
85 | (defun setenv-probe (k v &optional warn) |
|
86 | (if-let ((path (probe-file v))) |
|
295 | 87 | (setenv k (namestring path)) |
88 | (check-err warn "~A not found: ~A" k v))) |
|
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
89 | |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
90 | (defun check-shared-lib (name &optional warn) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
91 | "Check for a shared library by loading it in the current session with dlopen. |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
92 | When WARN is non-nil, signal a warning instead of an error." |
291 | 93 | (let ((local-lib-name (format nil "/usr/local/lib/lib~a.so" name)) |
94 | (sys-lib-name (format nil "/usr/lib/lib~a.so" name))) |
|
95 | (if-let ((lib (or (ignore-errors (sb-alien:load-shared-object local-lib-name)) |
|
96 | (ignore-errors (sb-alien:load-shared-object sys-lib-name))))) |
|
97 | (unwind-protect (format t "found shared lib: ~A~%" lib) |
|
98 | (sb-alien:unload-shared-object lib)) |
|
99 | (check-err warn "shared library missing in /usr/lib/ or /usr/local/lib/: ~x" name)))) |
|
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
100 | |
289 | 101 | (defun check-exe (name &optional warn) |
102 | "Check for an executable in current $PATH by NAME. When WARN is non-nil, signal |
|
103 | a warning instead of an error." |
|
104 | (if-let ((bin (cli:find-exe name))) |
|
295 | 105 | (progn (format t "found executable: ~A~%" bin) t) |
106 | (check-err warn "executable missing: ~x" name))) |
|
289 | 107 | |
108 | (defun check-default () |
|
311
55a2606d7bfb
dont check for dependencies so aggresively
Richard Westhaver <ellis@rwest.io>
parents:
308
diff
changeset
|
109 | ;; (check-shared-lib "rocksdb") |
55a2606d7bfb
dont check for dependencies so aggresively
Richard Westhaver <ellis@rwest.io>
parents:
308
diff
changeset
|
110 | ;; (check-shared-lib "uring") |
289 | 111 | (check-shared-lib "zstd") |
311
55a2606d7bfb
dont check for dependencies so aggresively
Richard Westhaver <ellis@rwest.io>
parents:
308
diff
changeset
|
112 | ;; (check-shared-lib "tree-sitter") |
289 | 113 | (check-shared-lib "xkbcommon")) |
114 | ||
115 | (defun check-org () |
|
116 | (check-exe "emacs" t)) |
|
117 | ||
118 | (defun check-pod () |
|
119 | (check-exe "podman")) |
|
120 | ||
121 | (defun check-box () |
|
295 | 122 | (check-exe "qemu-system-x86_64")) |
123 | ||
124 | (defun check-all () |
|
125 | (check-default) |
|
126 | (check-org) |
|
127 | (check-pod) |
|
128 | (check-box)) |
|
289 | 129 | |
130 | (defun check-feature (name) |
|
131 | "Dispatch a host check based on feature NAME." |
|
132 | (case name |
|
133 | (:default (check-default)) |
|
134 | (:org (check-org)) |
|
135 | (:pod (check-pod)) |
|
136 | (:box (check-box)) |
|
295 | 137 | (:all (check-all)) |
289 | 138 | (t (warn "unsupported feature: ~A" name)))) |
139 | ||
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
140 | (defun getpro-else (k else) (or (getprofile k) else)) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
141 | |
271 | 142 | ;;; Config |
143 | (defun init-profile () |
|
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
144 | (info! "initializing profile...") |
289 | 145 | (let* ((packy-url (uri:uri (getpro-else :packy-url "https://packy.compiler.company"))) |
146 | (vc-url (uri:uri (getpro-else :packy-url "https://vc.compiler.company"))) |
|
147 | (ar (getpro-else :ar "tar")) |
|
148 | (git (getpro-else :git "git")) |
|
149 | (hg (getpro-else :hg "hg")) |
|
150 | (cc (getpro-else :cc "clang")) |
|
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
151 | (ld (getpro-else :ld "lld")) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
152 | (install-prefix (getpro-else :install-prefix "/usr/local")) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
153 | (stash (getpro-else :stash ".stash")) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
154 | (store (getpro-else :store (namestring (merge-pathnames "share/store" stash)))) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
155 | (dist (getpro-else :dist (namestring (merge-pathnames "dist" store)))) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
156 | (lisp (getpro-else :lisp (lisp-implementation-type))) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
157 | (lisp-version (getpro-else :lisp-version (lisp-implementation-version))) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
158 | (log-level (getprofile :log-level)) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
159 | (lisp-home (getprofile :lisp-home)) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
160 | (quicklisp-home (getprofile :quicklisp-home)) |
288 | 161 | (rustc (getpro-else :rustc "rustc")) |
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
162 | (rust-home (getprofile :rust-home)) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
163 | (rustup-home (getprofile :rustup-home)) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
164 | (cargo-home (getprofile :cargo-home)) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
165 | (features (getprofile :features))) |
289 | 166 | (setq *log-level* log-level) |
167 | (when (log:trace-p) |
|
168 | (trace! "env before update:") |
|
169 | (loop for k being the hash-key |
|
170 | using (hash-value v) of *host-env* |
|
171 | do (format t " ~A = ~A~%" k (or v "")) |
|
172 | finally (terpri))) |
|
173 | (setenv-probe "STASH" stash t) |
|
174 | (setenv-probe "STORE" store t) |
|
175 | (setenv-probe "DIST" dist t) |
|
176 | (setenv-probe "INSTALL_PREFIX" install-prefix) |
|
177 | (setenv-exe "CC" cc) |
|
178 | (setenv-exe "LD" ld) |
|
179 | (setenv-exe "AR" ar) |
|
180 | (setenv-exe "GIT" git) |
|
181 | (setenv-exe "HG" hg) |
|
182 | (setenv-exe "RUSTC" rustc t) |
|
183 | (setenv-exe "LISP" lisp t) |
|
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
184 | (setenv* |
289 | 185 | "PACKY_URL" (uri:uri-to-string packy-url) |
186 | "VC_URL" (uri:uri-to-string vc-url) |
|
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
187 | "LISP_VERSION" lisp-version |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
188 | "LISP_HOME" lisp-home |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
189 | "QUICKLISP_HOME" quicklisp-home |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
190 | "RUST_HOME" rust-home |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
191 | "RUSTUP_HOME" rustup-home |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
192 | "CARGO_HOME" cargo-home |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
193 | "INSTALL_PREFIX" install-prefix |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
194 | "LOG_LEVEL" (symbol-name log-level)) |
289 | 195 | (terpri) |
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
196 | ;; process features |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
197 | (loop for f in features |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
198 | do (progn |
289 | 199 | (format t "checking host for feature: ~A~%" f) |
200 | (check-feature f) |
|
201 | (terpri))))) |
|
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
202 | |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
203 | (defun init-host () |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
204 | ) |
271 | 205 | |
206 | ;;; Build |
|
207 | (defun make-default () |
|
208 | (std/thread:wait-for-threads |
|
289 | 209 | (list (sb-thread:make-thread (lambda () (sk-call* *skel-project* :repos)) :name "repos"))) |
210 | (std/thread:wait-for-threads |
|
211 | (list |
|
212 | (sb-thread:make-thread (lambda () (vc:run-hg-command "clone" (list ".stash/src/core.hg" ".stash/src/core"))) |
|
213 | :name "core") |
|
214 | (sb-thread:make-thread (lambda () (vc:run-hg-command "clone" (list ".stash/src/home.hg" ".stash/src/home"))) |
|
215 | :name "home") |
|
216 | (sb-thread:make-thread (lambda () (vc:run-hg-command "clone" (list ".stash/src/etc.hg" ".stash/src/etc"))) |
|
217 | :name "etc")))) |
|
271 | 218 | |
219 | (defun make-pods () |
|
276 | 220 | (vc:run-hg-command "clone" (list ".stash/src/pod.hg" ".stash/src/pod")) |
271 | 221 | (std/thread:wait-for-threads |
222 | (list (sb-thread:make-thread (lambda () (sk-call* *skel-project* :archlinux :box))) |
|
223 | (sb-thread:make-thread (lambda () (sk-call* *skel-project* :alpine :worker)))))) |
|
266 | 224 | |
276 | 225 | (defun make-boxes () |
226 | (vc:run-hg-command "clone" (list ".stash/src/box.hg" ".stash/src/box"))) |
|
227 | ||
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
228 | (defun make-packy () |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
229 | (sk-call* *skel-project* :packy-repos)) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
230 | |
276 | 231 | (defun make-org () |
232 | (vc:run-hg-command "clone" (list ".stash/src/org.hg" ".stash/src/org"))) |
|
233 | ||
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
234 | (defun make-demo () |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
235 | (vc:run-hg-command "clone" (list ".stash/src/demo.hg" ".stash/src/demo"))) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
236 | |
295 | 237 | (defun make-quicklisp () |
238 | (sk-call *skel-project* :quicklisp)) |
|
239 | ||
240 | (defun make-emacs-mini () |
|
241 | (sk-run (sk-find-script "install-emacs-mini-pack" *skel-project*))) |
|
242 | ||
313 | 243 | (defun make-tree-sitter () |
295 | 244 | (sk-call *skel-project* :tree-sitter)) |
245 | ||
313 | 246 | (defun make-tree-sitter-langs () |
295 | 247 | (sk-call *skel-project* :tree-sitter-langs)) |
248 | ||
255
ad70dec68fa1
autogen updates and moved Containerfiles
Richard Westhaver <ellis@rwest.io>
parents:
254
diff
changeset
|
249 | (defun autogen () |
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
250 | (info! (machine-version) |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
251 | "starting autogen...") |
271 | 252 | (in-readtable :shell) |
255
ad70dec68fa1
autogen updates and moved Containerfiles
Richard Westhaver <ellis@rwest.io>
parents:
254
diff
changeset
|
253 | (terpri) |
271 | 254 | (init-profile) |
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
255 | (init-host) |
271 | 256 | (init-skel-vars) |
257 | (setq *skel-project* (find-skelfile *default-pathname-defaults* :load t)) |
|
258 | (unless (probe-file #p".stash") |
|
259 | (sk-call* *skel-project* :bootstrap)) |
|
289 | 260 | (terpri) |
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
261 | ;; print post-init info |
289 | 262 | (when (log:info-p) |
263 | (log:info! "") |
|
264 | (format t "lisp: ~A ~A~%"(lisp-implementation-type) (lisp-implementation-version)) |
|
265 | (terpri) |
|
266 | (format t "core: ~A~%" sb-ext:*core-pathname*) |
|
267 | (terpri) |
|
268 | (println "host:") |
|
269 | (loop for (k v) on *host* by 'cddr |
|
270 | do (format t " ~A = ~A~%" k v)) |
|
271 | (terpri) |
|
272 | (println "profile:") |
|
273 | (loop for (k v) on *profile* by 'cddr |
|
274 | do (format t " ~A = ~A~%" k v)) |
|
275 | (terpri) |
|
276 | (println "env:") |
|
277 | (loop for k being the hash-key |
|
278 | using (hash-value v) of *host-env* |
|
279 | do (format t " ~A = ~A~%" k (or v "")))) |
|
280 | ;; process all features |
|
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
281 | (let ((features (getprofile :features))) |
296 | 282 | (when (member :all features) (setq features *all-features*)) |
289 | 283 | (when (member :default features) (make-default)) |
284
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
284 | (std/thread:wait-for-threads |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
285 | (std:flatten |
71ac00213ae3
updates, rm scripts/autogen.lisp
Richard Westhaver <ellis@rwest.io>
parents:
283
diff
changeset
|
286 | (list |
289 | 287 | (when (member :org features) (sb-thread:make-thread #'make-org :name "org")) |
288 | (when (member :pod features) (sb-thread:make-thread #'make-pods :name "pod")) |
|
295 | 289 | (when (member :quicklisp features) (sb-thread:make-thread #'make-quicklisp :name "quicklisp")) |
290 | (when (member :emacs-mini features) (sb-thread:make-thread #'make-emacs-mini :name "emacs-mini")) |
|
291 | (when (member :ts features) (sb-thread:make-thread #'make-ts :name "ts")) |
|
292 | (when (member :ts-langs features) (sb-thread:make-thread #'make-ts-langs :name "ts-langs")) |
|
289 | 293 | (when (member :box features) (sb-thread:make-thread #'make-boxes :name "box")) |
294 | (when (member :packy features) (sb-thread:make-thread #'make-packy :name "packy"))))))) |