* src/Makefile.in (emacs${EXEEXT}): Depend on the machine-specific files.

(bootstrap-clean): New target that keeps TAGS around.
(../lisp/subdirs.el, ../lisp/loaddefs.el): New targets.
(bootstrap-emacs${EXEEXT}): Depend on subdirs.el.
* lisp/Makefile.in (all): New target.
(bootstrap-prepare): Remove.
* Makefile.in (SUBDIR): Include `lisp'.
(lisp): Depend on `src'.
(top_distclean): Don't remove config.status.
(bootstrap-clean): New target.
(maintainer-clean): Use it.
(bootstrap): Use bootstrap-clean.  Re-run config.status.
(src/bootstrap-emacs${EXEEXT}): New target.
(bootstrap-build): Use it.  Don't use bootstrap-prepare because
src/Makefile now takes care of it.
(bootfast, bootstrap-clean-before, bootstrap-clean-before-fast): Remove.
This commit is contained in:
Stefan Monnier 2008-06-20 21:48:17 +00:00
parent db61a7f817
commit 49f6eb95b2
7 changed files with 81 additions and 73 deletions

View file

@ -1,6 +1,15 @@
2008-06-20 Angelo Graziosi <angelo.graziosi@alice.it> (tiny change)
2008-06-20 Stefan Monnier <monnier@iro.umontreal.ca>
* configure.in: Check for presence of cfmakeraw and cfsetspeed.
* Makefile.in (SUBDIR): Include `lisp'.
(lisp): Depend on `src'.
(top_distclean): Don't remove config.status.
(bootstrap-clean): New target.
(maintainer-clean): Use it.
(bootstrap): Use bootstrap-clean. Re-run config.status.
(src/bootstrap-emacs${EXEEXT}): New target.
(bootstrap-build): Use it. Don't use bootstrap-prepare because
src/Makefile now takes care of it.
(bootfast, bootstrap-clean-before, bootstrap-clean-before-fast): Remove.
2008-06-15 Glenn Morris <rgm@gnu.org>

View file

