mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-03 02:31:03 -08:00
Allow overriding comp settings for speed, debug, driver
This commit is contained in:
parent
258fba4e7f
commit
c1ff4f76a8
1 changed files with 30 additions and 11 deletions
|
|
@ -3585,17 +3585,7 @@ function symbol or a form, if the compilation was successful
|
||||||
return the compiled function."
|
return the compiled function."
|
||||||
(comp--native-compile function-or-file nil output))
|
(comp--native-compile function-or-file nil output))
|
||||||
|
|
||||||
;;;###autoload
|
(defun batch-native-compile-1 (&optional for-tarball)
|
||||||
(defun batch-native-compile (&optional for-tarball)
|
|
||||||
"Perform batch native compilation of remaining command-line arguments.
|
|
||||||
|
|
||||||
Native compilation equivalent of `batch-byte-compile'.
|
|
||||||
Use this from the command line, with `-batch'; it won't work
|
|
||||||
in an interactive Emacs session.
|
|
||||||
Optional argument FOR-TARBALL non-nil means the file being compiled
|
|
||||||
as part of building the source tarball, in which case the .eln file
|
|
||||||
will be placed under the native-lisp/ directory (actually, in the
|
|
||||||
last directory in `native-comp-eln-load-path')."
|
|
||||||
(comp-ensure-native-compiler)
|
(comp-ensure-native-compiler)
|
||||||
(let ((comp-running-batch-compilation t)
|
(let ((comp-running-batch-compilation t)
|
||||||
(native-compile-target-directory
|
(native-compile-target-directory
|
||||||
|
|
@ -3610,6 +3600,35 @@ last directory in `native-comp-eln-load-path')."
|
||||||
else
|
else
|
||||||
collect (byte-compile-file file))))
|
collect (byte-compile-file file))))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(cl-defun batch-native-compile (&optional for-tarball)
|
||||||
|
"Perform batch native compilation of remaining command-line arguments.
|
||||||
|
|
||||||
|
Native compilation equivalent of `batch-byte-compile'.
|
||||||
|
Use this from the command line, with `-batch'; it won't work
|
||||||
|
in an interactive Emacs session.
|
||||||
|
Optional argument FOR-TARBALL non-nil means the file being compiled
|
||||||
|
as part of building the source tarball, in which case the .eln file
|
||||||
|
will be placed under the native-lisp/ directory (actually, in the
|
||||||
|
last directory in `native-comp-eln-load-path')."
|
||||||
|
(cl-macrolet
|
||||||
|
((with-env ((&rest vars) &body body)
|
||||||
|
(let (clauses)
|
||||||
|
(cl-with-gensyms (val)
|
||||||
|
(dolist (var vars)
|
||||||
|
(let ((env (string-replace
|
||||||
|
"-" "_"
|
||||||
|
(upcase (symbol-name var)))))
|
||||||
|
(push `(,var (let ((,val (getenv ,env)))
|
||||||
|
(if (and ,val (not (equal "" ,val)))
|
||||||
|
(car (read-from-string ,val))
|
||||||
|
,var)))
|
||||||
|
clauses))))
|
||||||
|
`(let (,@(nreverse clauses)) ,@body))))
|
||||||
|
(with-env (native-comp-speed native-comp-debug
|
||||||
|
native-comp-driver-options)
|
||||||
|
(batch-native-compile-1 for-tarball))))
|
||||||
|
|
||||||
;; In use by elisp-mode.el
|
;; In use by elisp-mode.el
|
||||||
(defun comp--write-bytecode-file (eln-file)
|
(defun comp--write-bytecode-file (eln-file)
|
||||||
"After native compilation write the bytecode file for ELN-FILE.
|
"After native compilation write the bytecode file for ELN-FILE.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue