aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhillip Lord2017-02-27 21:23:35 +0000
committerPhillip Lord2017-02-28 21:32:49 +0000
commit7b5e1c8238ef961fd3305b1dce053b9bced684ba (patch)
treea992d47052b5186a1c344a1f4a86d6b8aadc84ff
parent75727406535572fb8d18e0c4d92f5a033a1a0933 (diff)
downloademacs-7b5e1c8238ef961fd3305b1dce053b9bced684ba.tar.gz
emacs-7b5e1c8238ef961fd3305b1dce053b9bced684ba.zip
Speed generation of ldefs-boot-auto
Previously, generation of ldefs-boot-auto required at least one full bootstrap and, in extreme cases, two. Now, from build system, it requires the same time as taken to dump Emacs. * Makefile.in: Remove all calls, pass to src. * admin/ldefs-clean.el: Update for changed messages. * lisp/Makefile.in (compile-first-delete): Add. * lisp/ldefs-boot-auto.el: Update. * src/Makefile.in (generate-ldefs-boot): Add.
-rw-r--r--Makefile.in17
-rw-r--r--admin/ldefs-clean.el5
-rw-r--r--lisp/Makefile.in3
-rw-r--r--lisp/ldefs-boot-auto.el55
-rw-r--r--src/Makefile.in25
5 files changed, 36 insertions, 69 deletions
diff --git a/Makefile.in b/Makefile.in
index 2cc41feb462..a7b122f5188 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1186,17 +1186,6 @@ check-declare:
1186 fi 1186 fi
1187 $(MAKE) -C lisp $@ 1187 $(MAKE) -C lisp $@
1188 1188
1189## Generating ldefs-boot-auto.el requires a completely clean build so 1189generate-ldefs-boot:
1190## that we can see which autoloads are actually called. The build has 1190 echo "Generating ldefs-boot-auto.el"
1191## to complete because we use Emacs to clean the results up! We use 1191 $(MAKE) -C src generate-ldefs-boot
1192## loaddefs.el in place of ldefs-boot-auto, because if we are running
1193## this there is the possibility that ldefs-boot-auto is not
1194## sufficient for bootstrap.
1195generate-ldefs-boot: all
1196 echo "Generating Bootstrap ldefs"
1197 cp lisp/loaddefs.el lisp/ldefs-boot-auto.el
1198 $(MAKE) -j 1 bootstrap \
1199 GENERATE_LDEFS_BOOT="generate-ldefs-boot" \
1200 2>&1 | tee lisp/ldefs-boot-auto.temp
1201 $(EMACS) -batch --load admin/ldefs-clean.el --funcall ldefs-clean
1202 rm lisp/ldefs-boot-auto.temp
diff --git a/admin/ldefs-clean.el b/admin/ldefs-clean.el
index c227a163604..91512b4bbb7 100644
--- a/admin/ldefs-clean.el
+++ b/admin/ldefs-clean.el
@@ -40,9 +40,6 @@
40 ;; We need to record autoloads till the point that emacs (as opposed 40 ;; We need to record autoloads till the point that emacs (as opposed
41 ;; to bootstrap-emacs) is dumped. After this point, we are not 41 ;; to bootstrap-emacs) is dumped. After this point, we are not
42 ;; bootstrapping any more. 42 ;; bootstrapping any more.
43 (search-backward "-l loadup dump")
44 (beginning-of-line)
45 (delete-region (point) (point-max))
46 (keep-lines "(autoload" (point-min) (point-max)) 43 (keep-lines "(autoload" (point-min) (point-max))
47 (sort-lines nil (point-min) (point-max)) 44 (sort-lines nil (point-min) (point-max))
48 (ldefs-clean-uniquify-buffer-lines) 45 (ldefs-clean-uniquify-buffer-lines)
@@ -60,6 +57,6 @@
60 57
61 58
62(defun ldefs-clean () 59(defun ldefs-clean ()
63 (find-file "lisp/ldefs-boot-auto.temp") 60 (find-file "../lisp/ldefs-boot-auto.temp")
64 (ldefs-clean-up) 61 (ldefs-clean-up)
65 (write-file "ldefs-boot-auto.el")) 62 (write-file "ldefs-boot-auto.el"))
diff --git a/lisp/Makefile.in b/lisp/Makefile.in
index 91b035476fe..366683b0252 100644
--- a/lisp/Makefile.in
+++ b/lisp/Makefile.in
@@ -285,6 +285,9 @@ $(THEFILE)c:
285 285
286compile-first: loaddefs.el $(COMPILE_FIRST) 286compile-first: loaddefs.el $(COMPILE_FIRST)
287 287
288compile-first-delete:
289 -for f in ${COMPILE_FIRST}; do test ! -f $$f || rm $$f; done
290
288# In 'compile-main' we could directly do 291# In 'compile-main' we could directly do
289# ... | xargs $(MAKE) 292# ... | xargs $(MAKE)
290# and it works, but it generates a lot of messages like 293# and it works, but it generates a lot of messages like
diff --git a/lisp/ldefs-boot-auto.el b/lisp/ldefs-boot-auto.el
index 66147173d50..f1b34aaee51 100644
--- a/lisp/ldefs-boot-auto.el
+++ b/lisp/ldefs-boot-auto.el
@@ -3,16 +3,12 @@
3(autoload 'Info-directory "info" nil nil nil) 3(autoload 'Info-directory "info" nil nil nil)
4(autoload 'Info-index "info" nil nil nil) 4(autoload 'Info-index "info" nil nil nil)
5(autoload 'View-exit-and-edit "view" nil nil nil) 5(autoload 'View-exit-and-edit "view" nil nil nil)
6(autoload 'add-change-log-entry "add-log" nil nil nil)
7(autoload 'add-log-current-defun "add-log" nil nil nil)
8(autoload 'batch-byte-compile "bytecomp" nil nil nil) 6(autoload 'batch-byte-compile "bytecomp" nil nil nil)
9(autoload 'batch-update-autoloads "autoload" nil nil nil) 7(autoload 'batch-update-autoloads "autoload" nil nil nil)
10(autoload 'bounds-of-thing-at-point "thingatpt" nil nil nil) 8(autoload 'bounds-of-thing-at-point "thingatpt" nil nil nil)
11(autoload 'browse-url "browse-url" nil nil nil) 9(autoload 'browse-url "browse-url" nil nil nil)
12(autoload 'buffer-face-mode "face-remap" nil nil nil) 10(autoload 'buffer-face-mode "face-remap" nil nil nil)
13(autoload 'byte-compile "bytecomp" nil nil nil) 11(autoload 'byte-compile "bytecomp" nil nil nil)
14(autoload 'byte-compile-disable-warning "bytecomp" nil nil nil)
15(autoload 'byte-compile-enable-warning "bytecomp" nil nil nil)
16(autoload 'byte-compile-file "bytecomp" nil nil nil) 12(autoload 'byte-compile-file "bytecomp" nil nil nil)
17(autoload 'byte-compile-inline-expand "byte-opt" nil nil nil) 13(autoload 'byte-compile-inline-expand "byte-opt" nil nil nil)
18(autoload 'byte-compile-unfold-lambda "byte-opt" nil nil nil) 14(autoload 'byte-compile-unfold-lambda "byte-opt" nil nil nil)
@@ -20,19 +16,15 @@
20(autoload 'byte-optimize-lapcode "byte-opt" nil nil nil) 16(autoload 'byte-optimize-lapcode "byte-opt" nil nil nil)
21(autoload 'byte-recompile-directory "bytecomp" nil nil nil) 17(autoload 'byte-recompile-directory "bytecomp" nil nil nil)
22(autoload 'char-displayable-p "mule-util" nil nil nil) 18(autoload 'char-displayable-p "mule-util" nil nil nil)
19(autoload 'cl-member "cl-seq" nil nil nil)
20(autoload 'cl-position "cl-seq" nil nil nil)
23(autoload 'color-name-to-rgb "color" nil nil nil) 21(autoload 'color-name-to-rgb "color" nil nil nil)
24(autoload 'comint-redirect-results-list-from-process "comint" nil nil nil)
25(autoload 'comint-redirect-send-command-to-process "comint" nil nil nil)
26(autoload 'compilation-mode "compile" nil nil nil) 22(autoload 'compilation-mode "compile" nil nil nil)
27(autoload 'compilation-shell-minor-mode "compile" nil nil nil)
28(autoload 'compilation-start "compile" nil nil nil)
29(autoload 'completing-read-multiple "crm" nil nil nil) 23(autoload 'completing-read-multiple "crm" nil nil nil)
30(autoload 'conf-mode "conf-mode" nil nil nil) 24(autoload 'conf-mode "conf-mode" nil nil nil)
31(autoload 'create-glyph "disp-table" nil nil nil) 25(autoload 'create-glyph "disp-table" nil nil nil)
32(autoload 'create-image "image" nil nil nil) 26(autoload 'create-image "image" nil nil nil)
33(autoload 'cursor-sensor-mode "cursor-sensor" nil nil nil)
34(autoload 'custom-save-all "cus-edit" nil nil nil) 27(autoload 'custom-save-all "cus-edit" nil nil nil)
35(autoload 'customize-face "cus-edit" nil nil nil)
36(autoload 'customize-group "cus-edit" nil nil nil) 28(autoload 'customize-group "cus-edit" nil nil nil)
37(autoload 'customize-option "cus-edit" nil nil nil) 29(autoload 'customize-option "cus-edit" nil nil nil)
38(autoload 'customize-push-and-save "cus-edit" nil nil nil) 30(autoload 'customize-push-and-save "cus-edit" nil nil nil)
@@ -49,46 +41,26 @@
49(autoload 'describe-function-1 "help-fns" nil nil nil) 41(autoload 'describe-function-1 "help-fns" nil nil nil)
50(autoload 'describe-package "package" nil nil nil) 42(autoload 'describe-package "package" nil nil nil)
51(autoload 'describe-variable "help-fns" nil nil nil) 43(autoload 'describe-variable "help-fns" nil nil nil)
52(autoload 'desktop-save "desktop" nil nil nil)
53(autoload 'diff-mode "diff-mode" nil nil nil)
54(autoload 'dired "dired" nil nil nil) 44(autoload 'dired "dired" nil nil nil)
55(autoload 'dired-copy-file "dired-aux" nil nil nil)
56(autoload 'dired-goto-subdir "dired-aux" nil nil nil)
57(autoload 'dired-hide-subdir "dired-aux" nil nil nil)
58(autoload 'dired-insert-subdir "dired-aux" nil nil nil)
59(autoload 'dired-kill-subdir "dired-aux" nil nil nil)
60(autoload 'dired-mark-subdir-files "dired-aux" nil nil nil)
61(autoload 'dired-mode "dired" nil nil nil)
62(autoload 'dired-noselect "dired" nil nil nil)
63(autoload 'dired-query "dired-aux" nil nil nil)
64(autoload 'dired-rename-file "dired-aux" nil nil nil)
65(autoload 'display-call-tree "bytecomp" nil nil nil) 45(autoload 'display-call-tree "bytecomp" nil nil nil)
66(autoload 'display-table-slot "disp-table" nil nil nil) 46(autoload 'display-table-slot "disp-table" nil nil nil)
67(autoload 'display-warning "warnings" nil nil nil) 47(autoload 'display-warning "warnings" nil nil nil)
68(autoload 'easy-menu-create-menu "easymenu" nil nil nil) 48(autoload 'easy-menu-create-menu "easymenu" nil nil nil)
49(autoload 'easy-menu-do-define "easymenu" nil nil nil)
69(autoload 'edebug-basic-spec "edebug" nil nil nil) 50(autoload 'edebug-basic-spec "edebug" nil nil nil)
70(autoload 'ediff-patch-file "ediff" nil nil nil)
71(autoload 'edit-kbd-macro "edmacro" nil nil nil)
72(autoload 'extract-rectangle "rect" nil nil nil) 51(autoload 'extract-rectangle "rect" nil nil nil)
73(autoload 'find-definition-noselect "find-func" nil nil nil) 52(autoload 'find-definition-noselect "find-func" nil nil nil)
74(autoload 'find-function-search-for-symbol "find-func" nil nil nil) 53(autoload 'find-function-search-for-symbol "find-func" nil nil nil)
75(autoload 'find-lisp-object-file-name "help-fns" nil nil nil) 54(autoload 'find-lisp-object-file-name "help-fns" nil nil nil)
76(autoload 'find-variable-noselect "find-func" nil nil nil)
77(autoload 'format-kbd-macro "edmacro" nil nil nil)
78(autoload 'goto-address-mode "goto-addr" nil nil nil) 55(autoload 'goto-address-mode "goto-addr" nil nil nil)
79(autoload 'grep-compute-defaults "grep" nil nil nil)
80(autoload 'help-C-file-name "help-fns" nil nil nil) 56(autoload 'help-C-file-name "help-fns" nil nil nil)
81(autoload 'help-buffer "help-mode" nil nil nil) 57(autoload 'help-buffer "help-mode" nil nil nil)
82(autoload 'help-insert-xref-button "help-mode" nil nil nil) 58(autoload 'help-insert-xref-button "help-mode" nil nil nil)
83(autoload 'help-make-xrefs "help-mode" nil nil nil)
84(autoload 'help-mode "help-mode" nil nil nil) 59(autoload 'help-mode "help-mode" nil nil nil)
85(autoload 'help-setup-xref "help-mode" nil nil nil) 60(autoload 'help-setup-xref "help-mode" nil nil nil)
86(autoload 'help-with-tutorial "tutorial" nil nil nil) 61(autoload 'help-with-tutorial "tutorial" nil nil nil)
87(autoload 'help-xref-button "help-mode" nil nil nil) 62(autoload 'help-xref-button "help-mode" nil nil nil)
88(autoload 'hi-lock-face-buffer "hi-lock" nil nil nil) 63(autoload 'hi-lock-face-buffer "hi-lock" nil nil nil)
89(autoload 'html-mode "sgml-mode" nil nil nil)
90(autoload 'image-type "image" nil nil nil)
91(autoload 'image-type-auto-detected-p "image" nil nil nil)
92(autoload 'image-type-available-p "image" nil nil nil) 64(autoload 'image-type-available-p "image" nil nil nil)
93(autoload 'image-type-from-buffer "image" nil nil nil) 65(autoload 'image-type-from-buffer "image" nil nil nil)
94(autoload 'image-type-from-data "image" nil nil nil) 66(autoload 'image-type-from-data "image" nil nil nil)
@@ -102,42 +74,29 @@
102(autoload 'insert-rectangle "rect" nil nil nil) 74(autoload 'insert-rectangle "rect" nil nil nil)
103(autoload 'isearch-process-search-multibyte-characters "isearch-x" nil nil nil) 75(autoload 'isearch-process-search-multibyte-characters "isearch-x" nil nil nil)
104(autoload 'jka-compr-uninstall "jka-compr" nil nil nil) 76(autoload 'jka-compr-uninstall "jka-compr" nil nil nil)
105(autoload 'log-edit "log-edit" nil nil nil)
106(autoload 'log-view-mode "log-view" nil nil nil)
107(autoload 'lookup-nested-alist "mule-util" nil nil nil) 77(autoload 'lookup-nested-alist "mule-util" nil nil nil)
108(autoload 'make-display-table "disp-table" nil nil nil) 78(autoload 'make-display-table "disp-table" nil nil nil)
109(autoload 'make-glyph-code "disp-table" nil nil nil) 79(autoload 'make-glyph-code "disp-table" nil nil nil)
110(autoload 'multi-isearch-buffers "misearch" nil nil nil) 80(autoload 'multi-isearch-buffers "misearch" nil nil nil)
111(autoload 'multi-isearch-buffers-regexp "misearch" nil nil nil) 81(autoload 'multi-isearch-buffers-regexp "misearch" nil nil nil)
112(autoload 'multi-isearch-files "misearch" nil nil nil)
113(autoload 'multi-isearch-files-regexp "misearch" nil nil nil)
114(autoload 'nxml-mode "nxml-mode" nil nil nil) 82(autoload 'nxml-mode "nxml-mode" nil nil nil)
115(autoload 'open-network-stream "network-stream" nil nil nil)
116(autoload 'package-initialize "package" nil nil nil) 83(autoload 'package-initialize "package" nil nil nil)
117(autoload 'parse-time-string "parse-time" nil nil nil)
118(autoload 'pp "pp" nil nil nil) 84(autoload 'pp "pp" nil nil nil)
119(autoload 'pp-buffer "pp" nil nil nil) 85(autoload 'pp-buffer "pp" nil nil nil)
120(autoload 'print-buffer "lpr" nil nil nil) 86(autoload 'print-buffer "lpr" nil nil nil)
121(autoload 'quail-defrule-internal "quail" nil nil nil) 87(autoload 'quail-defrule "quail" nil nil nil)
122(autoload 'read-kbd-macro "edmacro" nil nil nil) 88(autoload 'read-kbd-macro "edmacro" nil nil nil)
123(autoload 'regexp-opt "regexp-opt" nil nil nil) 89(autoload 'regexp-opt "regexp-opt" nil nil nil)
90(autoload 'regexp-opt-depth "regexp-opt" nil nil nil)
124(autoload 'rx "rx" nil nil t) 91(autoload 'rx "rx" nil nil t)
125(autoload 'seconds-to-string "time-date" nil nil nil)
126(autoload 'seconds-to-time "time-date" nil nil nil) 92(autoload 'seconds-to-time "time-date" nil nil nil)
127(autoload 'server-save-buffers-kill-terminal "server" nil nil nil) 93(autoload 'server-save-buffers-kill-terminal "server" nil nil nil)
128(autoload 'server-start "server" nil nil nil) 94(autoload 'server-start "server" nil nil nil)
129(autoload 'set-nested-alist "mule-util" nil nil nil) 95(autoload 'set-nested-alist "mule-util" nil nil nil)
130(autoload 'skeleton-insert "skeleton" nil nil nil)
131(autoload 'smerge-mode "smerge-mode" nil nil nil)
132(autoload 'smerge-start-session "smerge-mode" nil nil nil)
133(autoload 'standard-display-8bit "disp-table" nil nil nil) 96(autoload 'standard-display-8bit "disp-table" nil nil nil)
134(autoload 'standard-display-default "disp-table" nil nil nil) 97(autoload 'standard-display-default "disp-table" nil nil nil)
135(autoload 'tags-query-replace "etags" nil nil nil)
136(autoload 'tags-search "etags" nil nil nil)
137(autoload 'text-scale-increase "face-remap" nil nil nil) 98(autoload 'text-scale-increase "face-remap" nil nil nil)
138(autoload 'thing-at-point "thingatpt" nil nil nil) 99(autoload 'thing-at-point "thingatpt" nil nil nil)
139(autoload 'time-to-days "time-date" nil nil nil)
140(autoload 'timezone-make-date-arpa-standard "timezone" nil nil nil)
141(autoload 'tmm-menubar "tmm" nil nil nil) 100(autoload 'tmm-menubar "tmm" nil nil nil)
142(autoload 'tool-bar-add-item-from-menu "tool-bar" nil nil nil) 101(autoload 'tool-bar-add-item-from-menu "tool-bar" nil nil nil)
143(autoload 'truncate-string-to-width "mule-util" nil nil nil) 102(autoload 'truncate-string-to-width "mule-util" nil nil nil)
@@ -149,9 +108,7 @@
149(autoload 'ucs-normalize-NFKD-region "ucs-normalize" nil nil nil) 108(autoload 'ucs-normalize-NFKD-region "ucs-normalize" nil nil nil)
150(autoload 'url-handler-mode "url-handlers" nil nil nil) 109(autoload 'url-handler-mode "url-handlers" nil nil nil)
151(autoload 'variable-at-point "help-fns" nil nil nil) 110(autoload 'variable-at-point "help-fns" nil nil nil)
152(autoload 'vc-register "vc" nil nil nil)
153(autoload 'vc-responsible-backend "vc" nil nil nil) 111(autoload 'vc-responsible-backend "vc" nil nil nil)
154(autoload 'vc-transfer-file "vc" nil nil nil)
155(autoload 'view-buffer "view" nil nil nil) 112(autoload 'view-buffer "view" nil nil nil)
156(autoload 'view-buffer-other-window "view" nil nil nil) 113(autoload 'view-buffer-other-window "view" nil nil nil)
157(autoload 'view-file "view" nil nil nil) 114(autoload 'view-file "view" nil nil nil)
@@ -159,8 +116,8 @@
159(autoload 'view-mode-enter "view" nil nil nil) 116(autoload 'view-mode-enter "view" nil nil nil)
160(autoload 'visit-tags-table "etags" nil nil nil) 117(autoload 'visit-tags-table "etags" nil nil nil)
161(autoload 'warn "warnings" nil nil nil) 118(autoload 'warn "warnings" nil nil nil)
162(autoload 'wdired-change-to-wdired-mode "wdired" nil nil nil)
163(autoload 'widget-value "wid-edit" nil nil nil) 119(autoload 'widget-value "wid-edit" nil nil nil)
120(autoload 'with-coding-priority "mule-util" nil nil t)
164;; Local Variables: 121;; Local Variables:
165;; no-byte-compile: t 122;; no-byte-compile: t
166;; no-update-autoloads: t 123;; no-update-autoloads: t
diff --git a/src/Makefile.in b/src/Makefile.in
index ab319837249..730f79801c3 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -761,9 +761,30 @@ endif
761 @: Compile some files earlier to speed up further compilation. 761 @: Compile some files earlier to speed up further compilation.
762 $(MAKE) -C ../lisp compile-first EMACS="$(bootstrap_exe)" 762 $(MAKE) -C ../lisp compile-first EMACS="$(bootstrap_exe)"
763 763
764shortlisp-keep=loadup.el loaddefs.el
765
766## Generating ldefs-boot-auto.el requires that we dump both emacs and
767## the bootstrap-emacs so that we can see which autoloads are actually
768## called. This is a slightly messy affair as we must ensure that
769## they are build as if from clean, which means deleting all the build
770## files first. We use loaddefs.el to make sure that we can build
771## from bootstrap; obviously, this assumes that loaddefs.el already
772## exists or we have a bootstrap problem!
773generate-ldefs-boot: $(lispsource)/loaddefs.el
774 echo Cleaning to enable generate-ldefs-boot
775 mv $(lispsource)/loaddefs.el $(lispsource)/ldefs-boot-auto.el
776 $(MAKE) -C $(lispsource) compile-first-delete
777 -for f in $(filter-out $(shortlisp-keep), $(shortlisp)); do test -e $(lispsource)/$$f && rm -v $(lispsource)/$$f; done
778 - rm bootstrap-emacs$(EXEEXT)
779 - rm emacs$(EXEEXT)
780 echo Building generate-ldefs-boot
781 $(MAKE) -j 1 emacs$(EXEEXT) \
782 GENERATE_LDEFS_BOOT="generate-ldefs-boot" \
783 2>&1 | tee $(lispsource)/ldefs-boot-auto.temp
784 echo Reformatting ldefs-boot-auto.el
785 emacs$(EXEEXT) -batch --load ../admin/ldefs-clean.el --funcall ldefs-clean
786 rm ../lisp/ldefs-boot-auto.temp
764 787
765generate-ldefs-boot: bootstrap-emacs$(EXEEXT)
766 $(RUN_TEMACS) --batch $(BUILD_DETAILS) --load loadup bootstrap
767 788
768ifeq ($(AUTO_DEPEND),yes) 789ifeq ($(AUTO_DEPEND),yes)
769-include $(ALLOBJS:%.o=${DEPDIR}/%.d) 790-include $(ALLOBJS:%.o=${DEPDIR}/%.d)