changelog shortlog graph tags branches files raw help

Mercurial > infra / changeset: autogen updates

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=""