diff --git a/modules/tools/make/autoload.el b/modules/tools/make/autoload.el index ce8de9d3a..b921ed3aa 100644 --- a/modules/tools/make/autoload.el +++ b/modules/tools/make/autoload.el @@ -1,14 +1,25 @@ ;;; tools/make/autoload.el -*- lexical-binding: t; -*- +(require 'makefile-executor) + ;;;###autoload (defun +make/run () - "Run a make task in the current project." + "Run a make task in the current project. If multiple makefiles are available, +you'll be prompted to select one." (interactive) - (require 'makefile-executor) - (let* ((buffer-file (or buffer-file-name default-directory)) - (makefile-dir (locate-dominating-file buffer-file "Makefile"))) - (unless makefile-dir - (user-error "No makefile found in this project.")) - (let ((default-directory makefile-dir)) - (makefile-executor-execute-target - (expand-file-name "Makefile"))))) + (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))