;;; tools/make/autoload.el -*- lexical-binding: t; -*-

(require 'makefile-executor)

;;;###autoload
(defun +make/run ()
  "Run a make task in the current project. If multiple makefiles are available,
you'll be prompted to select one."
  (interactive)
  (if (doom-project-p 'nocache)
      (makefile-executor-execute-project-target)
    (let ((makefile (cl-loop with buffer-file = (or buffer-file-name default-directory)
                             for file in (list "Makefile" "makefile")
                             if (locate-dominating-file buffer-file file)
                             return file)))
      (unless makefile
        (user-error "Cannot find a makefile in the current project"))
      (let ((default-directory (file-name-directory makefile)))
        (makefile-executor-execute-target makefile)))))

;;;###autoload
(defun +make/run-last ()
  "TODO"
  (interactive)
  (makefile-executor-execute-last nil))