]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/emacs-lisp/comp.el (native-compile): Add OUTPUT parameter.
authorAndrea Corallo <akrl@sdf.org>
Sat, 19 Sep 2020 10:31:03 +0000 (12:31 +0200)
committerAndrea Corallo <akrl@sdf.org>
Wed, 23 Sep 2020 18:47:34 +0000 (20:47 +0200)
lisp/emacs-lisp/comp.el

index 4795d2fc07e81dc87e6d38b1a01de7d869dd5896..d4f003f7717f5ed826f87e7506c517211cb9ff6c 100644 (file)
@@ -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\f\n" 1)
     (condition-case err