@ -11,28 +11,14 @@ Therefore, to build from CVS you must run "make bootstrap"
instead of just "make":
$ cvs update -dP
$ ./configure
$ make bootstrap
The bootstrap process makes sure all necessary files are rebuilt
before it builds the final Emacs binary. Unfortunately, it doesn't
always work when there are stale files from a previous build in the
directory tree.
So if 'make bootstrap' fails, it may be necessary first to do 'make
maintainer-clean' to clear out these stale files. You can then try
again, starting with `./configure'.
Of course, if this is the first time you go through it, you'll need to do
./configure before the "make bootstrap".
Normally, it is not necessary to use "make bootstrap" after every CVS
update. Unless there are problems, we suggest using the following
alternative procedure after you have done "make bootstrap" at least
once:
update. "make" should work in 90% of the cases and be much quicker.
$ ./configure
$ make
$ cd lisp
$ make recompile
$ cd ..
$ make
(If you want to install the Emacs binary, type "make install" instead

View file

@ -56,11 +56,6 @@
# make bootstrap
# Recompiles all the Emacs Lisp files using the latest source,
# then rebuilds Emacs.
#
# make bootfast
# Recompiles changed Emacs Lisp files using the latest C source,
# then rebuilds Emacs. This is faster than `make bootstrap'
# but once in a while an old .elc file can cause trouble.
SHELL = /bin/sh
@ -261,7 +256,11 @@ EMACSFULL = `echo emacs-${version}${EXEEXT} | sed '$(TRANSFORM)'`
# Subdirectories to make recursively. `lisp' is not included
# because the compiled lisp files are part of the distribution.
# leim is not included because it needs special handling.
SUBDIR = lib-src src
#
# Actually, we now include `lisp' as well, since the compiled files
# are not included any more in case of bootstrap or in case Emacs was
# checked out from a VCS.
SUBDIR = lib-src src lisp
# The subdir makefiles created by config.status.
SUBDIR_MAKEFILES = lib-src/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispref/Makefile doc/lispintro/Makefile src/Makefile oldXMenu/Makefile lwlib/Makefile leim/Makefile lisp/Makefile
@ -313,6 +312,9 @@ lib-src: FRC src/config.stamp
.RECURSIVE: ${SUBDIR} leim
# We need to build `emacs' in `src' to compile the *.elc files in `lisp'.
lisp: src
${SUBDIR}: maybe_bootstrap ${SUBDIR_MAKEFILES} FRC
cd $@; $(MAKE) all $(MFLAGS) \
CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
@ -711,7 +713,7 @@ clean: FRC
### `make distclean' should leave only the files that were in the
### distribution.
top_distclean=\
rm -f config.status config.cache config.log ; \
rm -f config.cache config.log ; \
rm -f Makefile ${SUBDIR_MAKEFILES} ; \
if [ -d lock ] ; then (cd lock && (rm -f * || true)); else true; fi
distclean: FRC
@ -727,6 +729,22 @@ distclean: FRC
(cd lisp; $(MAKE) $(MFLAGS) distclean)
${top_distclean}
### `bootstrap-clean'
### Delete everything that can be reconstructed by `make' and that
### needs to be deleted in order to force a bootstrap from a clean state.
bootstrap-clean: FRC
(cd src; $(MAKE) $(MFLAGS) bootstrap-clean)
(cd oldXMenu; $(MAKE) $(MFLAGS) maintainer-clean)
(cd lwlib; $(MAKE) $(MFLAGS) maintainer-clean)
(cd lib-src; $(MAKE) $(MFLAGS) maintainer-clean)
-(cd doc/emacs && $(MAKE) $(MFLAGS) maintainer-clean)
-(cd doc/misc && $(MAKE) $(MFLAGS) maintainer-clean)
-(cd doc/lispref && $(MAKE) $(MFLAGS) maintainer-clean)
-(cd doc/lispintro && $(MAKE) $(MFLAGS) maintainer-clean)
(cd leim; $(MAKE) $(MFLAGS) maintainer-clean)
(cd lisp; $(MAKE) $(MFLAGS) maintainer-clean)
${top_distclean}
### `maintainer-clean'
### Delete everything from the current directory that can be
### reconstructed with this Makefile. This typically includes
@ -738,18 +756,9 @@ distclean: FRC
### Makefile. More generally, `make maintainer-clean' should not delete
### anything that needs to exist in order to run `configure' and then
### begin to build the program.
maintainer-clean: FRC
maintainer-clean: bootstrap-clean
(cd src; $(MAKE) $(MFLAGS) maintainer-clean)
(cd oldXMenu; $(MAKE) $(MFLAGS) maintainer-clean)
(cd lwlib; $(MAKE) $(MFLAGS) maintainer-clean)
(cd lib-src; $(MAKE) $(MFLAGS) maintainer-clean)
-(cd doc/emacs && $(MAKE) $(MFLAGS) maintainer-clean)
-(cd doc/misc && $(MAKE) $(MFLAGS) maintainer-clean)
-(cd doc/lispref && $(MAKE) $(MFLAGS) maintainer-clean)
-(cd doc/lispintro && $(MAKE) $(MFLAGS) maintainer-clean)
(cd leim; $(MAKE) $(MFLAGS) maintainer-clean)
(cd lisp; $(MAKE) $(MFLAGS) maintainer-clean)
${top_distclean}
-rm -f config.status
### This doesn't actually appear in the coding standards, but Karl
### says GCC supports it, and that's where the configuration part of
@ -826,7 +835,6 @@ dvi:
.PHONY: bootstrap
.PHONY: bootstrap-build
.PHONY: bootfast
.PHONY: maybe_bootstrap
maybe_bootstrap:
@ -837,40 +845,26 @@ maybe_bootstrap:
exit 1;\
fi
bootstrap: bootstrap-clean-before FRC
bootstrap: bootstrap-clean FRC
if [ -x ./config.status ]; then \
./config.status --recheck; \
./config.status; \
else \
./configure --enable-maintainer-mode; \
fi
$(MAKE) $(MFLAGS) info bootstrap-build
bootfast: bootstrap-clean-before-fast FRC
$(MAKE) $(MFLAGS) info bootstrap-build
src/bootstrap-emacs${EXEEXT}:
(cd src; $(MAKE) $(MFLAGS) bootstrap-emacs${EXEEXT})
## There used to be a src; mostlyclean before all, but it does not
## seem to serve any purpose, and compiles things twice.
## http://lists.gnu.org/archive/html/emacs-devel/2008-06/msg00104.html
bootstrap-build: FRC
(cd lisp; $(MAKE) $(MFLAGS) bootstrap-prepare)
(cd src; $(MAKE) $(MFLAGS) bootstrap)
bootstrap-build: src/bootstrap-emacs$(EXEEXT) FRC
(cd lisp; $(MAKE) $(MFLAGS) bootstrap EMACS=../src/bootstrap-emacs${EXEEXT})
$(MAKE) $(MFLAGS) all
(cd lisp; $(MAKE) $(MFLAGS) bootstrap-after)
### Used for `bootstrap' to avoid deleting existing dumped Emacs executables.
bootstrap-clean-before: bootstrap-clean-before-fast FRC
(cd lisp; $(MAKE) $(MFLAGS) bootstrap-clean)
(cd leim; $(MAKE) $(MFLAGS) bootstrap-clean)
### Used for `bootfast' to avoid deleting existing dumped Emacs executables
### and compiled .elc files.
bootstrap-clean-before-fast: FRC
(cd src; $(MAKE) $(MFLAGS) mostlyclean)
(cd oldXMenu; $(MAKE) $(MFLAGS) clean)
(cd lwlib; $(MAKE) $(MFLAGS) clean)
(cd lib-src; $(MAKE) $(MFLAGS) clean)
-(cd doc/emacs && $(MAKE) $(MFLAGS) clean)
-(cd doc/misc && $(MAKE) $(MFLAGS) clean)
-(cd doc/lispref && $(MAKE) $(MFLAGS) clean)
-(cd doc/lispintro && $(MAKE) $(MFLAGS) clean)
(cd leim; $(MAKE) $(MFLAGS) clean)
.PHONY: check-declare
check-declare:

