aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2008-06-22 13:57:28 +0000
committerStefan Monnier2008-06-22 13:57:28 +0000
commitb4945b9599f0651fef5fa2ca2ef6034fa0b5bfaa (patch)
treed61baf573d7a8303e0935741b886a33337e401c7 /src
parent3656581540295dc1d28e2c3341092dba057f2523 (diff)
downloademacs-b4945b9599f0651fef5fa2ca2ef6034fa0b5bfaa.tar.gz
emacs-b4945b9599f0651fef5fa2ca2ef6034fa0b5bfaa.zip
* Makefile.in ${SUBDIR}: Pass additional BOOTSTRAPEMACS argument.
* Makefile.in (${lisp} ${SOME_MACHINE_LISP}, ../lisp/loaddefs.el): Use $(BOOTSTRAPEMACS) rather than witness-emacs. (bootstrap-emacs${EXEEXT}): Merge witness-emacs into it. (witness-emacs): Remove. (lisp, shortlisp): Move loaddefs.el earlier. (mostlyclean): Forget about witness-emacs. * Makefile.in (COMPILE_FIRST): Trim down and add autoload.el.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog9
-rw-r--r--src/Makefile.in48
2 files changed, 36 insertions, 21 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 52b7bf078f4..fc0a84128b3 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,12 @@
12008-06-22 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * Makefile.in (${lisp} ${SOME_MACHINE_LISP}, ../lisp/loaddefs.el):
4 Use $(BOOTSTRAPEMACS) rather than witness-emacs.
5 (bootstrap-emacs${EXEEXT}): Merge witness-emacs into it.
6 (witness-emacs): Remove.
7 (lisp, shortlisp): Move loaddefs.el earlier.
8 (mostlyclean): Forget about witness-emacs.
9
12008-06-22 Glenn Morris <rgm@gnu.org> 102008-06-22 Glenn Morris <rgm@gnu.org>
2 11
3 * Makefile.in (witness-emacs): Depend on temacs${EXEEXT}. 12 * Makefile.in (witness-emacs): Depend on temacs${EXEEXT}.
diff --git a/src/Makefile.in b/src/Makefile.in
index 8c85c2c4414..140f944e0d6 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -680,7 +680,11 @@ otherobj= $(termcapobj) lastfile.o $(mallocobj) $(widgetobj) $(LIBOBJS)
680 Files included conditionally here should be included (unconditionally) 680 Files included conditionally here should be included (unconditionally)
681 in SOME_MACHINE_LISP. */ 681 in SOME_MACHINE_LISP. */
682 682
683/* Please loaddefs.el first, so it gets generated first, since it is on
684 the critical path (relevant in parallel compilations). */
685
683lisp= \ 686lisp= \
687 ${lispsource}loaddefs.el \
684 ${lispsource}abbrev.elc \ 688 ${lispsource}abbrev.elc \
685 ${lispsource}buff-menu.elc \ 689 ${lispsource}buff-menu.elc \
686 ${lispsource}button.elc \ 690 ${lispsource}button.elc \
@@ -705,7 +709,6 @@ lisp= \
705 ${lispsource}isearch.elc \ 709 ${lispsource}isearch.elc \
706 ${lispsource}rfn-eshadow.elc \ 710 ${lispsource}rfn-eshadow.elc \
707 ${lispsource}loadup.el \ 711 ${lispsource}loadup.el \
708 ${lispsource}loaddefs.el \
709 ${lispsource}bindings.elc \ 712 ${lispsource}bindings.elc \
710 ${lispsource}emacs-lisp/map-ynp.elc \ 713 ${lispsource}emacs-lisp/map-ynp.elc \
711 ${lispsource}menu-bar.elc \ 714 ${lispsource}menu-bar.elc \
@@ -775,6 +778,7 @@ lisp= \
775 It need not contain the files that are loaded conditionally 778 It need not contain the files that are loaded conditionally
776 because SOME_MACHINE_LISP has those. */ 779 because SOME_MACHINE_LISP has those. */
777shortlisp= \ 780shortlisp= \
781 ../lisp/loaddefs.el \
778 ../lisp/abbrev.elc \ 782 ../lisp/abbrev.elc \
779 ../lisp/buff-menu.elc \ 783 ../lisp/buff-menu.elc \
780 ../lisp/button.elc \ 784 ../lisp/button.elc \
@@ -797,7 +801,6 @@ shortlisp= \
797 ../lisp/isearch.elc \ 801 ../lisp/isearch.elc \
798 ../lisp/rfn-eshadow.elc \ 802 ../lisp/rfn-eshadow.elc \
799 ../lisp/loadup.el \ 803 ../lisp/loadup.el \
800 ../lisp/loaddefs.el \
801 ../lisp/bindings.elc \ 804 ../lisp/bindings.elc \
802 ../lisp/emacs-lisp/map-ynp.elc \ 805 ../lisp/emacs-lisp/map-ynp.elc \
803 ../lisp/env.elc \ 806 ../lisp/env.elc \
@@ -1274,7 +1277,7 @@ ${emacsapp}Contents/MacOS/Emacs: emacs${EXEEXT}
1274mostlyclean: 1277mostlyclean:
1275 rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a 1278 rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a
1276 rm -f ../etc/DOC 1279 rm -f ../etc/DOC
1277 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT} witness-emacs 1280 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
1278 rm -f buildobj.lst 1281 rm -f buildobj.lst
1279clean: mostlyclean 1282clean: mostlyclean
1280 rm -f emacs-*.*.*${EXEEXT} emacs${EXEEXT} 1283 rm -f emacs-*.*.*${EXEEXT} emacs${EXEEXT}
@@ -1328,42 +1331,45 @@ tags: TAGS TAGS-LISP $(lwlibdir)TAGS
1328 To solve the circularity, we use 2 different Emacs executables, 1331 To solve the circularity, we use 2 different Emacs executables,
1329 "emacs" is the main target and "bootstrap-emacs" is the one used 1332 "emacs" is the main target and "bootstrap-emacs" is the one used
1330 to build the *.elc and loaddefs.el files. 1333 to build the *.elc and loaddefs.el files.
1331 To solve the freshness issue, we use a third file "witness-emacs" 1334 To solve the freshness issue, we used to use a third file "witness-emacs"
1332 which is used to witness the fact that there is a bootstrap-emacs 1335 which was used to witness the fact that there is a bootstrap-emacs
1333 executable. */ 1336 executable, and then have dependencies on witness-emacs rather than
1337 bootstrap-emacs, but that lead to problems in parallel builds (because
1338 witness-emacs needed to be free from dependencies (to avoid rebuilding
1339 it), so it was compiled in parallel, leading typically to having 2
1340 processes dumping bootstrap-emacs at the same time).
1341 So instead, we replace the witness-emacs dependencies by conditional
1342 bootstrap-dependencies (via ${BOOTSTRAPEMACS}). Of course, since we do
1343 not want to rely on GNU Make features, we have to rely on an external
1344 script to do the conditional part of the dependency
1345 (i.e. see the ${SUBDIR} rule ../Makefile.in). */
1334 1346
1335/* These suffix rules do not allow additional dependencies, sadly, so
1336 adding a bootstrap-emacs%{EXEEXT} dependency does not work --Stef */
1337.SUFFIXES: .elc .el 1347.SUFFIXES: .elc .el
1338 1348
1349/* These suffix rules do not allow additional dependencies, sadly, so
1350 instead of adding a $(BOOTSTRAPEMACS) dependency here, we add it
1351 separately below.
1352 With GNU Make, we would just say "%.el : %.elc $(BOOTSTRAPEMACS)" */
1339.el.elc: 1353.el.elc:
1340 @cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile \ 1354 @cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile \
1341 THEFILE=$< EMACS=../src/bootstrap-emacs${EXEEXT} 1355 THEFILE=$< EMACS=../src/bootstrap-emacs${EXEEXT}
1342 1356
1343/* Since the .el.elc rule cannot specify an extra dependency, we do it here. 1357/* Since the .el.elc rule cannot specify an extra dependency, we do it here. */
1344 The byte-compiler dependency is not necessary, but it substantially 1358${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS)
1345 speeds up byte-compilation of the other files.
1346 Of course, it also has the downside of forcing a recompilation of all
1347 those files whenever a file in $PRECOMP changes. */
1348${lisp} ${SOME_MACHINE_LISP}: witness-emacs
1349 1359
1350../lisp/loaddefs.el: witness-emacs 1360../lisp/loaddefs.el: $(BOOTSTRAPEMACS)
1351 cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=../src/bootstrap-emacs${EXEEXT} 1361 cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=../src/bootstrap-emacs${EXEEXT}
1352 1362
1353/* Dump an Emacs executable named bootstrap-emacs containing the 1363/* Dump an Emacs executable named bootstrap-emacs containing the
1354 files from loadup.el in source form. */ 1364 files from loadup.el in source form. */
1355 1365
1356bootstrap-emacs${EXEEXT}: temacs${EXEEXT} 1366bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
1367 cd ../lisp; $(MAKE) $(MFLAGS) update-subdirs
1357#ifdef CANNOT_DUMP 1368#ifdef CANNOT_DUMP
1358 ln temacs${EXEEXT} bootstrap-emacs${EXEEXT} 1369 ln temacs${EXEEXT} bootstrap-emacs${EXEEXT}
1359#else 1370#else
1360 $(RUN_TEMACS) --batch --load loadup bootstrap 1371 $(RUN_TEMACS) --batch --load loadup bootstrap
1361 mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT} 1372 mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
1362#endif /* ! defined (CANNOT_DUMP) */ 1373#endif /* ! defined (CANNOT_DUMP) */
1363
1364witness-emacs: temacs${EXEEXT}
1365 cd ../lisp; $(MAKE) $(MFLAGS) update-subdirs
1366 $(MAKE) $(MFLAGS) bootstrap-emacs${EXEEXT}
1367 touch witness-emacs
1368 @: Compile some files earlier to speed up further compilation. 1374 @: Compile some files earlier to speed up further compilation.
1369 cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=../src/bootstrap-emacs${EXEEXT} 1375 cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=../src/bootstrap-emacs${EXEEXT}