[erlang-questions] rebar make
jixiuf
jixiuf@REDACTED
Tue Apr 10 04:45:34 CEST 2012
how about :
(defun erlang-root-by-makefile ()
"Look for Makefile file to find project root of erlang application.
if found return the directory or nil
"
(let ((erlang-root (locate-dominating-file default-directory "Makefile")))
(if erlang-root
(expand-file-name erlang-root)
(setq erlang-root (locate-dominating-file default-directory "makefile"))
(if erlang-root
(expand-file-name erlang-root)
nil
))))
(defun erlang-make()
"run make command at project root directory"
(interactive)
(let ((project-root ( erlang-root-by-makefile))
(compile-command compile-command))
(when project-root
(setq compile-command (concat "make --directory=" project-root))
;; copy src/*.app.src to ebin/*.app
;; if you do this in your Makefile ,you may delete the (dolist)
(dolist (filename (directory-files (expand-file-name "src/" project-root)))
(cond
((string= (file-name-extension filename) "app")
(copy-file (expand-file-name (concat "src/" filename) project-root)
(expand-file-name (concat "ebin/" filename) project-root) t) )
((string= (file-name-extension filename) "src")
(copy-file (expand-file-name (concat "src/" filename) project-root)
(expand-file-name (concat "ebin/" (file-name-sans-extension filename)) project-root) t))))
)
(call-interactively 'compile)
)
)
More information about the erlang-questions
mailing list