aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2008-06-20 21:48:17 +0000
committerStefan Monnier2008-06-20 21:48:17 +0000
commit49f6eb95b2dc33e178af0f3fd5d48217abe44d9b (patch)
tree17b3baa6f639b19cce04e1f2d4769d79f83876f1
parentdb61a7f8178124b13f2687c65813e5521b296a57 (diff)
downloademacs-49f6eb95b2dc33e178af0f3fd5d48217abe44d9b.tar.gz
emacs-49f6eb95b2dc33e178af0f3fd5d48217abe44d9b.zip
* 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.
-rw-r--r--ChangeLog13
-rw-r--r--INSTALL.CVS20
-rw-r--r--Makefile.in80
-rw-r--r--lisp/ChangeLog3
-rw-r--r--lisp/Makefile.in9
-rw-r--r--src/ChangeLog15
-rw-r--r--src/Makefile.in14
7 files changed, 81 insertions, 73 deletions
diff --git a/ChangeLog b/ChangeLog
index bcb9ffb21e4..7ce8e321a18 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,15 @@
12008-06-20 Angelo Graziosi <angelo.graziosi@alice.it> (tiny change) 12008-06-20 Stefan Monnier <monnier@iro.umontreal.ca>
2 2
3 * configure.in: Check for presence of cfmakeraw and cfsetspeed. 3 * Makefile.in (SUBDIR): Include `lisp'.
4 (lisp): Depend on `src'.
5 (top_distclean): Don't remove config.status.
6 (bootstrap-clean): New target.
7 (maintainer-clean): Use it.
8 (bootstrap): Use bootstrap-clean. Re-run config.status.
9 (src/bootstrap-emacs${EXEEXT}): New target.
10 (bootstrap-build): Use it. Don't use bootstrap-prepare because
11 src/Makefile now takes care of it.
12 (bootfast, bootstrap-clean-before, bootstrap-clean-before-fast): Remove.
4 13
52008-06-15 Glenn Morris <rgm@gnu.org> 142008-06-15 Glenn Morris <rgm@gnu.org>
6 15
diff --git a/INSTALL.CVS b/INSTALL.CVS
index 1c52b29d9be..97da65af711 100644
--- a/INSTALL.CVS
+++ b/INSTALL.CVS
@@ -11,28 +11,14 @@ Therefore, to build from CVS you must run "make bootstrap"
11instead of just "make": 11instead of just "make":
12 12
13 $ cvs update -dP 13 $ cvs update -dP
14 $ ./configure
15 $ make bootstrap 14 $ make bootstrap
16 15
17The bootstrap process makes sure all necessary files are rebuilt 16Of course, if this is the first time you go through it, you'll need to do
18before it builds the final Emacs binary. Unfortunately, it doesn't 17./configure before the "make bootstrap".
19always work when there are stale files from a previous build in the
20directory tree.
21
22So if 'make bootstrap' fails, it may be necessary first to do 'make
23maintainer-clean' to clear out these stale files. You can then try
24again, starting with `./configure'.
25 18
26Normally, it is not necessary to use "make bootstrap" after every CVS 19Normally, it is not necessary to use "make bootstrap" after every CVS
27update. Unless there are problems, we suggest using the following 20update. "make" should work in 90% of the cases and be much quicker.
28alternative procedure after you have done "make bootstrap" at least
29once:
30 21
31 $ ./configure
32 $ make
33 $ cd lisp
34 $ make recompile
35 $ cd ..
36 $ make 22 $ make
37 23
38(If you want to install the Emacs binary, type "make install" instead 24(If you want to install the Emacs binary, type "make install" instead
diff --git a/Makefile.in b/Makefile.in
index 3b3d7cf9e96..2b313dffa56 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -56,11 +56,6 @@
56# make bootstrap 56# make bootstrap
57# Recompiles all the Emacs Lisp files using the latest source, 57# Recompiles all the Emacs Lisp files using the latest source,
58# then rebuilds Emacs. 58# then rebuilds Emacs.
59#
60# make bootfast
61# Recompiles changed Emacs Lisp files using the latest C source,
62# then rebuilds Emacs. This is faster than `make bootstrap'
63# but once in a while an old .elc file can cause trouble.
64 59
65SHELL = /bin/sh 60SHELL = /bin/sh
66 61
@@ -261,7 +256,11 @@ EMACSFULL = `echo emacs-${version}${EXEEXT} | sed '$(TRANSFORM)'`
261# Subdirectories to make recursively. `lisp' is not included 256# Subdirectories to make recursively. `lisp' is not included
262# because the compiled lisp files are part of the distribution. 257# because the compiled lisp files are part of the distribution.
263# leim is not included because it needs special handling. 258# leim is not included because it needs special handling.
264SUBDIR = lib-src src 259#
260# Actually, we now include `lisp' as well, since the compiled files
261# are not included any more in case of bootstrap or in case Emacs was
262# checked out from a VCS.
263SUBDIR = lib-src src lisp
265 264
266# The subdir makefiles created by config.status. 265# The subdir makefiles created by config.status.
267SUBDIR_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 266SUBDIR_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
313 312
314.RECURSIVE: ${SUBDIR} leim 313.RECURSIVE: ${SUBDIR} leim
315 314
315# We need to build `emacs' in `src' to compile the *.elc files in `lisp'.
316lisp: src
317
316${SUBDIR}: maybe_bootstrap ${SUBDIR_MAKEFILES} FRC 318${SUBDIR}: maybe_bootstrap ${SUBDIR_MAKEFILES} FRC
317 cd $@; $(MAKE) all $(MFLAGS) \ 319 cd $@; $(MAKE) all $(MFLAGS) \
318 CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \ 320 CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
@@ -711,7 +713,7 @@ clean: FRC
711### `make distclean' should leave only the files that were in the 713### `make distclean' should leave only the files that were in the
712### distribution. 714### distribution.
713top_distclean=\ 715top_distclean=\
714 rm -f config.status config.cache config.log ; \ 716 rm -f config.cache config.log ; \
715 rm -f Makefile ${SUBDIR_MAKEFILES} ; \ 717 rm -f Makefile ${SUBDIR_MAKEFILES} ; \
716 if [ -d lock ] ; then (cd lock && (rm -f * || true)); else true; fi 718 if [ -d lock ] ; then (cd lock && (rm -f * || true)); else true; fi
717distclean: FRC 719distclean: FRC
@@ -727,6 +729,22 @@ distclean: FRC
727 (cd lisp; $(MAKE) $(MFLAGS) distclean) 729 (cd lisp; $(MAKE) $(MFLAGS) distclean)
728 ${top_distclean} 730 ${top_distclean}
729 731
732### `bootstrap-clean'
733### Delete everything that can be reconstructed by `make' and that
734### needs to be deleted in order to force a bootstrap from a clean state.
735bootstrap-clean: FRC
736 (cd src; $(MAKE) $(MFLAGS) bootstrap-clean)
737 (cd oldXMenu; $(MAKE) $(MFLAGS) maintainer-clean)
738 (cd lwlib; $(MAKE) $(MFLAGS) maintainer-clean)
739 (cd lib-src; $(MAKE) $(MFLAGS) maintainer-clean)
740 -(cd doc/emacs && $(MAKE) $(MFLAGS) maintainer-clean)
741 -(cd doc/misc && $(MAKE) $(MFLAGS) maintainer-clean)
742 -(cd doc/lispref && $(MAKE) $(MFLAGS) maintainer-clean)
743 -(cd doc/lispintro && $(MAKE) $(MFLAGS) maintainer-clean)
744 (cd leim; $(MAKE) $(MFLAGS) maintainer-clean)
745 (cd lisp; $(MAKE) $(MFLAGS) maintainer-clean)
746 ${top_distclean}
747
730### `maintainer-clean' 748### `maintainer-clean'
731### Delete everything from the current directory that can be 749### Delete everything from the current directory that can be
732### reconstructed with this Makefile. This typically includes 750### reconstructed with this Makefile. This typically includes
@@ -738,18 +756,9 @@ distclean: FRC
738### Makefile. More generally, `make maintainer-clean' should not delete 756### Makefile. More generally, `make maintainer-clean' should not delete
739### anything that needs to exist in order to run `configure' and then 757### anything that needs to exist in order to run `configure' and then
740### begin to build the program. 758### begin to build the program.
741maintainer-clean: FRC 759maintainer-clean: bootstrap-clean
742 (cd src; $(MAKE) $(MFLAGS) maintainer-clean) 760 (cd src; $(MAKE) $(MFLAGS) maintainer-clean)
743 (cd oldXMenu; $(MAKE) $(MFLAGS) maintainer-clean) 761 -rm -f config.status
744 (cd lwlib; $(MAKE) $(MFLAGS) maintainer-clean)
745 (cd lib-src; $(MAKE) $(MFLAGS) maintainer-clean)
746 -(cd doc/emacs && $(MAKE) $(MFLAGS) maintainer-clean)
747 -(cd doc/misc && $(MAKE) $(MFLAGS) maintainer-clean)
748 -(cd doc/lispref && $(MAKE) $(MFLAGS) maintainer-clean)
749 -(cd doc/lispintro && $(MAKE) $(MFLAGS) maintainer-clean)
750 (cd leim; $(MAKE) $(MFLAGS) maintainer-clean)
751 (cd lisp; $(MAKE) $(MFLAGS) maintainer-clean)
752 ${top_distclean}
753 762
754### This doesn't actually appear in the coding standards, but Karl 763### This doesn't actually appear in the coding standards, but Karl
755### says GCC supports it, and that's where the configuration part of 764### says GCC supports it, and that's where the configuration part of
@@ -826,7 +835,6 @@ dvi:
826 835
827.PHONY: bootstrap 836.PHONY: bootstrap
828.PHONY: bootstrap-build 837.PHONY: bootstrap-build
829.PHONY: bootfast
830.PHONY: maybe_bootstrap 838.PHONY: maybe_bootstrap
831 839
832maybe_bootstrap: 840maybe_bootstrap:
@@ -837,40 +845,26 @@ maybe_bootstrap:
837 exit 1;\ 845 exit 1;\
838 fi 846 fi
839 847
840bootstrap: bootstrap-clean-before FRC 848bootstrap: bootstrap-clean FRC
849 if [ -x ./config.status ]; then \
850 ./config.status --recheck; \
851 ./config.status; \
852 else \
853 ./configure --enable-maintainer-mode; \
854 fi
841 $(MAKE) $(MFLAGS) info bootstrap-build 855 $(MAKE) $(MFLAGS) info bootstrap-build
842 856
843bootfast: bootstrap-clean-before-fast FRC 857src/bootstrap-emacs${EXEEXT}:
844 $(MAKE) $(MFLAGS) info bootstrap-build 858 (cd src; $(MAKE) $(MFLAGS) bootstrap-emacs${EXEEXT})
845 859
846## There used to be a src; mostlyclean before all, but it does not 860## There used to be a src; mostlyclean before all, but it does not
847## seem to serve any purpose, and compiles things twice. 861## seem to serve any purpose, and compiles things twice.
848## http://lists.gnu.org/archive/html/emacs-devel/2008-06/msg00104.html 862## http://lists.gnu.org/archive/html/emacs-devel/2008-06/msg00104.html
849bootstrap-build: FRC 863bootstrap-build: src/bootstrap-emacs$(EXEEXT) FRC
850 (cd lisp; $(MAKE) $(MFLAGS) bootstrap-prepare)
851 (cd src; $(MAKE) $(MFLAGS) bootstrap)
852 (cd lisp; $(MAKE) $(MFLAGS) bootstrap EMACS=../src/bootstrap-emacs${EXEEXT}) 864 (cd lisp; $(MAKE) $(MFLAGS) bootstrap EMACS=../src/bootstrap-emacs${EXEEXT})
853 $(MAKE) $(MFLAGS) all 865 $(MAKE) $(MFLAGS) all
854 (cd lisp; $(MAKE) $(MFLAGS) bootstrap-after) 866 (cd lisp; $(MAKE) $(MFLAGS) bootstrap-after)
855 867
856### Used for `bootstrap' to avoid deleting existing dumped Emacs executables.
857bootstrap-clean-before: bootstrap-clean-before-fast FRC
858 (cd lisp; $(MAKE) $(MFLAGS) bootstrap-clean)
859 (cd leim; $(MAKE) $(MFLAGS) bootstrap-clean)
860
861### Used for `bootfast' to avoid deleting existing dumped Emacs executables
862### and compiled .elc files.
863bootstrap-clean-before-fast: FRC
864 (cd src; $(MAKE) $(MFLAGS) mostlyclean)
865 (cd oldXMenu; $(MAKE) $(MFLAGS) clean)
866 (cd lwlib; $(MAKE) $(MFLAGS) clean)
867 (cd lib-src; $(MAKE) $(MFLAGS) clean)
868 -(cd doc/emacs && $(MAKE) $(MFLAGS) clean)
869 -(cd doc/misc && $(MAKE) $(MFLAGS) clean)
870 -(cd doc/lispref && $(MAKE) $(MFLAGS) clean)
871 -(cd doc/lispintro && $(MAKE) $(MFLAGS) clean)
872 (cd leim; $(MAKE) $(MFLAGS) clean)
873
874.PHONY: check-declare 868.PHONY: check-declare
875 869
876check-declare: 870check-declare:
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 5188d160710..bed038f31ef 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,8 @@
12008-06-20 Stefan Monnier <monnier@iro.umontreal.ca> 12008-06-20 Stefan Monnier <monnier@iro.umontreal.ca>
2 2
3 * Makefile.in (all): New target.
4 (bootstrap-prepare): Remove.
5
3 * Makefile.in ($(lisp)/progmodes/cc-mode.elc): Pass the .el file not 6 * Makefile.in ($(lisp)/progmodes/cc-mode.elc): Pass the .el file not
4 the .elc file to batch-byte-compile. 7 the .elc file to batch-byte-compile.
5 8
diff --git a/lisp/Makefile.in b/lisp/Makefile.in
index a9c41a53311..9b354b9bdf6 100644
--- a/lisp/Makefile.in
+++ b/lisp/Makefile.in
@@ -98,6 +98,10 @@ setwins_almost=subdirs=`(cd $$wd; find . -type d -print)`; \
98 esac; \ 98 esac; \
99 done 99 done
100 100
101# `compile-main' tends to be slower than `recompile' but can be parallelized
102# with "make -j" and results in more deterministic compilation warnings.
103all: compile-main
104
101doit: 105doit:
102 106
103# custom-deps and finder-data both used to scan _all_ the *.el files. 107# 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)
1401# local changes. (Because loaddefs.el is an automatically generated 1405# local changes. (Because loaddefs.el is an automatically generated
1402# file, we don't want to store it in the source repository). 1406# file, we don't want to store it in the source repository).
1403 1407
1404bootstrap-prepare:
1405 if test -x $(EMACS); then \
1406 $(MAKE) $(MFLAGS) autoloads EMACS=$(EMACS); \
1407 fi
1408
1409autogen-clean: 1408autogen-clean:
1410 cd $(lisp); rm -f $(AUTOGENEL) 1409 cd $(lisp); rm -f $(AUTOGENEL)
1411 1410
diff --git a/src/ChangeLog b/src/ChangeLog
index 4434b1d45e1..791ea6dcaa5 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,10 +1,17 @@
12008-06-20 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * Makefile.in (emacs${EXEEXT}): Depend on the machine-specific files.
4 (bootstrap-clean): New target that keeps TAGS around.
5 (../lisp/subdirs.el, ../lisp/loaddefs.el): New targets.
6 (bootstrap-emacs${EXEEXT}): Depend on subdirs.el.
7
12008-06-20 Jason Rumney <jasonr@gnu.org> 82008-06-20 Jason Rumney <jasonr@gnu.org>
2 9
3 * w32fns.c, w32term.c, w32term.h, w32gui.h [OLD_FONT]: Remove 10 * w32fns.c, w32term.c, w32term.h, w32gui.h [OLD_FONT]:
4 obsolete font code. 11 Remove obsolete font code.
5 12
6 * w32font.c (font_matches_spec): Use csb bitfield from font signature 13 * w32font.c (font_matches_spec): Use csb bitfield from font signature
7 to determine language support. 14 to determine language support.
8 15
92008-06-20 Stefan Monnier <monnier@iro.umontreal.ca> 162008-06-20 Stefan Monnier <monnier@iro.umontreal.ca>
10 17
diff --git a/src/Makefile.in b/src/Makefile.in
index a64ff668bdd..85b1c6c0f34 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -906,7 +906,7 @@ RUN_TEMACS = `/bin/pwd`/temacs
906 906
907all: emacs${EXEEXT} OTHER_FILES 907all: emacs${EXEEXT} OTHER_FILES
908 908
909emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp} 909emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp} ${SOME_MACHINE_LISP}
910#ifdef CANNOT_DUMP 910#ifdef CANNOT_DUMP
911 rm -f emacs${EXEEXT} 911 rm -f emacs${EXEEXT}
912 ln temacs${EXEEXT} emacs${EXEEXT} 912 ln temacs${EXEEXT} emacs${EXEEXT}
@@ -1284,6 +1284,10 @@ distclean: clean
1284 mv ./.gdbinit ./.gdbinit.save 1284 mv ./.gdbinit ./.gdbinit.save
1285 if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \ 1285 if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \
1286 else mv ./.gdbinit.save ./.gdbinit; fi 1286 else mv ./.gdbinit.save ./.gdbinit; fi
1287/* bootstrap-clean is used to clean up just before a bootstrap.
1288 It should remove all files generated during a compilation/bootstrap,
1289 but not things like config.status or TAGS. */
1290bootstrap-clean: distclean
1287maintainer-clean: distclean 1291maintainer-clean: distclean
1288 @echo "This command is intended for maintainers to use;" 1292 @echo "This command is intended for maintainers to use;"
1289 @echo "it deletes files that may require special tools to rebuild." 1293 @echo "it deletes files that may require special tools to rebuild."
@@ -1318,10 +1322,16 @@ tags: TAGS TAGS-LISP $(lwlibdir)TAGS
1318 1322
1319bootstrap: bootstrap-emacs${EXEEXT} 1323bootstrap: bootstrap-emacs${EXEEXT}
1320 1324
1325../lisp/subdirs.el:
1326 cd $(lispsource); $(MAKE) update-subdirs
1327
1328../lisp/loaddefs.el: bootstrap-emacs${EXEEXT}
1329 cd $(lispsource); $(MAKE) autoloads EMACS=../src/bootstrap-emacs${EXEEXT}
1330
1321/* Dump an Emacs executable named bootstrap-emacs containing the 1331/* Dump an Emacs executable named bootstrap-emacs containing the
1322 files from loadup.el in source form. */ 1332 files from loadup.el in source form. */
1323 1333
1324bootstrap-emacs${EXEEXT}: temacs${EXEEXT} ${lispsource}international/charprop.el 1334bootstrap-emacs${EXEEXT}: temacs${EXEEXT} ${lispsource}international/charprop.el ../lisp/subdirs.el
1325#ifdef CANNOT_DUMP 1335#ifdef CANNOT_DUMP
1326 ln temacs${EXEEXT} bootstrap-emacs${EXEEXT} 1336 ln temacs${EXEEXT} bootstrap-emacs${EXEEXT}
1327#else 1337#else