View file

@ -1,5 +1,8 @@
2008-06-20 Stefan Monnier <monnier@iro.umontreal.ca>
* Makefile.in (all): New target.
(bootstrap-prepare): Remove.
* Makefile.in ($(lisp)/progmodes/cc-mode.elc): Pass the .el file not
the .elc file to batch-byte-compile.

View file

@ -98,6 +98,10 @@ setwins_almost=subdirs=`(cd $$wd; find . -type d -print)`; \
esac; \
done
# `compile-main' tends to be slower than `recompile' but can be parallelized
# with "make -j" and results in more deterministic compilation warnings.
all: compile-main
doit:
# custom-deps and finder-data both used to scan _all_ the *.el files.
@ -1401,11 +1405,6 @@ $(CAL_DIR)/hol-loaddefs.el: $(emacs-deps) $(CAL_SRC)
# local changes. (Because loaddefs.el is an automatically generated
# file, we don't want to store it in the source repository).
bootstrap-prepare:
if test -x $(EMACS); then \
$(MAKE) $(MFLAGS) autoloads EMACS=$(EMACS); \
fi
autogen-clean:
cd $(lisp); rm -f $(AUTOGENEL)

View file

@ -1,10 +1,17 @@
2008-06-20 Stefan Monnier <monnier@iro.umontreal.ca>
* Makefile.in (emacs${EXEEXT}): Depend on the machine-specific files.
(bootstrap-clean): New target that keeps TAGS around.
(../lisp/subdirs.el, ../lisp/loaddefs.el): New targets.
(bootstrap-emacs${EXEEXT}): Depend on subdirs.el.
2008-06-20 Jason Rumney <jasonr@gnu.org>
* w32fns.c, w32term.c, w32term.h, w32gui.h [OLD_FONT]: Remove
obsolete font code.
* w32fns.c, w32term.c, w32term.h, w32gui.h [OLD_FONT]:
Remove obsolete font code.
* w32font.c (font_matches_spec): Use csb bitfield from font signature
to determine language support.
* w32font.c (font_matches_spec): Use csb bitfield from font signature
to determine language support.
2008-06-20 Stefan Monnier <monnier@iro.umontreal.ca>

View file

@ -906,7 +906,7 @@ RUN_TEMACS = `/bin/pwd`/temacs
all: emacs${EXEEXT} OTHER_FILES
emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp} ${SOME_MACHINE_LISP}
#ifdef CANNOT_DUMP
rm -f emacs${EXEEXT}
ln temacs${EXEEXT} emacs${EXEEXT}
@ -1284,6 +1284,10 @@ distclean: clean
mv ./.gdbinit ./.gdbinit.save
if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \
else mv ./.gdbinit.save ./.gdbinit; fi
/* bootstrap-clean is used to clean up just before a bootstrap.
It should remove all files generated during a compilation/bootstrap,
but not things like config.status or TAGS. */
bootstrap-clean: distclean
maintainer-clean: distclean
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
@ -1318,10 +1322,16 @@ tags: TAGS TAGS-LISP $(lwlibdir)TAGS
bootstrap: bootstrap-emacs${EXEEXT}
../lisp/subdirs.el:
cd $(lispsource); $(MAKE) update-subdirs
../lisp/loaddefs.el: bootstrap-emacs${EXEEXT}
cd $(lispsource); $(MAKE) autoloads EMACS=../src/bootstrap-emacs${EXEEXT}
/* Dump an Emacs executable named bootstrap-emacs containing the
files from loadup.el in source form. */
bootstrap-emacs${EXEEXT}: temacs${EXEEXT} ${lispsource}international/charprop.el
bootstrap-emacs${EXEEXT}: temacs${EXEEXT} ${lispsource}international/charprop.el ../lisp/subdirs.el
#ifdef CANNOT_DUMP
ln temacs${EXEEXT} bootstrap-emacs${EXEEXT}
#else