cmp: fix C compiler invocation for cygwin
This commit is contained in:
parent
be2d90790f
commit
d6b422fe39
1 changed files with 19 additions and 12 deletions
|
|
@ -51,18 +51,25 @@
|
|||
(program (car program)))
|
||||
(with-current-directory
|
||||
;; when compiling ECL itself, we only have low-level functions
|
||||
;; available, otherwise we can use run-program and get proper
|
||||
;; quoting of arguments
|
||||
#+ecl-min (multiple-value-bind (output-stream return-status pid)
|
||||
(si:run-program-inner program args :default nil)
|
||||
(setf output (collect-lines output-stream))
|
||||
(multiple-value-setq (return-status result)
|
||||
(si:waitpid pid t)))
|
||||
#-ecl-min (multiple-value-bind (output-stream return-status process-obj)
|
||||
(ext:run-program program args :wait nil)
|
||||
(setf output (collect-lines output-stream))
|
||||
(multiple-value-setq (return-status result)
|
||||
(ext:external-process-wait process-obj t)))))
|
||||
;; available ...
|
||||
#+(and ecl-min (not cygwin))
|
||||
(multiple-value-bind (output-stream return-status pid)
|
||||
(si:run-program-inner program args :default nil)
|
||||
(setf output (collect-lines output-stream))
|
||||
(multiple-value-setq (return-status result)
|
||||
(si:waitpid pid t)))
|
||||
;; ... otherwise we can use run-program and get proper
|
||||
;; quoting of arguments ...
|
||||
#+(and (not ecl-min) (not cygwin))
|
||||
(multiple-value-bind (output-stream return-status process-obj)
|
||||
(ext:run-program program args :wait nil)
|
||||
(setf output (collect-lines output-stream))
|
||||
(multiple-value-setq (return-status result)
|
||||
(ext:external-process-wait process-obj t)))
|
||||
;; ... unless we're running on cygwin which has problems with
|
||||
;; forking so we have to use si:system
|
||||
#+cygwin
|
||||
(setf result (si:system (format nil "~A~{ ~A~}" program args)))))
|
||||
(cond ((null result)
|
||||
(cerror "Continues anyway."
|
||||
"Unable to execute:~%(EXT:RUN-PROGRAM ~S ~S)"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue