diff options
| author | Glenn Morris | 2017-04-13 20:12:02 -0400 |
|---|---|---|
| committer | Glenn Morris | 2017-04-13 20:12:02 -0400 |
| commit | ad128fee434a954da2ead75647b6396ddbf91f6a (patch) | |
| tree | 826f29235924b1def24da2ed63851494b3f4f3e9 | |
| parent | 8201263765d01ab02d45830c03b2b8992c2b5759 (diff) | |
| download | emacs-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.in | 13 | ||||
| -rw-r--r-- | lisp/cedet/semantic.el | 7 | ||||
| -rw-r--r-- | lisp/cedet/semantic/fw.el | 2 | ||||
| -rw-r--r-- | lisp/emacs-lisp/eieio-core.el | 2 | ||||
| -rw-r--r-- | src/Makefile.in | 2 |
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. |
| 194 | autoloads .PHONY: $(lisp)/loaddefs.el | 198 | autoloads .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! |
| 322 | compile-main: leim semantic compile-clean | 326 | compile-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 | |||
| 352 | gen-lisp: leim semantic | ||
| 353 | |||
| 347 | leim: | 354 | leim: |
| 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, |