Mercurial > hg > xemacs-beta
comparison nt/xemacs.mak @ 1303:f99d3d25df86
[xemacs-hg @ 2003-02-15 10:15:54 by ben]
autoload fixes, make-doc speed improvements
Makefile.in.in: Run update-elc-2 with -no-autoloads
to avoid multiple autoload-loading problem.
configure.usage: Document quick-build better.
make-docfile.el: Use `message' (defined in this file) in place of `princ'/`print',
and put in a terpri, so that we get correct newline behavior.
Rewrite if-progn -> when and a few similar stylistic niceties.
And the big change: Allow MS Windows to specify the object files
directly and frob them into C files here (formerly this was done
in xemacs.mak, and very slooooooooooooooooooowly). Due to
line-length limitations in CMD, we need to use a "response file"
to hold the arguments, so when we see a response file argument
(preceded by an @), read in the args (a bit of trickiness to do
this), and process recursively. Also frob .obj -> .c as mentioned
earlier and handle other junk dependencies that need to be removed
(NEEDTODUMP, make-docfile.exe).
update-elc-2.el: Use :test `equal' in call to set-difference.
update-elc.el: Put back commented out kill-emacs, update header comment.
xemacs.mak: Delete old unused code that checks SATISFIED.
Move update-elc-2 up to be near update-elc.
Run update-elc-2 with -no-autoloads to avoid multiple
autoload-loading problem.
Don't compute make-docfile args ourselves. Pass the raw objects
to make-docfile.el, which does the computation (much faster than
we could). Don't delete the DOC file, split the invocation into
two calls to make-docfile.exe (one direct, one through
make-docfile.el), etc. In general, all we do is call make-docfile.
Add proper dependencies for DOC-file rebuilding so it doesn't get
done when not necessary. Implement quick-building here: not
building the DOC file unless it doesn't exist, as the quick-build
docs say.
Makefile.in.in: Don't delete the DOC file. Implement quick-building here: not
building the DOC file unless it doesn't exist, as the quick-build
docs say.
config.h.in, emacs.c: Nothing but niggly spacing changes -- one space before a paren
starting a function-call arglist, please.
author | ben |
---|---|
date | Sat, 15 Feb 2003 10:16:14 +0000 |
parents | 5f2f8dcbfb3e |
children | 70921960b980 |
comparison
equal
deleted
inserted
replaced
1302:781dc6d5baba | 1303:f99d3d25df86 |
---|---|
1 # Makefile for Microsoft NMAKE -*- Makefile -*- | 1 # Makefile for Microsoft NMAKE -*- Makefile -*- |
2 # | 2 # |
3 # Copyright (C) 1995 Board of Trustees, University of Illinois. | 3 # Copyright (C) 1995 Board of Trustees, University of Illinois. |
4 # Copyright (C) 1995, 1996, 2000, 2001, 2002 Ben Wing. | 4 # Copyright (C) 1995, 1996, 2000, 2001, 2002, 2003 Ben Wing. |
5 # Copyright (C) 1997, 1998, 2000 Jonathan Harris. | 5 # Copyright (C) 1997, 1998, 2000 Jonathan Harris. |
6 # Copyright (C) 1995 Sun Microsystems, Inc. | 6 # Copyright (C) 1995 Sun Microsystems, Inc. |
7 # Copyright (C) 1998 Free Software Foundation, Inc. | 7 # Copyright (C) 1998 Free Software Foundation, Inc. |
8 # | 8 # |
9 # This file is part of XEmacs. | 9 # This file is part of XEmacs. |
1043 $(OUTDIR)\temacs.res: $(NT)\xemacs.rc | 1043 $(OUTDIR)\temacs.res: $(NT)\xemacs.rc |
1044 cd $(NT) | 1044 cd $(NT) |
1045 rc -Fo$@ xemacs.rc | 1045 rc -Fo$@ xemacs.rc |
1046 | 1046 |
1047 | 1047 |
1048 PROGNAME=$(TEMACS_DIR)\xemacs.exe | 1048 PROGNAME = $(TEMACS_DIR)\xemacs.exe |
1049 BATCH = -no-packages -batch | 1049 BATCH = -no-packages -batch |
1050 BATCH_PACKAGES = -vanilla -batch | 1050 BATCH_PACKAGES = -vanilla -batch |
1051 TEMACS_BATCH = "$(LIB_SRC)\i" "$(TEMACS)" $(BATCH) | 1051 TEMACS_BATCH = "$(LIB_SRC)\i" "$(TEMACS)" $(BATCH) |
1052 XEMACS_BATCH = "$(LIB_SRC)\i" "$(PROGNAME)" $(BATCH) | 1052 XEMACS_BATCH = "$(LIB_SRC)\i" "$(PROGNAME)" $(BATCH) |
1053 XEMACS_BATCH_PACKAGES = "$(LIB_SRC)\i" "$(PROGNAME)" $(BATCH_PACKAGES) | 1053 XEMACS_BATCH_PACKAGES = "$(LIB_SRC)\i" "$(PROGNAME)" $(BATCH_PACKAGES) |
1305 | 1305 |
1306 docfile :: | 1306 docfile :: |
1307 if exist $(DOC) $(DEL) $(DOC) | 1307 if exist $(DOC) $(DEL) $(DOC) |
1308 docfile :: $(DOC) | 1308 docfile :: $(DOC) |
1309 | 1309 |
1310 # This takes 5 seconds on my Pentium 233. If you are running on a | 1310 $(DOC): $(LIB_SRC)\make-docfile.exe $(TEMACS_DIR)\NEEDTODUMP $(TEMACS_OBJS) |
1311 # much slower machine and are bothered by the time, modify make-docfile.c | |
1312 # to contain special code to frob $(OUTDIR)\foo.obj into the right file. | |
1313 make-docargs: $(TEMACS_OBJS) | |
1314 @echo Creating make-docfile argument file ... | |
1315 -$(DEL) $(OUTDIR)\make-docfile.tmp | |
1316 @!echo $(SRC)\$(**B).c >> $(OUTDIR)\make-docfile.tmp | |
1317 @echo Done. | |
1318 | |
1319 $(DOC): $(LIB_SRC)\make-docfile.exe make-docargs | |
1320 if exist $(DOC) $(DEL) $(DOC) | |
1321 cd $(TEMACS_DIR) | 1311 cd $(TEMACS_DIR) |
1322 $(TEMACS_BATCH) -l $(LISP)\make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages | 1312 !if $(QUICK_BUILD) |
1323 $(LIB_SRC)\make-docfile.exe -a $(DOC) @$(OUTDIR)\make-docfile.tmp | 1313 if not exist $(DOC) $(TEMACS_BATCH) -l $(LISP)\make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages @<< |
1314 $(**) | |
1315 << | |
1316 !else | |
1317 $(TEMACS_BATCH) -l $(LISP)\make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages @<< | |
1318 $(**) | |
1319 << | |
1320 !endif | |
1324 | 1321 |
1325 update-elc: | 1322 update-elc: |
1326 cd $(TEMACS_DIR) | 1323 cd $(TEMACS_DIR) |
1327 $(TEMACS_BATCH) -l $(LISP)\update-elc.el | 1324 $(TEMACS_BATCH) -l $(LISP)\update-elc.el |
1328 | 1325 |
1326 # Update out-of-date .elcs, other than needed for dumping. | |
1327 update-elc-2: | |
1328 $(XEMACS_BATCH) -no-autoloads -l update-elc-2.el -f batch-update-elc-2 $(LISP) | |
1329 | |
1329 # This file is touched by update-elc.el when redumping is necessary. | 1330 # This file is touched by update-elc.el when redumping is necessary. |
1330 $(TEMACS_DIR)\NEEDTODUMP : | 1331 $(TEMACS_DIR)\NEEDTODUMP : |
1331 @echo >$(TEMACS_DIR)\NEEDTODUMP | 1332 @echo >$(TEMACS_DIR)\NEEDTODUMP |
1332 | 1333 |
1333 # This rule dumps xemacs and then possibly spawns sub-make if PURESPACE | 1334 # This rule dumps xemacs and then possibly spawns sub-make if PURESPACE |
1334 # requirements have changed. | 1335 # requirements have changed. |
1335 | 1336 |
1336 $(TEMACS_DIR)\SATISFIED: $(PROGNAME) | |
1337 | |
1338 $(PROGNAME) : $(TEMACS) $(TEMACS_DIR)\NEEDTODUMP | 1337 $(PROGNAME) : $(TEMACS) $(TEMACS_DIR)\NEEDTODUMP |
1339 @echo >$(TEMACS_DIR)\SATISFIED | |
1340 cd $(TEMACS_DIR) | 1338 cd $(TEMACS_DIR) |
1341 $(TEMACS_BATCH) -l $(LISP)\loadup.el dump | 1339 $(TEMACS_BATCH) -l $(LISP)\loadup.el dump |
1342 !if $(USE_PORTABLE_DUMPER) | 1340 !if $(USE_PORTABLE_DUMPER) |
1343 rc -d INCLUDE_DUMP -Fo $(OUTDIR)\xemacs.res $(NT)\xemacs.rc | 1341 rc -d INCLUDE_DUMP -Fo $(OUTDIR)\xemacs.res $(NT)\xemacs.rc |
1344 # Make the resource section read/write since almost all of it is the dump | 1342 # Make the resource section read/write since almost all of it is the dump |
1346 link.exe @<< | 1344 link.exe @<< |
1347 $(TEMACS_LFLAGS) -section:.rsrc,rw -out:xemacs.exe $(TEMACS_OBJS) $(OUTDIR)\xemacs.res $(TEMACS_LIBS) $(OUTDIR)\dump-id.obj | 1345 $(TEMACS_LFLAGS) -section:.rsrc,rw -out:xemacs.exe $(TEMACS_OBJS) $(OUTDIR)\xemacs.res $(TEMACS_LIBS) $(OUTDIR)\dump-id.obj |
1348 << | 1346 << |
1349 -$(DEL) $(TEMACS_DIR)\xemacs.dmp | 1347 -$(DEL) $(TEMACS_DIR)\xemacs.dmp |
1350 !endif | 1348 !endif |
1351 cd $(NT) | |
1352 @if not exist $(TEMACS_DIR)\SATISFIED $(MAKE) /$(MAKEFLAGS) -nologo -f xemacs.mak $@ | |
1353 #------------------------------------------------------------------------------ | 1349 #------------------------------------------------------------------------------ |
1354 | 1350 |
1355 # use this rule to build the complete system | 1351 # use this rule to build the complete system |
1356 all: installation $(OUTDIR)\nul $(LASTFILE) $(LWLIB) \ | 1352 all: installation $(OUTDIR)\nul $(LASTFILE) $(LWLIB) \ |
1357 $(LIB_SRC_TOOLS) $(TEMACS) update-elc $(DOC) $(PROGNAME) \ | 1353 $(LIB_SRC_TOOLS) $(TEMACS) update-elc $(DOC) $(PROGNAME) \ |
1597 <<NOKEEP | 1593 <<NOKEEP |
1598 @echo -------------------------------------------------------------------- | 1594 @echo -------------------------------------------------------------------- |
1599 @type $(XEMACS)\Installation | 1595 @type $(XEMACS)\Installation |
1600 @echo -------------------------------------------------------------------- | 1596 @echo -------------------------------------------------------------------- |
1601 | 1597 |
1602 # Update out-of-date .elcs, other than needed for dumping. | |
1603 update-elc-2: | |
1604 $(XEMACS_BATCH) -l update-elc-2.el -f batch-update-elc-2 $(LISP) | |
1605 | |
1606 # DO NOT DELETE THIS LINE -- make depend depends on it. | 1598 # DO NOT DELETE THIS LINE -- make depend depends on it. |
1607 | 1599 |