diff options
| author | Phillip Lord | 2017-02-27 21:23:35 +0000 |
|---|---|---|
| committer | Phillip Lord | 2017-02-28 21:32:49 +0000 |
| commit | 7b5e1c8238ef961fd3305b1dce053b9bced684ba (patch) | |
| tree | a992d47052b5186a1c344a1f4a86d6b8aadc84ff /src | |
| parent | 75727406535572fb8d18e0c4d92f5a033a1a0933 (diff) | |
| download | emacs-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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/Makefile.in | 25 |
1 files changed, 23 insertions, 2 deletions
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 | ||
| 764 | shortlisp-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! | ||
| 773 | generate-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 | ||
| 765 | generate-ldefs-boot: bootstrap-emacs$(EXEEXT) | ||
| 766 | $(RUN_TEMACS) --batch $(BUILD_DETAILS) --load loadup bootstrap | ||
| 767 | 788 | ||
| 768 | ifeq ($(AUTO_DEPEND),yes) | 789 | ifeq ($(AUTO_DEPEND),yes) |
| 769 | -include $(ALLOBJS:%.o=${DEPDIR}/%.d) | 790 | -include $(ALLOBJS:%.o=${DEPDIR}/%.d) |