]> git.eshelyaron.com Git - emacs.git/commitdiff
Create generated lisp files before main loaddefs.el
authorGlenn Morris <rgm@gnu.org>
Fri, 14 Apr 2017 00:12:02 +0000 (20:12 -0400)
committerGlenn Morris <rgm@gnu.org>
Fri, 14 Apr 2017 00:12:02 +0000 (20:12 -0400)
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.

lisp/Makefile.in
lisp/cedet/semantic.el
lisp/cedet/semantic/fw.el
lisp/emacs-lisp/eieio-core.el
src/Makefile.in

index ec9ea16021e694b963c3deed0fc828dbc2d2c517..b82f2c6918a356853467a47ac0939257b69ffde9 100644 (file)
@@ -179,6 +179,10 @@ $(lisp)/finder-inf.el:
 # Note that we set no-update-autoloads in _generated_ leim files.
 # If you want to allow autoloads in such files, remove that,
 # and make this depend on leim.
+# Actually this should depend on leim anyway, since no-update-autoloads
+# files are still recorded in loaddefs.  So we should ensure
+# that all input files are generated before we create loaddefs.
+# Otherwise making loaddefs again will change the output.
 #
 # Write to a temporary file in case we're doing a parallel build and a
 # CANNOT_DUMP-mode Emacs needs to read loaddefs at startup.
@@ -192,7 +196,7 @@ $(lisp)/finder-inf.el:
 # slow; starting from an almost-correct content will enable the "only
 # update where necessary" feature of batch-update-autoloads.
 autoloads .PHONY: $(lisp)/loaddefs.el
-$(lisp)/loaddefs.el: $(LOADDEFS)
+$(lisp)/loaddefs.el: gen-lisp $(LOADDEFS)
        @echo Directories for loaddefs: ${SUBDIRS_ALMOST}
        @if test -f $@ ; then cp $@ $(lisp)/loaddefs.tmp ; fi
        $(AM_V_GEN)$(emacs) -l autoload \
@@ -319,7 +323,7 @@ compile-targets: $(TARGETS)
 
 # Compile all the Elisp files that need it.  Beware: it approximates
 # 'no-byte-compile', so watch out for false-positives!
-compile-main: leim semantic compile-clean
+compile-main: gen-lisp compile-clean
        @(cd $(lisp) && \
        els=`echo "${SUBDIRS_REL} " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.el |g'`; \
        for el in $$els; do \
@@ -343,7 +347,10 @@ compile-clean:
          fi \
        done
 
-.PHONY: leim semantic
+.PHONY: gen-lisp leim semantic
+
+gen-lisp: leim semantic
+
 leim:
        $(MAKE) -C ../leim all EMACS="$(EMACS)"
 
index 6a264cabd656c588b2cfac22186417cbc7944ba3..c38afed3964d441d0c2ad69b793a1f94c56afa8d 100644 (file)
@@ -1116,8 +1116,9 @@ Semantic mode.
        ;; Enable all the global auxiliary minor modes in
        ;; `semantic-submode-list'.
        (dolist (mode semantic-submode-list)
-         (if (memq mode semantic-default-submodes)
-             (funcall mode 1)))
+         (and (memq mode semantic-default-submodes)
+              (fboundp mode)
+              (funcall mode 1)))
        (unless semantic-load-system-cache-loaded
          (setq semantic-load-system-cache-loaded t)
          (when (and (boundp 'semanticdb-default-system-save-directory)
@@ -1139,7 +1140,7 @@ Semantic mode.
        (add-hook 'completion-at-point-functions
                  'semantic-analyze-completion-at-point-function)
 
-       (if global-ede-mode
+       (if (bound-and-true-p global-ede-mode)
            (define-key cedet-menu-map [cedet-menu-separator] '("--")))
        (dolist (b (buffer-list))
          (with-current-buffer b
index 3884cd09cccb2c1a04a230f78e31bfa64dd0b732..3527f3e6af8cfc3e9327ba5ace9af9a362322425 100644 (file)
@@ -30,7 +30,7 @@
 ;;
 (require 'mode-local)
 (require 'eieio)
-(load "semantic/loaddefs" nil 'nomessage)
+(load "semantic/loaddefs" 'noerror 'nomessage)
 
 ;;; Compatibility
 ;;
index c59f85d6fb2df0b7b32531cff72ec0e6eb4cf6f3..7c149421d4317066eb8b37279d83762c20be6bb2 100644 (file)
@@ -33,7 +33,7 @@
 
 (require 'cl-lib)
 (require 'pcase)
-(require 'eieio-loaddefs)
+(require 'eieio-loaddefs nil t)
 
 ;;;
 ;; A few functions that are better in the official EIEIO src, but
index 7890ea9878e5872bd132171eca541aec7ac5d5a4..0b0d1768b5c943fafb70fed53257e9dfe7e0cd4d 100644 (file)
@@ -495,7 +495,7 @@ LIBES = $(LIBS) $(W32_LIBS) $(LIBS_GNUSTEP) $(LIBX_BASE) $(LIBIMAGE) \
    $(NOTIFY_LIBS) $(LIB_MATH) $(LIBZ) $(LIBMODULES) $(LIBSYSTEMD_LIBS)
 
 $(leimdir)/leim-list.el: bootstrap-emacs$(EXEEXT)
-       $(MAKE) -C ../leim leim-list.el EMACS="$(bootstrap_exe)"
+       $(MAKE) -C ../leim all EMACS="$(bootstrap_exe)"
 
 ## FORCE it so that admin/unidata can decide whether these files
 ## are up-to-date.  Although since charprop depends on bootstrap-emacs,