+ (cd lispref; $(MAKE) $(MFLAGS) elisp.dvi)
+ (cd lispintro; $(MAKE) $(MFLAGS) emacs-lisp-intro.dvi)
+
+#### Bootstrapping.
+
+### This is meant for Emacs maintainers only. It first cleans the
+### lisp subdirectory, removing all compiled Lisp files. Then a
+### special emacs executable is built from Lisp sources, which is then
+### used to compile Lisp files. The last step is a "normal" make.
+
+.PHONY: bootstrap
+.PHONY: maybe_bootstrap
+
+maybe_bootstrap:
+ @bar=`echo ./lisp/*.elc`; \
+ if [ "$bar" = './lisp/*.elc' ]; then \
+ echo "Your tree does not include the compiled Lisp files."; \
+ echo "You need to do \`make bootstrap' to build Emacs."; \
+ echo "Emacs now requires Texinfo version 4.2."; \
+ exit 1;\
+ fi
+
+bootstrap: bootstrap-clean-before info FRC
+ (cd lisp; $(MAKE) $(MFLAGS) bootstrap-clean)
+ (cd src; $(MAKE) $(MFLAGS) bootstrap)
+ (cd lisp; $(MAKE) $(MFLAGS) bootstrap EMACS=../src/bootstrap-emacs)
+ (cd src; $(MAKE) $(MFLAGS) mostlyclean)
+ $(MAKE) $(MFLAGS) all
+
+### Used for `bootstrap' to avoid deleting existing dumped Emacs executables.
+bootstrap-clean-before: FRC
+ (cd src; $(MAKE) $(MFLAGS) mostlyclean)
+ (cd oldXMenu; $(MAKE) $(MFLAGS) clean)
+ (cd lwlib; $(MAKE) $(MFLAGS) clean)
+ (cd lib-src; $(MAKE) $(MFLAGS) clean)
+ -(cd man && $(MAKE) $(MFLAGS) clean)
+ -(cd lispref && $(MAKE) $(MFLAGS) clean)
+ -(cd lispintro && $(MAKE) $(MFLAGS) clean)
+ (cd leim; $(MAKE) $(MFLAGS) clean)
+