diff options
| author | Stefan Monnier | 2008-06-22 13:57:28 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2008-06-22 13:57:28 +0000 |
| commit | b4945b9599f0651fef5fa2ca2ef6034fa0b5bfaa (patch) | |
| tree | d61baf573d7a8303e0935741b886a33337e401c7 /src | |
| parent | 3656581540295dc1d28e2c3341092dba057f2523 (diff) | |
| download | emacs-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/ChangeLog | 9 | ||||
| -rw-r--r-- | src/Makefile.in | 48 |
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 @@ | |||
| 1 | 2008-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 | |||
| 1 | 2008-06-22 Glenn Morris <rgm@gnu.org> | 10 | 2008-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 | |||
| 683 | lisp= \ | 686 | lisp= \ |
| 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. */ |
| 777 | shortlisp= \ | 780 | shortlisp= \ |
| 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} | |||
| 1274 | mostlyclean: | 1277 | mostlyclean: |
| 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 |
| 1279 | clean: mostlyclean | 1282 | clean: 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 | ||
| 1356 | bootstrap-emacs${EXEEXT}: temacs${EXEEXT} | 1366 | bootstrap-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 | |||
| 1364 | witness-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} |