1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-17 17:58:46 +00:00

* 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> 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": instead of just "make":
$ cvs update -dP $ cvs update -dP
$ ./configure
$ make bootstrap $ make bootstrap
The bootstrap process makes sure all necessary files are rebuilt Of course, if this is the first time you go through it, you'll need to do
before it builds the final Emacs binary. Unfortunately, it doesn't ./configure before the "make bootstrap".
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'.
Normally, it is not necessary to use "make bootstrap" after every CVS Normally, it is not necessary to use "make bootstrap" after every CVS
update. Unless there are problems, we suggest using the following update. "make" should work in 90% of the cases and be much quicker.
alternative procedure after you have done "make bootstrap" at least
once:
$ ./configure
$ make
$ cd lisp
$ make recompile
$ cd ..
$ make $ make
(If you want to install the Emacs binary, type "make install" instead (If you want to install the Emacs binary, type "make install" instead

View File

@ -56,11 +56,6 @@
# make bootstrap # make bootstrap
# Recompiles all the Emacs Lisp files using the latest source, # Recompiles all the Emacs Lisp files using the latest source,
# then rebuilds Emacs. # 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 SHELL = /bin/sh
@ -261,7 +256,11 @@ EMACSFULL = `echo emacs-${version}${EXEEXT} | sed '$(TRANSFORM)'`
# Subdirectories to make recursively. `lisp' is not included # Subdirectories to make recursively. `lisp' is not included
# because the compiled lisp files are part of the distribution. # because the compiled lisp files are part of the distribution.
# leim is not included because it needs special handling. # 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. # 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 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 .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 ${SUBDIR}: maybe_bootstrap ${SUBDIR_MAKEFILES} FRC
cd $@; $(MAKE) all $(MFLAGS) \ cd $@; $(MAKE) all $(MFLAGS) \
CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \ CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
@ -711,7 +713,7 @@ clean: FRC
### `make distclean' should leave only the files that were in the ### `make distclean' should leave only the files that were in the
### distribution. ### distribution.
top_distclean=\ top_distclean=\
rm -f config.status config.cache config.log ; \ rm -f config.cache config.log ; \
rm -f Makefile ${SUBDIR_MAKEFILES} ; \ rm -f Makefile ${SUBDIR_MAKEFILES} ; \
if [ -d lock ] ; then (cd lock && (rm -f * || true)); else true; fi if [ -d lock ] ; then (cd lock && (rm -f * || true)); else true; fi
distclean: FRC distclean: FRC
@ -727,6 +729,22 @@ distclean: FRC
(cd lisp; $(MAKE) $(MFLAGS) distclean) (cd lisp; $(MAKE) $(MFLAGS) distclean)
${top_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' ### `maintainer-clean'
### Delete everything from the current directory that can be ### Delete everything from the current directory that can be
### reconstructed with this Makefile. This typically includes ### reconstructed with this Makefile. This typically includes
@ -738,18 +756,9 @@ distclean: FRC
### Makefile. More generally, `make maintainer-clean' should not delete ### Makefile. More generally, `make maintainer-clean' should not delete
### anything that needs to exist in order to run `configure' and then ### anything that needs to exist in order to run `configure' and then
### begin to build the program. ### begin to build the program.
maintainer-clean: FRC maintainer-clean: bootstrap-clean
(cd src; $(MAKE) $(MFLAGS) maintainer-clean) (cd src; $(MAKE) $(MFLAGS) maintainer-clean)
(cd oldXMenu; $(MAKE) $(MFLAGS) maintainer-clean) -rm -f config.status
(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}
### This doesn't actually appear in the coding standards, but Karl ### This doesn't actually appear in the coding standards, but Karl
### says GCC supports it, and that's where the configuration part of ### says GCC supports it, and that's where the configuration part of
@ -826,7 +835,6 @@ dvi:
.PHONY: bootstrap .PHONY: bootstrap
.PHONY: bootstrap-build .PHONY: bootstrap-build
.PHONY: bootfast
.PHONY: maybe_bootstrap .PHONY: maybe_bootstrap
maybe_bootstrap: maybe_bootstrap:
@ -837,40 +845,26 @@ maybe_bootstrap:
exit 1;\ exit 1;\
fi 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 $(MAKE) $(MFLAGS) info bootstrap-build
bootfast: bootstrap-clean-before-fast FRC src/bootstrap-emacs${EXEEXT}:
$(MAKE) $(MFLAGS) info bootstrap-build (cd src; $(MAKE) $(MFLAGS) bootstrap-emacs${EXEEXT})
## There used to be a src; mostlyclean before all, but it does not ## There used to be a src; mostlyclean before all, but it does not
## seem to serve any purpose, and compiles things twice. ## seem to serve any purpose, and compiles things twice.
## http://lists.gnu.org/archive/html/emacs-devel/2008-06/msg00104.html ## http://lists.gnu.org/archive/html/emacs-devel/2008-06/msg00104.html
bootstrap-build: FRC bootstrap-build: src/bootstrap-emacs$(EXEEXT) FRC
(cd lisp; $(MAKE) $(MFLAGS) bootstrap-prepare)
(cd src; $(MAKE) $(MFLAGS) bootstrap)
(cd lisp; $(MAKE) $(MFLAGS) bootstrap EMACS=../src/bootstrap-emacs${EXEEXT}) (cd lisp; $(MAKE) $(MFLAGS) bootstrap EMACS=../src/bootstrap-emacs${EXEEXT})
$(MAKE) $(MFLAGS) all $(MAKE) $(MFLAGS) all
(cd lisp; $(MAKE) $(MFLAGS) bootstrap-after) (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 .PHONY: check-declare
check-declare: check-declare:

View File

@ -1,5 +1,8 @@
2008-06-20 Stefan Monnier <monnier@iro.umontreal.ca> 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 * Makefile.in ($(lisp)/progmodes/cc-mode.elc): Pass the .el file not
the .elc file to batch-byte-compile. the .elc file to batch-byte-compile.

View File

@ -98,6 +98,10 @@ setwins_almost=subdirs=`(cd $$wd; find . -type d -print)`; \
esac; \ esac; \
done 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: doit:
# custom-deps and finder-data both used to scan _all_ the *.el files. # 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 # local changes. (Because loaddefs.el is an automatically generated
# file, we don't want to store it in the source repository). # 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: autogen-clean:
cd $(lisp); rm -f $(AUTOGENEL) 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> 2008-06-20 Jason Rumney <jasonr@gnu.org>
* w32fns.c, w32term.c, w32term.h, w32gui.h [OLD_FONT]: Remove * w32fns.c, w32term.c, w32term.h, w32gui.h [OLD_FONT]:
obsolete font code. Remove obsolete font code.
* w32font.c (font_matches_spec): Use csb bitfield from font signature * w32font.c (font_matches_spec): Use csb bitfield from font signature
to determine language support. to determine language support.
2008-06-20 Stefan Monnier <monnier@iro.umontreal.ca> 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 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 #ifdef CANNOT_DUMP
rm -f emacs${EXEEXT} rm -f emacs${EXEEXT}
ln temacs${EXEEXT} emacs${EXEEXT} ln temacs${EXEEXT} emacs${EXEEXT}
@ -1284,6 +1284,10 @@ distclean: clean
mv ./.gdbinit ./.gdbinit.save mv ./.gdbinit ./.gdbinit.save
if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \ if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \
else mv ./.gdbinit.save ./.gdbinit; fi 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 maintainer-clean: distclean
@echo "This command is intended for maintainers to use;" @echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild." @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} 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 /* Dump an Emacs executable named bootstrap-emacs containing the
files from loadup.el in source form. */ 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 #ifdef CANNOT_DUMP
ln temacs${EXEEXT} bootstrap-emacs${EXEEXT} ln temacs${EXEEXT} bootstrap-emacs${EXEEXT}
#else #else