changeset 698: | 96958d3eb5b0 |
parent: | 6359b351657a |
author: | Richard Westhaver <ellis@rwest.io> |
date: | Fri, 04 Oct 2024 22:04:59 -0400 |
permissions: | -rw-r--r-- |
description: | fixes |
393
6b87df03cdaf
init cli/tools/cc.lisp for grovel experiments, add zstd tests
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
1 | ;;; cli/tools/cc.lisp --- C Compilers |
6b87df03cdaf
init cli/tools/cc.lisp for grovel experiments, add zstd tests
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
2 | |
6b87df03cdaf
init cli/tools/cc.lisp for grovel experiments, add zstd tests
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
3 | ;; Use C Compiler tooling from Lisp. |
6b87df03cdaf
init cli/tools/cc.lisp for grovel experiments, add zstd tests
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
4 | |
6b87df03cdaf
init cli/tools/cc.lisp for grovel experiments, add zstd tests
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
5 | ;;; Commentary: |
6b87df03cdaf
init cli/tools/cc.lisp for grovel experiments, add zstd tests
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
6 | |
6b87df03cdaf
init cli/tools/cc.lisp for grovel experiments, add zstd tests
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
7 | ;; |
6b87df03cdaf
init cli/tools/cc.lisp for grovel experiments, add zstd tests
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
8 | |
6b87df03cdaf
init cli/tools/cc.lisp for grovel experiments, add zstd tests
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
9 | ;;; Code: |
471
33b0614ee220
cli tools, added vc-bundle, vc-unbundle generics
Richard Westhaver <ellis@rwest.io>
parents:
393
diff
changeset
|
10 | (in-package :cli/tools/cc) |
33b0614ee220
cli tools, added vc-bundle, vc-unbundle generics
Richard Westhaver <ellis@rwest.io>
parents:
393
diff
changeset
|
11 | |
496
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
12 | (deferror cc-error (simple-error error) ()) |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
13 | |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
14 | (defun cc-error (fmt &rest args) |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
15 | (error 'cc-error :format-arguments args :format-control fmt)) |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
16 | |
471
33b0614ee220
cli tools, added vc-bundle, vc-unbundle generics
Richard Westhaver <ellis@rwest.io>
parents:
393
diff
changeset
|
17 | (defparameter *cc* (find-exe "clang")) |
33b0614ee220
cli tools, added vc-bundle, vc-unbundle generics
Richard Westhaver <ellis@rwest.io>
parents:
393
diff
changeset
|
18 | |
496
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
19 | (defparameter *ld* |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
20 | (or |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
21 | #+unix (find-exe "ld.lld") |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
22 | #+darwin (find-exe "ld64.lld") |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
23 | #+windows (find-exe "lld-link") |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
24 | (find-exe "ld"))) |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
25 | |
471
33b0614ee220
cli tools, added vc-bundle, vc-unbundle generics
Richard Westhaver <ellis@rwest.io>
parents:
393
diff
changeset
|
26 | (defun run-cc (&rest args) |
496
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
27 | (let ((proc (sb-ext:run-program *cc* (or args nil) :output :stream))) |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
28 | (with-open-stream (s (sb-ext:process-output proc)) |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
29 | (loop for l = (read-line s nil nil) |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
30 | while l |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
31 | do (write-line l))) |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
32 | (if (eq 0 (sb-ext:process-exit-code proc)) |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
33 | nil |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
34 | (cc-error "CC command failed: ~A ~A" *cc* (or args ""))))) |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
35 | |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
36 | (defun run-ld (&rest args) |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
37 | (let ((proc (sb-ext:run-program *ld* (or args nil) :output :stream))) |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
38 | (with-open-stream (s (sb-ext:process-output proc)) |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
39 | (loop for l = (read-line s nil nil) |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
40 | while l |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
41 | do (write-line l))) |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
42 | (if (eq 0 (sb-ext:process-exit-code proc)) |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
43 | nil |
6359b351657a
tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents:
471
diff
changeset
|
44 | (cc-error "LD command failed: ~A ~A" *ld* (or args ""))))) |