From: Andrea Corallo Date: Sat, 19 Sep 2020 10:31:03 +0000 (+0200) Subject: * lisp/emacs-lisp/comp.el (native-compile): Add OUTPUT parameter. X-Git-Tag: emacs-28.0.90~2727^2~430 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=63c65b4fe0e27b70a99463a8f7de4750811fd1e0;p=emacs.git * lisp/emacs-lisp/comp.el (native-compile): Add OUTPUT parameter. --- diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index 4795d2fc07e..d4f003f7717 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -2709,13 +2709,14 @@ display a message." ;;; Compiler entry points. ;;;###autoload -(defun native-compile (function-or-file &optional with-late-load) +(defun native-compile (function-or-file &optional with-late-load output) "Compile FUNCTION-OR-FILE into native code. This is the entry-point for the Emacs Lisp native compiler. FUNCTION-OR-FILE is a function symbol or a path to an Elisp file. -When WITH-LATE-LOAD non Nil mark the compilation unit for late load +When WITH-LATE-LOAD non-nil mark the compilation unit for late load once finished compiling (internal use only). -Return the compilation unit file name." +When OUTPUT is non-nil use it as filename for the compiled object. +Return the compile object filename." (comp-ensure-native-compiler) (unless (or (functionp function-or-file) (stringp function-or-file)) @@ -2727,11 +2728,15 @@ Return the compilation unit file name." (byte-compile-debug t) (comp-ctxt (make-comp-ctxt - :output (if (symbolp function-or-file) - (make-temp-file (symbol-name function-or-file) nil ".eln") - (comp-el-to-eln-filename function-or-file - (when byte-native-for-bootstrap - (car (last comp-eln-load-path))))) + :output (or (when output + (expand-file-name output)) + (if (symbolp function-or-file) + (make-temp-file (symbol-name function-or-file) nil + ".eln") + (comp-el-to-eln-filename + function-or-file + (when byte-native-for-bootstrap + (car (last comp-eln-load-path)))))) :with-late-load with-late-load))) (comp-log "\n \n" 1) (condition-case err