X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/e61d39cddfd015032a6419ce75c36ecdf1e9fe9f..c6c863df8dfde4d25a08f1dd97932c8746809e88:/lisp/makefile.w32-in diff --git a/lisp/makefile.w32-in b/lisp/makefile.w32-in index 756d2b949f..cb2a1b4e4b 100644 --- a/lisp/makefile.w32-in +++ b/lisp/makefile.w32-in @@ -1,5 +1,5 @@ # -*- Makefile -*- for GNU Emacs on the Microsoft Windows API. -# Copyright (C) 2000-2012 Free Software Foundation, Inc. +# Copyright (C) 2000-2014 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -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) term obsolete; do \ for el in $$dir/*.el; do \ if test -f $$el; \ then \ @@ -447,23 +508,24 @@ $(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC) $(lisp)/subdirs.el $(ARGQUOTE)$(lisp)/mh-e/mh-loaddefs.el$(ARGQUOTE) $(MAKE) ./mh-e # Update TRAMP internal autoloads. Maybe we could move tramp*.el into -# its own subdirectory. OTOH, it does not hurt to keep them in +# an own subdirectory. OTOH, it does not hurt to keep them in # lisp/net. -TRAMP_SRC = $(lisp)/net/tramp.el $(lisp)/net/tramp-cache.el \ - $(lisp)/net/tramp-cmds.el $(lisp)/net/tramp-compat.el \ - $(lisp)/net/tramp-ftp.el $(lisp)/net/tramp-gvfs.el \ - $(lisp)/net/tramp-gw.el $(lisp)/net/tramp-sh.el \ - $(lisp)/net/tramp-smb.el $(lisp)/net/tramp-uu.el \ - $(lisp)/net/trampver.el - -$(lisp)/net/tramp-loaddefs.el: $(TRAMP_SRC) $(lisp)/subdirs.el +TRAMP_DIR = $(lisp)/net +TRAMP_SRC = $(TRAMP_DIR)/tramp.el $(TRAMP_DIR)/tramp-adb.el \ + $(TRAMP_DIR)/tramp-cache.el $(TRAMP_DIR)/tramp-cmds.el \ + $(TRAMP_DIR)/tramp-compat.el $(TRAMP_DIR)/tramp-ftp.el \ + $(TRAMP_DIR)/tramp-gvfs.el $(TRAMP_DIR)/tramp-gw.el \ + $(TRAMP_DIR)/tramp-sh.el $(TRAMP_DIR)/tramp-smb.el \ + $(TRAMP_DIR)/tramp-uu.el $(TRAMP_DIR)/trampver.el + +$(TRAMP_DIR)/tramp-loaddefs.el: $(TRAMP_SRC) $(lisp)/subdirs.el "$(EMACS)" $(EMACSOPT) \ -l autoload \ --eval $(ARGQUOTE)(setq generate-autoload-cookie $(DQUOTE);;;###tramp-autoload$(DQUOTE))$(ARGQUOTE) \ --eval $(ARGQUOTE)(setq find-file-suppress-same-file-warnings t)$(ARGQUOTE) \ --eval $(ARGQUOTE)(setq make-backup-files nil)$(ARGQUOTE) \ -f w32-batch-update-autoloads \ - $(ARGQUOTE)$(lisp)/net/tramp-loaddefs.el$(ARGQUOTE) $(MAKE) ./net + $(ARGQUOTE)$(TRAMP_DIR)/tramp-loaddefs.el$(ARGQUOTE) $(MAKE) ./net # Prepare a bootstrap in the lisp subdirectory. #