+(defun (setf getenv) (val var)
+ "Set an environment variable."
+ #+allegro (setf (sys::getenv (string var)) (string val))
+ #+clisp (setf (sys::getenv (string var)) (string val))
+ #+cmu (let ((cell (assoc (string var) ext:*environment-list* :test #'equalp
+ :key #'string)))
+ (if cell
+ (setf (cdr cell) (string val))
+ (push (cons (intern (string var) "KEYWORD") (string val)) ext:*environment-list*)))
+ #+gcl (si:setenv (string var) (string val))
+ #+lispworks (setf (lw:environment-variable (string var)) (string val))
+ #+lucid (setf (lcl:environment-variable (string var)) (string val))
+ #-(or allegro clisp cmu gcl lispworks lucid)
+ (error 'not-implemented :proc (list '(setf getenv) var)))
+
+
+;; modified from function ASDF -- Copyright Dan Barlow and Contributors
+
+(defun run-shell-command (control-string &rest args &key output)