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