mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-01 08:17:38 +00:00
Parallelize byte compilation on MS-Windows.
lisp/makefile.w32-in (WINS_BASIC1, WINS_BASIC2, WINS_BASIC3) (WINS_BASIC4): New variables, subdivide subdirectories into 4 parts. (WINS_BASIC): Define as concatenation of the above. (compile): Subdivide into 4 separate and independent jobs that can be run in parallel. (compile0-CMD, compile0-SH): New targets for compiling COMPILE_FIRST files, which are prerequisites for the rest of the byte-compilation. (compile1-CMD, compile2-CMD, compile3-CMD, compile4-CMD): New targets for parallel compilation with cmd.exe. (compile1-SH, compile2-SH, compile3-SH, compile4-SH): Ditto for compiling under a Unixy shell.
This commit is contained in:
parent
b5591ebb3b
commit
ca065258cc
@ -1,3 +1,20 @@
|
||||
2012-12-09 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
Parallelize byte compilation on MS-Windows.
|
||||
* makefile.w32-in (WINS_BASIC1, WINS_BASIC2, WINS_BASIC3)
|
||||
(WINS_BASIC4): New variables, subdivide subdirectories into 4
|
||||
parts.
|
||||
(WINS_BASIC): Define as concatenation of the above.
|
||||
(compile): Subdivide into 4 separate and independent jobs that can
|
||||
be run in parallel.
|
||||
(compile0-CMD, compile0-SH): New targets for compiling
|
||||
COMPILE_FIRST files, which are prerequisites for the rest of the
|
||||
byte-compilation.
|
||||
(compile1-CMD, compile2-CMD, compile3-CMD, compile4-CMD): New
|
||||
targets for parallel compilation with cmd.exe.
|
||||
(compile1-SH, compile2-SH, compile3-SH, compile4-SH): Ditto for
|
||||
compiling under a Unixy shell.
|
||||
|
||||
2012-12-09 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* simple.el (set-mark-default-inactive): Delete this
|
||||
|
@ -104,27 +104,39 @@ WINS_CEDET=\
|
||||
cedet/semantic/symref \
|
||||
cedet/semantic/wisent
|
||||
|
||||
WINS_BASIC=\
|
||||
# The list of subdirectories is subdivided into 4 more or less equal
|
||||
# parts so that we could have 4-way parallelism while compiling Lisp
|
||||
# files, which helps to slash bootstrap times. See the 'compile'
|
||||
# target below.
|
||||
WINS_BASIC1=\
|
||||
calc \
|
||||
calendar \
|
||||
emacs-lisp \
|
||||
emulation \
|
||||
erc \
|
||||
eshell \
|
||||
net \
|
||||
url
|
||||
|
||||
WINS_BASIC2=\
|
||||
gnus \
|
||||
international \
|
||||
language \
|
||||
mail \
|
||||
mail
|
||||
|
||||
WINS_BASIC3=\
|
||||
emulation \
|
||||
mh-e \
|
||||
net \
|
||||
nxml \
|
||||
org \
|
||||
play \
|
||||
progmodes \
|
||||
textmodes \
|
||||
url \
|
||||
vc
|
||||
|
||||
WINS_BASIC4=\
|
||||
eshell \
|
||||
progmodes
|
||||
|
||||
WINS_BASIC= $(WINS_BASIC1) $(WINS_BASIC2) $(WINS_BASIC3) $(WINS_BASIC4)
|
||||
|
||||
# Directories with lisp files to compile, and to extract data from
|
||||
# (customs, autoloads, etc.)
|
||||
WINS_UPDATES=$(WINS_BASIC) \
|
||||
@ -311,22 +323,71 @@ TAGS-LISP-CMD: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsf
|
||||
# compiled find the right files.
|
||||
|
||||
# Need separate version for sh and native cmd.exe
|
||||
compile: $(lisp)/subdirs.el compile-$(SHELLTYPE) doit
|
||||
compile: $(lisp)/subdirs.el compile0-$(SHELLTYPE) compile1-$(SHELLTYPE) compile2-$(SHELLTYPE) compile3-$(SHELLTYPE) compile4-$(SHELLTYPE) doit
|
||||
|
||||
compile-CMD: autoloads
|
||||
compile0-CMD: autoloads
|
||||
# -for %%f in ($(lisp) $(WINS)) do for %%g in (%%f\*.elc) do @attrib -r %%g
|
||||
for %%f in ($(COMPILE_FIRST)) do \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done %%f
|
||||
for %%f in (. $(WINS)) do for %%g in (%%f/*.el) do \
|
||||
|
||||
compile1-CMD: autoloads compile0-CMD
|
||||
for %%f in (. $(WINS_BASIC1)) do for %%g in (%%f/*.el) do \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done %%f/%%g
|
||||
|
||||
compile-SH: autoloads
|
||||
compile2-CMD: autoloads compile0-CMD
|
||||
for %%f in ($(WINS_BASIC2)) do for %%g in (%%f/*.el) do \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done %%f/%%g
|
||||
|
||||
compile3-CMD: autoloads compile0-CMD
|
||||
for %%f in ($(WINS_BASIC3)) do for %%g in (%%f/*.el) do \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done %%f/%%g
|
||||
|
||||
compile4-CMD: autoloads compile0-CMD
|
||||
for %%f in ($(WINS_BASIC4) $(WINS_CEDET) term obsolete) do for %%g in (%%f/*.el) do \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done %%f/%%g
|
||||
|
||||
compile0-SH: autoloads
|
||||
# for elc in $(lisp)/*.elc $(lisp)/*/*.elc; do attrib -r $$elc; done
|
||||
for el in $(COMPILE_FIRST); do \
|
||||
echo Compiling $$el; \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done $$el; \
|
||||
done
|
||||
for dir in $(lisp) $(WINS); do \
|
||||
|
||||
compile1-SH: autoloads compile0-SH
|
||||
for dir in $(lisp) $(WINS_BASIC1); do \
|
||||
for el in $$dir/*.el; do \
|
||||
if test -f $$el; \
|
||||
then \
|
||||
echo Compiling $$el; \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done $$el; \
|
||||
fi \
|
||||
done; \
|
||||
done
|
||||
|
||||
compile2-SH: autoloads compile0-SH
|
||||
for dir in $(WINS_BASIC2); do \
|
||||
for el in $$dir/*.el; do \
|
||||
if test -f $$el; \
|
||||
then \
|
||||
echo Compiling $$el; \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done $$el; \
|
||||
fi \
|
||||
done; \
|
||||
done
|
||||
|
||||
compile3-SH: autoloads compile0-SH
|
||||
for dir in $(WINS_BASIC3); do \
|
||||
for el in $$dir/*.el; do \
|
||||
if test -f $$el; \
|
||||
then \
|
||||
echo Compiling $$el; \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done $$el; \
|
||||
fi \
|
||||
done; \
|
||||
done
|
||||
|
||||
compile4-SH: autoloads compile0-SH
|
||||
for dir in $(WINS_BASIC4) $(WINS_CEDET) terms obsolete; do \
|
||||
for el in $$dir/*.el; do \
|
||||
if test -f $$el; \
|
||||
then \
|
||||
|
Loading…
Reference in New Issue
Block a user