Have a fast build option triggered by env var NATIVE_FAST_BOOT

This commit is contained in:
Andrea Corallo 2020-03-21 14:11:41 +00:00
parent 64a6709f64
commit e05a62a968
2 changed files with 17 additions and 13 deletions

View file

@ -351,9 +351,11 @@ compile-main: gen-lisp compile-clean
GREP_OPTIONS= grep '^;.*[^a-zA-Z]no-byte-compile: *t' $$el > /dev/null && \
continue; \
echo "$${el}c"; \
done | xargs $(XARGS_LIMIT) echo) | \
while read chunk; do \
$(MAKE) compile-targets TARGETS="$$chunk"; \
done | xargs $(XARGS_LIMIT) echo) | \
while read chunk; do \
$(MAKE) compile-targets \
NATIVE_DISABLE=$(NATIVE_FAST_BOOT) \
TARGETS="$$chunk"; \
done
.PHONY: native-compile-clean

View file

@ -2234,16 +2234,18 @@ Ultra cheap impersonation of `batch-byte-compile'."
(defun batch-byte-native-compile-for-bootstrap ()
"As `batch-byte-compile' but used for booststrap.
Always generate elc files too and handle native compiler expected errors."
(let ((byte-native-for-bootstrap t)
(byte-to-native-output-file nil))
(unwind-protect
(condition-case _
(batch-native-compile)
(native-compiler-error-dyn-func)
(native-compiler-error-empty-byte))
(pcase byte-to-native-output-file
(`(,tempfile . ,target-file)
(rename-file tempfile target-file t))))))
(if (equal (getenv "NATIVE_DISABLE") "1")
(batch-byte-compile)
(let ((byte-native-for-bootstrap t)
(byte-to-native-output-file nil))
(unwind-protect
(condition-case _
(batch-native-compile)
(native-compiler-error-dyn-func)
(native-compiler-error-empty-byte))
(pcase byte-to-native-output-file
(`(,tempfile . ,target-file)
(rename-file tempfile target-file t)))))))
;;;###autoload
(defun native-compile-async (paths &optional recursively load)