From 261d6afd6e6f3ba2bbf4db0d9ac57b0cbacc0137 Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Wed, 3 Aug 2022 14:22:08 +0200 Subject: [PATCH] Byte-compile the in-tree loaddefs.el files * lisp/Makefile.in (all): Add "autoloads", which now otherwise won't be done. ($(lisp)/loaddefs.el): Remove this target, since it's always done, and would then trigger a re-compilation of loaddefs.elc. * lisp/loadup.el: Load loaddefs.elc (if it exists). * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Don't include no-byte-compile cookies in the Emacs build. * src/Makefile.in ($(pdmp)): Depend on loaddefs.elc to ensure that it's built by this point. ($(etc)/DOC): Don't scan loaddefs.el for doc strings, since they are now picked up from the .elc file (bug#53024). --- lisp/Makefile.in | 17 +++++++---------- lisp/emacs-lisp/loaddefs-gen.el | 3 ++- lisp/loadup.el | 7 ++++--- src/Makefile.in | 6 ++---- 4 files changed, 15 insertions(+), 18 deletions(-) diff --git a/lisp/Makefile.in b/lisp/Makefile.in index 9516f2fc364..315b1fcf7ba 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in @@ -123,10 +123,10 @@ SUBDIRS_FINDER = $(filter-out ${srcdir}/leim%,${SUBDIRS_ALMOST}) ## All subdirectories in which we might want to create subdirs.el. SUBDIRS_SUBDIRS = $(filter-out ${srcdir}/cedet% ${srcdir}/leim%,${SUBDIRS}) -# cus-load and finder-inf are not explicitly requested by anything, so -# we add them here to make sure they get built. +# cus-load, finder-inf and autoloads are not explicitly requested by +# anything, so we add them here to make sure they get built. all: compile-main $(lisp)/cus-load.el $(lisp)/finder-inf.el generate-ja-dic \ - org-manuals + org-manuals autoloads PHONY_EXTRAS = .PHONY: all custom-deps finder-data autoloads update-subdirs $(PHONY_EXTRAS) \ @@ -196,13 +196,10 @@ org-manuals: main-first # from ../src rules, but that doesn't seem possible due to the various # non-trivial dependencies. -# We make $(lisp)/loaddefs.el a dependency of .PHONY to cause Make to -# ignore its time stamp. That's because the real dependencies of -# loaddefs.el aren't known to Make, they are implemented in -# loaddefs-generate--emacs-batch. - -autoloads .PHONY: $(lisp)/loaddefs.el -$(lisp)/loaddefs.el: gen-lisp $(LOADDEFS) $(lisp)/emacs-lisp/loaddefs-gen.elc +# That's because the real dependencies of loaddefs.el aren't known to +# Make, they are implemented in loaddefs-generate--emacs-batch, so +# autoloads is an "all" dependency. +autoloads: $(AM_V_GEN)$(emacs) \ -l $(lisp)/emacs-lisp/loaddefs-gen.elc \ -f loaddefs-generate--emacs-batch ${SUBDIRS_ALMOST} diff --git a/lisp/emacs-lisp/loaddefs-gen.el b/lisp/emacs-lisp/loaddefs-gen.el index 36b0b1e9cdf..830799ec363 100644 --- a/lisp/emacs-lisp/loaddefs-gen.el +++ b/lisp/emacs-lisp/loaddefs-gen.el @@ -588,7 +588,8 @@ If GENERATE-FULL, don't update, but regenerate all the loaddefs files." (with-temp-buffer (if (and updating (file-exists-p loaddefs-file)) (insert-file-contents loaddefs-file) - (insert (loaddefs-generate--rubric loaddefs-file nil t)) + (insert (loaddefs-generate--rubric + loaddefs-file nil t include-package-version)) (search-backward "\f") (when extra-data (insert extra-data) diff --git a/lisp/loadup.el b/lisp/loadup.el index 21a87dbd77b..a65c1724aee 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -185,9 +185,10 @@ ;; should be updated by overwriting it with an up-to-date copy of ;; loaddefs.el that is not corrupted by local changes. ;; admin/update_autogen can be used to update ldefs-boot.el periodically. -(condition-case nil (load "loaddefs.el") - ;; In case loaddefs hasn't been generated yet. - (file-error (load "ldefs-boot.el"))) +(condition-case nil + (load "loaddefs") + (file-error + (load "ldefs-boot.el"))) (let ((new (make-hash-table :test #'equal))) ;; Now that loaddefs has populated definition-prefixes, purify its contents. diff --git a/src/Makefile.in b/src/Makefile.in index 7d15b7afd51..e81e7a16d94 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -635,7 +635,7 @@ Emacs.pdmp: $(pdmp) endif ifeq ($(DUMPING),pdumper) -$(pdmp): emacs$(EXEEXT) +$(pdmp): emacs$(EXEEXT) $(lispsource)/loaddefs.elc LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup --temacs=pdump \ --bin-dest $(BIN_DESTDIR) --eln-dest $(ELN_DESTDIR) cp -f $@ $(bootstrap_pdmp) @@ -652,13 +652,11 @@ endif ## for the first time, this prevents any variation between configurations ## in the contents of the DOC file. ## -$(etc)/DOC: $(libsrc)/make-docfile$(EXEEXT) $(doc_obj) $(lispsource)/loaddefs.el +$(etc)/DOC: $(libsrc)/make-docfile$(EXEEXT) $(doc_obj) $(AM_V_GEN)$(MKDIR_P) $(etc) $(AM_V_at)rm -f $(etc)/DOC $(AM_V_at)$(libsrc)/make-docfile -d $(srcdir) \ $(SOME_MACHINE_OBJECTS) $(doc_obj) > $(etc)/DOC - $(AM_V_at)$(libsrc)/make-docfile -a $(etc)/DOC -d $(lispsource) \ - loaddefs.el $(libsrc)/make-docfile$(EXEEXT) $(libsrc)/make-fingerprint$(EXEEXT): \ $(lib)/libgnu.a -- 2.39.5