aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2017-04-13 20:12:02 -0400
committerGlenn Morris2017-04-13 20:12:02 -0400
commitad128fee434a954da2ead75647b6396ddbf91f6a (patch)
tree826f29235924b1def24da2ed63851494b3f4f3e9
parent8201263765d01ab02d45830c03b2b8992c2b5759 (diff)
downloademacs-ad128fee434a954da2ead75647b6396ddbf91f6a.tar.gz
emacs-ad128fee434a954da2ead75647b6396ddbf91f6a.zip
Create generated lisp files before main loaddefs.el
This should improve reproducibility of lisp/loaddefs.el. * lisp/Makefile.in (gen-lisp): New phony target. ($(lisp)/loaddefs.el, compile-main): Depend on gen-lisp. * src/Makefile.in ($(leimdir)/leim-list.el): Depend on all of ../leim. * lisp/cedet/semantic.el (semantic-mode): * lisp/cedet/semantic/fw.el (top-level): * lisp/emacs-lisp/eieio-core.el (top-level): Robustify to generated input files maybe not yet existing.
-rw-r--r--lisp/Makefile.in13
-rw-r--r--lisp/cedet/semantic.el7
-rw-r--r--lisp/cedet/semantic/fw.el2
-rw-r--r--lisp/emacs-lisp/eieio-core.el2
-rw-r--r--src/Makefile.in2
5 files changed, 17 insertions, 9 deletions
diff --git a/lisp/Makefile.in b/lisp/Makefile.in
index ec9ea16021e..b82f2c6918a 100644
--- a/lisp/Makefile.in
+++ b/lisp/Makefile.in
@@ -179,6 +179,10 @@ $(lisp)/finder-inf.el:
179# Note that we set no-update-autoloads in _generated_ leim files. 179# Note that we set no-update-autoloads in _generated_ leim files.
180# If you want to allow autoloads in such files, remove that, 180# If you want to allow autoloads in such files, remove that,
181# and make this depend on leim. 181# and make this depend on leim.
182# Actually this should depend on leim anyway, since no-update-autoloads
183# files are still recorded in loaddefs. So we should ensure
184# that all input files are generated before we create loaddefs.
185# Otherwise making loaddefs again will change the output.
182# 186#
183# Write to a temporary file in case we're doing a parallel build and a 187# Write to a temporary file in case we're doing a parallel build and a
184# CANNOT_DUMP-mode Emacs needs to read loaddefs at startup. 188# CANNOT_DUMP-mode Emacs needs to read loaddefs at startup.
@@ -192,7 +196,7 @@ $(lisp)/finder-inf.el:
192# slow; starting from an almost-correct content will enable the "only 196# slow; starting from an almost-correct content will enable the "only
193# update where necessary" feature of batch-update-autoloads. 197# update where necessary" feature of batch-update-autoloads.
194autoloads .PHONY: $(lisp)/loaddefs.el 198autoloads .PHONY: $(lisp)/loaddefs.el
195$(lisp)/loaddefs.el: $(LOADDEFS) 199$(lisp)/loaddefs.el: gen-lisp $(LOADDEFS)
196 @echo Directories for loaddefs: ${SUBDIRS_ALMOST} 200 @echo Directories for loaddefs: ${SUBDIRS_ALMOST}
197 @if test -f $@ ; then cp $@ $(lisp)/loaddefs.tmp ; fi 201 @if test -f $@ ; then cp $@ $(lisp)/loaddefs.tmp ; fi
198 $(AM_V_GEN)$(emacs) -l autoload \ 202 $(AM_V_GEN)$(emacs) -l autoload \
@@ -319,7 +323,7 @@ compile-targets: $(TARGETS)
319 323
320# Compile all the Elisp files that need it. Beware: it approximates 324# Compile all the Elisp files that need it. Beware: it approximates
321# 'no-byte-compile', so watch out for false-positives! 325# 'no-byte-compile', so watch out for false-positives!
322compile-main: leim semantic compile-clean 326compile-main: gen-lisp compile-clean
323 @(cd $(lisp) && \ 327 @(cd $(lisp) && \
324 els=`echo "${SUBDIRS_REL} " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.el |g'`; \ 328 els=`echo "${SUBDIRS_REL} " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.el |g'`; \
325 for el in $$els; do \ 329 for el in $$els; do \
@@ -343,7 +347,10 @@ compile-clean:
343 fi \ 347 fi \
344 done 348 done
345 349
346.PHONY: leim semantic 350.PHONY: gen-lisp leim semantic
351
352gen-lisp: leim semantic
353
347leim: 354leim:
348 $(MAKE) -C ../leim all EMACS="$(EMACS)" 355 $(MAKE) -C ../leim all EMACS="$(EMACS)"
349 356
diff --git a/lisp/cedet/semantic.el b/lisp/cedet/semantic.el
index 6a264cabd65..c38afed3964 100644
--- a/lisp/cedet/semantic.el
+++ b/lisp/cedet/semantic.el
@@ -1116,8 +1116,9 @@ Semantic mode.
1116 ;; Enable all the global auxiliary minor modes in 1116 ;; Enable all the global auxiliary minor modes in
1117 ;; `semantic-submode-list'. 1117 ;; `semantic-submode-list'.
1118 (dolist (mode semantic-submode-list) 1118 (dolist (mode semantic-submode-list)
1119 (if (memq mode semantic-default-submodes) 1119 (and (memq mode semantic-default-submodes)
1120 (funcall mode 1))) 1120 (fboundp mode)
1121 (funcall mode 1)))
1121 (unless semantic-load-system-cache-loaded 1122 (unless semantic-load-system-cache-loaded
1122 (setq semantic-load-system-cache-loaded t) 1123 (setq semantic-load-system-cache-loaded t)
1123 (when (and (boundp 'semanticdb-default-system-save-directory) 1124 (when (and (boundp 'semanticdb-default-system-save-directory)
@@ -1139,7 +1140,7 @@ Semantic mode.
1139 (add-hook 'completion-at-point-functions 1140 (add-hook 'completion-at-point-functions
1140 'semantic-analyze-completion-at-point-function) 1141 'semantic-analyze-completion-at-point-function)
1141 1142
1142 (if global-ede-mode 1143 (if (bound-and-true-p global-ede-mode)
1143 (define-key cedet-menu-map [cedet-menu-separator] '("--"))) 1144 (define-key cedet-menu-map [cedet-menu-separator] '("--")))
1144 (dolist (b (buffer-list)) 1145 (dolist (b (buffer-list))
1145 (with-current-buffer b 1146 (with-current-buffer b
diff --git a/lisp/cedet/semantic/fw.el b/lisp/cedet/semantic/fw.el
index 3884cd09ccc..3527f3e6af8 100644
--- a/lisp/cedet/semantic/fw.el
+++ b/lisp/cedet/semantic/fw.el
@@ -30,7 +30,7 @@
30;; 30;;
31(require 'mode-local) 31(require 'mode-local)
32(require 'eieio) 32(require 'eieio)
33(load "semantic/loaddefs" nil 'nomessage) 33(load "semantic/loaddefs" 'noerror 'nomessage)
34 34
35;;; Compatibility 35;;; Compatibility
36;; 36;;
diff --git a/lisp/emacs-lisp/eieio-core.el b/lisp/emacs-lisp/eieio-core.el
index c59f85d6fb2..7c149421d43 100644
--- a/lisp/emacs-lisp/eieio-core.el
+++ b/lisp/emacs-lisp/eieio-core.el
@@ -33,7 +33,7 @@
33 33
34(require 'cl-lib) 34(require 'cl-lib)
35(require 'pcase) 35(require 'pcase)
36(require 'eieio-loaddefs) 36(require 'eieio-loaddefs nil t)
37 37
38;;; 38;;;
39;; A few functions that are better in the official EIEIO src, but 39;; A few functions that are better in the official EIEIO src, but
diff --git a/src/Makefile.in b/src/Makefile.in
index 7890ea9878e..0b0d1768b5c 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -495,7 +495,7 @@ LIBES = $(LIBS) $(W32_LIBS) $(LIBS_GNUSTEP) $(LIBX_BASE) $(LIBIMAGE) \
495 $(NOTIFY_LIBS) $(LIB_MATH) $(LIBZ) $(LIBMODULES) $(LIBSYSTEMD_LIBS) 495 $(NOTIFY_LIBS) $(LIB_MATH) $(LIBZ) $(LIBMODULES) $(LIBSYSTEMD_LIBS)
496 496
497$(leimdir)/leim-list.el: bootstrap-emacs$(EXEEXT) 497$(leimdir)/leim-list.el: bootstrap-emacs$(EXEEXT)
498 $(MAKE) -C ../leim leim-list.el EMACS="$(bootstrap_exe)" 498 $(MAKE) -C ../leim all EMACS="$(bootstrap_exe)"
499 499
500## FORCE it so that admin/unidata can decide whether these files 500## FORCE it so that admin/unidata can decide whether these files
501## are up-to-date. Although since charprop depends on bootstrap-emacs, 501## are up-to-date. Although since charprop depends on bootstrap-emacs,