summaryrefslogtreecommitdiff
path: root/Makefile.in
diff options
context:
space:
mode:
authorPhillip Lord <phillip.lord@russet.org.uk>2016-10-27 08:07:05 +0100
committerPhillip Lord <phillip.lord@russet.org.uk>2016-12-13 22:15:32 +0000
commitc27b645956a11fab1dd8fa189254d525390958f5 (patch)
treea32dc7bbc8758a5656b2be8f712614a9085592d6 /Makefile.in
parent9e6618becaa15b104f18d54371f35f065f430f81 (diff)
downloademacs-c27b645956a11fab1dd8fa189254d525390958f5.tar.gz
Replace ldefs-boot with a much smaller file
* Makefile.in (bootstrap-build,generate-ldefs-boot): New targets. (bootstrap): Depend on bootstrap-build. * admin/ldefs-clean.el: New file. * lisp/Makefile.in (compile-first): Depend on loaddefs.el * lisp/ldefs-boot.el: Remove. * lisp/ldefs-boot-auto.el: New file. * lisp/ldefs-boot-manual.el: New file. * lisp/loadup.el: Load ldefs-boot-manual.el. * src/emacs.c (generating_ldefs_boot): New variable. (main): Check whether we are generating ldefs. * src/eval.c (autoload-do-load): Dump autoload forms to stderr when requested. * src/lisp.h (generating_ldefs_boot): New variable. * admin/gitmerge.el, admin/make-tarball.txt, admin/notes/copyright, lisp/Makefile.in, lisp/cus-dep.el, lisp/emacs-lisp/elint.el, lisp/finder.el, lisp/loadup.el, msdos/mainmake.v2: Update reference to ldefs-boot. * admin/update_autogen: Alter mechanism for ldefs-boot generation.
Diffstat (limited to 'Makefile.in')
-rw-r--r--Makefile.in19
1 files changed, 18 insertions, 1 deletions
diff --git a/Makefile.in b/Makefile.in
index 2fead76c1ce..d7e30a8206a 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1117,7 +1117,9 @@ check-info: info
# * Run autogen.sh.
# * Rebuild Makefile, to update the build procedure itself.
# * Do the actual build.
-bootstrap: bootstrap-clean
+bootstrap: | bootstrap-clean bootstrap-build
+
+bootstrap-build:
cd $(srcdir) && ./autogen.sh
$(MAKE) MAKEFILE_NAME=force-Makefile force-Makefile
$(MAKE) all
@@ -1180,3 +1182,18 @@ check-declare:
exit 1; \
fi
$(MAKE) -C lisp $@
+
+## Generating ldefs-boot-auto.el requires a completely clean build so
+## that we can see which autoloads are actually called. The build has
+## to complete because we use Emacs to clean the results up! We use
+## loaddefs.el in place of ldefs-boot-auto, because if we are running
+## this there is the possibility that ldefs-boot-auto is not
+## sufficient for bootstrap.
+generate-ldefs-boot: all
+ echo "Generating Bootstrap ldefs"
+ cp lisp/loaddefs.el lisp/ldefs-boot-auto.el
+ $(MAKE) -j 1 bootstrap \
+ GENERATE_LDEFS_BOOT="generate-ldefs-boot" \
+ 2>&1 | tee lisp/ldefs-boot-auto.temp
+ $(EMACS) -batch --load admin/ldefs-clean.el --funcall ldefs-clean
+ rm lisp/ldefs-boot-auto.temp