summaryrefslogtreecommitdiff
path: root/lisp/cedet/ede/proj-prog.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/cedet/ede/proj-prog.el')
-rw-r--r--lisp/cedet/ede/proj-prog.el23
1 files changed, 23 insertions, 0 deletions
diff --git a/lisp/cedet/ede/proj-prog.el b/lisp/cedet/ede/proj-prog.el
index da99acd6f9d..4b0843e1408 100644
--- a/lisp/cedet/ede/proj-prog.el
+++ b/lisp/cedet/ede/proj-prog.el
@@ -25,9 +25,12 @@
;;
;; Handle building programs from object files in and EDE Project file.
+(eval-when-compile (require 'cl))
(require 'ede/pmake)
(require 'ede/proj-obj)
+(declare-function ede-shell-run-something "ede/shell")
+
;;; Code:
(defclass ede-proj-target-makefile-program
(ede-proj-target-makefile-objectcode)
@@ -107,6 +110,26 @@ Note: Not currently used. This bug needs to be fixed.")
(funcall ede-debug-program-function cmd))
(kill-buffer tb))))
+(defmethod project-run-target ((obj ede-proj-target-makefile-program) &optional command)
+ "Run a program target OBJ.
+Optional COMMAND is the command to run in place of asking the user."
+ (require 'ede/shell)
+ (let ((tb (get-buffer-create " *padt*"))
+ (dd (if (not (string= (oref obj path) ""))
+ (oref obj path)
+ default-directory))
+ (cmd nil))
+ (unwind-protect
+ (progn
+ (set-buffer tb)
+ (setq default-directory dd)
+ (setq cmd (or command
+ (read-from-minibuffer
+ "Run (like this): "
+ (concat "./" (ede-target-name obj)))))
+ (ede-shell-run-something obj cmd)
+ )
+ (kill-buffer tb))))
(provide 'ede/proj-prog)