(use posix utils extras) (let ((cmds '("make PLATFORM=linux CHICKEN=$HOME/local/chicken-5.0.0pre1/bin/chicken PREFIX=/tmp/chicken-hang spotless boot-chicken" "make PLATFORM=linux CHICKEN=./chicken-boot PREFIX=/tmp/chicken-hang spotless install" ))) (for-each (lambda (cmd) (let-values (((in out pid) (process (sprintf "~A 2>&1" cmd)))) (let-values (((pid exit-normal? status) (process-wait pid))) (let ((output (read-all in))) (close-input-port in) (close-output-port out) (print output) (cons status output))))) cmds))