changeset 295: |
61f88f16e0f1 |
parent 294: |
367bc1714864 |
child 296: |
310cc699f766 |
author: |
Richard Westhaver <ellis@rwest.io> |
date: |
Wed, 19 Jun 2024 22:38:17 +0000 |
files: |
autogen.lisp bootstrap.sh |
description: |
autogen updates |
1.1--- a/autogen.lisp Wed Jun 19 17:50:43 2024 -0400
1.2+++ b/autogen.lisp Wed Jun 19 22:38:17 2024 +0000
1.3@@ -28,12 +28,15 @@
1.4 (in-package :infra/autogen)
1.5 (in-readtable :shell)
1.6 ;;; Vars
1.7+(defvar *all-features*
1.8+ (list :default :org :demo :emacs-mini :ts :ts-langs :rust-tools :quicklisp :pod :box :packy))
1.9+
1.10 (defparameter *profile* (uiop:read-file-forms
1.11 (if-let ((profile (sb-posix:getenv "INFRA_PROFILE")))
1.12- (probe-file profile)
1.13- (when-let ((default (probe-file "default.sxp")))
1.14- (sb-posix:setenv "INFRA_PROFILE" (namestring default) 1)
1.15- default))))
1.16+ (probe-file profile)
1.17+ (when-let ((default (probe-file "default.sxp")))
1.18+ (sb-posix:setenv "INFRA_PROFILE" (namestring default) 1)
1.19+ default))))
1.20 (defparameter *host* (uiop:read-file-forms
1.21 (let ((hcfg (format nil "~a.sxp" (sb-unix:unix-gethostname))))
1.22 (unless (probe-file hcfg)
1.23@@ -73,13 +76,13 @@
1.24
1.25 (defun setenv-exe (k v &optional warn)
1.26 (if-let ((path (cli:find-exe v)))
1.27- (setenv k (namestring path))
1.28- (check-err warn "~A not found: ~A" k v)))
1.29+ (setenv k (namestring path))
1.30+ (check-err warn "~A not found: ~A" k v)))
1.31
1.32 (defun setenv-probe (k v &optional warn)
1.33 (if-let ((path (probe-file v)))
1.34- (setenv k (namestring path))
1.35- (check-err warn "~A not found: ~A" k v)))
1.36+ (setenv k (namestring path))
1.37+ (check-err warn "~A not found: ~A" k v)))
1.38
1.39 (defun check-shared-lib (name &optional warn)
1.40 "Check for a shared library by loading it in the current session with dlopen.
1.41@@ -96,8 +99,8 @@
1.42 "Check for an executable in current $PATH by NAME. When WARN is non-nil, signal
1.43 a warning instead of an error."
1.44 (if-let ((bin (cli:find-exe name)))
1.45- (progn (format t "found executable: ~A~%" bin) t)
1.46- (check-err warn "executable missing: ~x" name)))
1.47+ (progn (format t "found executable: ~A~%" bin) t)
1.48+ (check-err warn "executable missing: ~x" name)))
1.49
1.50 (defun check-default ()
1.51 (check-shared-lib "rocksdb")
1.52@@ -113,7 +116,13 @@
1.53 (check-exe "podman"))
1.54
1.55 (defun check-box ()
1.56- (check-exe "qemu"))
1.57+ (check-exe "qemu-system-x86_64"))
1.58+
1.59+(defun check-all ()
1.60+ (check-default)
1.61+ (check-org)
1.62+ (check-pod)
1.63+ (check-box))
1.64
1.65 (defun check-feature (name)
1.66 "Dispatch a host check based on feature NAME."
1.67@@ -122,6 +131,7 @@
1.68 (:org (check-org))
1.69 (:pod (check-pod))
1.70 (:box (check-box))
1.71+ (:all (check-all))
1.72 (t (warn "unsupported feature: ~A" name))))
1.73
1.74 (defun getpro-else (k else) (or (getprofile k) else))
1.75@@ -221,6 +231,18 @@
1.76 (defun make-demo ()
1.77 (vc:run-hg-command "clone" (list ".stash/src/demo.hg" ".stash/src/demo")))
1.78
1.79+(defun make-quicklisp ()
1.80+ (sk-call *skel-project* :quicklisp))
1.81+
1.82+(defun make-emacs-mini ()
1.83+ (sk-run (sk-find-script "install-emacs-mini-pack" *skel-project*)))
1.84+
1.85+(defun make-ts ()
1.86+ (sk-call *skel-project* :tree-sitter))
1.87+
1.88+(defun make-ts-langs ()
1.89+ (sk-call *skel-project* :tree-sitter-langs))
1.90+
1.91 (defun autogen ()
1.92 (info! (machine-version)
1.93 "starting autogen...")
1.94@@ -254,11 +276,16 @@
1.95 do (format t " ~A = ~A~%" k (or v ""))))
1.96 ;; process all features
1.97 (let ((features (getprofile :features)))
1.98+ (when (member :all features) (setf features *all-features*))
1.99 (when (member :default features) (make-default))
1.100 (std/thread:wait-for-threads
1.101 (std:flatten
1.102 (list
1.103 (when (member :org features) (sb-thread:make-thread #'make-org :name "org"))
1.104 (when (member :pod features) (sb-thread:make-thread #'make-pods :name "pod"))
1.105+ (when (member :quicklisp features) (sb-thread:make-thread #'make-quicklisp :name "quicklisp"))
1.106+ (when (member :emacs-mini features) (sb-thread:make-thread #'make-emacs-mini :name "emacs-mini"))
1.107+ (when (member :ts features) (sb-thread:make-thread #'make-ts :name "ts"))
1.108+ (when (member :ts-langs features) (sb-thread:make-thread #'make-ts-langs :name "ts-langs"))
1.109 (when (member :box features) (sb-thread:make-thread #'make-boxes :name "box"))
1.110 (when (member :packy features) (sb-thread:make-thread #'make-packy :name "packy")))))))
2.1--- a/bootstrap.sh Wed Jun 19 17:50:43 2024 -0400
2.2+++ b/bootstrap.sh Wed Jun 19 22:38:17 2024 +0000
2.3@@ -1,8 +1,14 @@
2.4 #!/bin/sh
2.5-set -eu
2.6+
2.7
2.8 main() {
2.9 . ./check.sh
2.10+ if [[ -z "${INFRA_PROFILE:-}" ]]; then
2.11+ export INFRA_PROFILE="${1:-default.sxp}"
2.12+ else
2.13+ export INFRA_PROFILE="${INFRA_PROFILE}"
2.14+ fi
2.15+ set -eu
2.16 download --check
2.17 local _arch=$(_read arch | tr -d '"')
2.18 local _ext=""