comparison nt/xemacs.mak @ 442:abe6d1db359e r21-2-36

Import from CVS: tag r21-2-36
author cvs
date Mon, 13 Aug 2007 11:35:02 +0200
parents 8de8e3f6228a
children 576fb035e263
comparison
equal deleted inserted replaced
441:72a7cfa4a488 442:abe6d1db359e
1 # Makefile for Microsoft NMAKE 1 # Makefile for Microsoft NMAKE
2 # Copyright (C) 1995 Board of Trustees, University of Illinois. 2 # Copyright (C) 1995 Board of Trustees, University of Illinois.
3 # Copyright (C) 1995, 1996 Ben Wing. 3 # Copyright (C) 1995, 1996, 2000 Ben Wing.
4 # Copyright (C) 1995 Sun Microsystems, Inc. 4 # Copyright (C) 1995 Sun Microsystems, Inc.
5 # Copyright (C) 1998 Free Software Foundation, Inc. 5 # Copyright (C) 1998 Free Software Foundation, Inc.
6 # 6 #
7 # This file is part of XEmacs. 7 # This file is part of XEmacs.
8 # 8 #
22 # Boston, MA 02111-1307, USA. 22 # Boston, MA 02111-1307, USA.
23 # 23 #
24 # Synched up with: Not in FSF. 24 # Synched up with: Not in FSF.
25 # 25 #
26 26
27 default: all
28
27 XEMACS=.. 29 XEMACS=..
28 LISP=$(XEMACS)\lisp 30 LISP=$(XEMACS)\lisp
31 LIB_SRC=$(XEMACS)\lib-src
29 MODULES=$(XEMACS)\modules 32 MODULES=$(XEMACS)\modules
30 NT=$(XEMACS)\nt 33 NT=$(XEMACS)\nt
31 OUTDIR=$(NT)\obj 34 OUTDIR=$(NT)\obj
35 SRC=$(XEMACS)\src
36 LWLIB_SRCDIR=$(XEMACS)\lwlib
37 MAKEDIRSTRING=$(MAKEDIR:\=\\)
38 XEMACSDIRSTRING=$(MAKEDIRSTRING:\\nt=)
39
32 40
33 # Define a variable for the 'del' command to use 41 # Define a variable for the 'del' command to use
34 DEL=-del 42 DEL=-del
35 43
36 # Program name and version 44 # Program name and version
37 45
38 !include "..\version.sh" 46 !include "$(XEMACS)\version.sh"
47
48 !include "config.inc"
39 49
40 !if !defined(INFODOCK) 50 !if !defined(INFODOCK)
41 INFODOCK=0 51 INFODOCK=0
42 !endif 52 !endif
43 53
44 !if $(INFODOCK) 54 !if $(INFODOCK)
45 INFODOCK_VERSION_STRING=$(infodock_major_version).$(infodock_minor_version).$(infodock_build_version) 55 INFODOCK_VERSION_STRING=$(infodock_major_version).$(infodock_minor_version).$(infodock_build_version)
46 PROGRAM_DEFINES=-DINFODOCK \ 56 PROGRAM_DEFINES=-DINFODOCK \
47 -DPATH_VERSION=\"$(INFODOCK_VERSION_STRING)\" \ 57 -DPATH_VERSION=\"$(INFODOCK_VERSION_STRING)\" \
48 -DPATH_PROGNAME=\"infodock\" \ 58 -DPATH_PROGNAME=\"infodock\" \
59 -DEMACS_PROGNAME=\"infodock\" \
60 -DEMACS_VERSION=\"$(INFODOCK_VERSION_STRING)\" \
49 -DINFODOCK_MAJOR_VERSION=$(infodock_major_version) \ 61 -DINFODOCK_MAJOR_VERSION=$(infodock_major_version) \
50 -DINFODOCK_MINOR_VERSION=$(infodock_minor_version) \ 62 -DINFODOCK_MINOR_VERSION=$(infodock_minor_version) \
51 -DINFODOCK_BUILD_VERSION=$(infodock_build_version) 63 -DINFODOCK_BUILD_VERSION=$(infodock_build_version)
52 !else 64 !else
53 !if "$(emacs_beta_version)" != "" 65 !if "$(emacs_beta_version)" != ""
55 !else 67 !else
56 XEMACS_VERSION_STRING=$(emacs_major_version).$(emacs_minor_version) 68 XEMACS_VERSION_STRING=$(emacs_major_version).$(emacs_minor_version)
57 !endif 69 !endif
58 PROGRAM_DEFINES= \ 70 PROGRAM_DEFINES= \
59 -DPATH_VERSION=\"$(XEMACS_VERSION_STRING)\" \ 71 -DPATH_VERSION=\"$(XEMACS_VERSION_STRING)\" \
60 -DPATH_PROGNAME=\"xemacs\" 72 -DPATH_PROGNAME=\"xemacs\" \
73 -DEMACS_VERSION=\"$(XEMACS_VERSION_STRING)\" \
74 -DEMACS_PROGNAME=\"xemacs\"
61 !endif 75 !endif
62 76
63 # 77 #
64 # Command line options defaults 78 # Command line options defaults
65 # 79 #
82 ! else 96 ! else
83 PACKAGE_PATH=~\.xemacs;;$(PACKAGE_PREFIX)\site-packages;$(PACKAGE_PREFIX)\xemacs-packages 97 PACKAGE_PATH=~\.xemacs;;$(PACKAGE_PREFIX)\site-packages;$(PACKAGE_PREFIX)\xemacs-packages
84 ! endif 98 ! endif
85 !endif 99 !endif
86 PATH_PACKAGEPATH="$(PACKAGE_PATH:\=\\)" 100 PATH_PACKAGEPATH="$(PACKAGE_PATH:\=\\)"
87 !if !defined(HAVE_MSW) 101 !if !defined(HAVE_MS_WINDOWS)
88 HAVE_MSW=1 102 HAVE_MS_WINDOWS=1
89 !endif 103 !endif
90 !if !defined(HAVE_X) 104 !if !defined(HAVE_X_WINDOWS)
91 HAVE_X=0 105 HAVE_X_WINDOWS=0
92 !endif 106 !endif
93 !if !defined(HAVE_XPM) 107 !if !defined(HAVE_XPM)
94 HAVE_XPM=0 108 HAVE_XPM=0
95 !endif 109 !endif
96 !if !defined(HAVE_PNG) 110 !if !defined(HAVE_PNG)
123 !if !defined(HAVE_WIDGETS) 137 !if !defined(HAVE_WIDGETS)
124 HAVE_WIDGETS=1 138 HAVE_WIDGETS=1
125 !endif 139 !endif
126 !if !defined(DEBUG_XEMACS) 140 !if !defined(DEBUG_XEMACS)
127 DEBUG_XEMACS=0 141 DEBUG_XEMACS=0
142 !endif
143 !if !defined(QUICK_BUILD)
144 QUICK_BUILD=0
128 !endif 145 !endif
129 !if !defined(USE_UNION_TYPE) 146 !if !defined(USE_UNION_TYPE)
130 USE_UNION_TYPE=0 147 USE_UNION_TYPE=0
131 !endif 148 !endif
132 !if !defined(USE_MINITAR) 149 !if !defined(USE_MINITAR)
192 !if !$(USE_SYSTEM_MALLOC) && $(USE_CRTDLL) 209 !if !$(USE_SYSTEM_MALLOC) && $(USE_CRTDLL)
193 !message GNU malloc currently cannot be used with CRT DLL. 210 !message GNU malloc currently cannot be used with CRT DLL.
194 !message [[[Developer note: If you want to fix it, read Q112297 first]]] #### 211 !message [[[Developer note: If you want to fix it, read Q112297 first]]] ####
195 CONFIG_ERROR=1 212 CONFIG_ERROR=1
196 !endif 213 !endif
197 !if !$(HAVE_MSW) && !$(HAVE_X) 214 !if !$(HAVE_MS_WINDOWS) && !$(HAVE_X_WINDOWS)
198 !message Please specify at least one HAVE_MSW=1 and/or HAVE_X=1 215 !message Please specify at least one HAVE_MS_WINDOWS=1 and/or HAVE_X_WINDOWS=1
199 CONFIG_ERROR=1 216 CONFIG_ERROR=1
200 !endif 217 !endif
201 !if $(HAVE_X) && !defined(X11_DIR) 218 !if $(HAVE_X_WINDOWS) && !defined(X11_DIR)
202 !message Please specify root directory for your X11 installation: X11_DIR=path 219 !message Please specify root directory for your X11 installation: X11_DIR=path
203 CONFIG_ERROR=1 220 CONFIG_ERROR=1
204 !endif 221 !endif
205 !if $(HAVE_X) && defined(X11_DIR) && !exist("$(X11_DIR)\LIB\X11.LIB") 222 !if $(HAVE_X_WINDOWS) && defined(X11_DIR) && !exist("$(X11_DIR)\LIB\X11.LIB")
206 !message Specified X11 directory does not contain "$(X11_DIR)\LIB\X11.LIB" 223 !message Specified X11 directory does not contain "$(X11_DIR)\LIB\X11.LIB"
207 CONFIG_ERROR=1 224 CONFIG_ERROR=1
208 !endif 225 !endif
209 !if $(HAVE_MSW) && $(HAVE_XPM) && !defined(XPM_DIR) 226 !if $(HAVE_MS_WINDOWS) && $(HAVE_XPM) && !defined(XPM_DIR)
210 !message Please specify root directory for your XPM installation: XPM_DIR=path 227 !message Please specify root directory for your XPM installation: XPM_DIR=path
211 CONFIG_ERROR=1 228 CONFIG_ERROR=1
212 !endif 229 !endif
213 !if $(HAVE_MSW) && $(HAVE_XPM) && defined(XPM_DIR) && !exist("$(XPM_DIR)\lib\Xpm.lib") 230 !if $(HAVE_MS_WINDOWS) && $(HAVE_XPM) && defined(XPM_DIR) && !exist("$(XPM_DIR)\lib\Xpm.lib")
214 !message Specified XPM directory does not contain "$(XPM_DIR)\lib\Xpm.lib" 231 !message Specified XPM directory does not contain "$(XPM_DIR)\lib\Xpm.lib"
215 CONFIG_ERROR=1 232 CONFIG_ERROR=1
216 !endif 233 !endif
217 !if $(HAVE_MSW) && $(HAVE_PNG) && !defined(PNG_DIR) 234 !if $(HAVE_MS_WINDOWS) && $(HAVE_PNG) && !defined(PNG_DIR)
218 !message Please specify root directory for your PNG installation: PNG_DIR=path 235 !message Please specify root directory for your PNG installation: PNG_DIR=path
219 CONFIG_ERROR=1 236 CONFIG_ERROR=1
220 !endif 237 !endif
221 !if $(HAVE_MSW) && $(HAVE_PNG) && defined(PNG_DIR) && !exist("$(PNG_DIR)\libpng.lib") 238 !if $(HAVE_MS_WINDOWS) && $(HAVE_PNG) && defined(PNG_DIR) && !exist("$(PNG_DIR)\libpng.lib")
222 !message Specified PNG directory does not contain "$(PNG_DIR)\libpng.lib" 239 !message Specified PNG directory does not contain "$(PNG_DIR)\libpng.lib"
223 CONFIG_ERROR=1 240 CONFIG_ERROR=1
224 !endif 241 !endif
225 !if $(HAVE_MSW) && $(HAVE_PNG) && !defined(ZLIB_DIR) 242 !if $(HAVE_MS_WINDOWS) && $(HAVE_PNG) && !defined(ZLIB_DIR)
226 !message Please specify root directory for your ZLIB installation: ZLIB_DIR=path 243 !message Please specify root directory for your ZLIB installation: ZLIB_DIR=path
227 CONFIG_ERROR=1 244 CONFIG_ERROR=1
228 !endif 245 !endif
229 !if $(HAVE_MSW) && $(HAVE_PNG) && defined(ZLIB_DIR) && !exist("$(ZLIB_DIR)\zlib.lib") 246 !if $(HAVE_MS_WINDOWS) && $(HAVE_PNG) && defined(ZLIB_DIR) && !exist("$(ZLIB_DIR)\zlib.lib")
230 !message Specified ZLIB directory does not contain "$(ZLIB_DIR)\zlib.lib" 247 !message Specified ZLIB directory does not contain "$(ZLIB_DIR)\zlib.lib"
231 CONFIG_ERROR=1 248 CONFIG_ERROR=1
232 !endif 249 !endif
233 !if $(HAVE_MSW) && $(HAVE_TIFF) && !defined(TIFF_DIR) 250 !if $(HAVE_MS_WINDOWS) && $(HAVE_TIFF) && !defined(TIFF_DIR)
234 !message Please specify root directory for your TIFF installation: TIFF_DIR=path 251 !message Please specify root directory for your TIFF installation: TIFF_DIR=path
235 CONFIG_ERROR=1 252 CONFIG_ERROR=1
236 !endif 253 !endif
237 !if $(HAVE_MSW) && $(HAVE_TIFF) && !exist("$(TIFF_DIR)\libtiff\libtiff.lib") 254 !if $(HAVE_MS_WINDOWS) && $(HAVE_TIFF) && !exist("$(TIFF_DIR)\libtiff\libtiff.lib")
238 !message Specified TIFF directory does not contain "$(TIFF_DIR)\libtiff\libtiff.lib" 255 !message Specified TIFF directory does not contain "$(TIFF_DIR)\libtiff\libtiff.lib"
239 CONFIG_ERROR=1 256 CONFIG_ERROR=1
240 !endif 257 !endif
241 !if $(HAVE_MSW) && $(HAVE_JPEG) && !defined(JPEG_DIR) 258 !if $(HAVE_MS_WINDOWS) && $(HAVE_JPEG) && !defined(JPEG_DIR)
242 !message Please specify root directory for your JPEG installation: JPEG_DIR=path 259 !message Please specify root directory for your JPEG installation: JPEG_DIR=path
243 CONFIG_ERROR=1 260 CONFIG_ERROR=1
244 !endif 261 !endif
245 !if $(HAVE_MSW) && $(HAVE_JPEG) && !exist("$(JPEG_DIR)\libjpeg.lib") 262 !if $(HAVE_MS_WINDOWS) && $(HAVE_JPEG) && !exist("$(JPEG_DIR)\libjpeg.lib")
246 !message Specified JPEG directory does not contain "$(JPEG_DIR)\libjpeg.lib" 263 !message Specified JPEG directory does not contain "$(JPEG_DIR)\libjpeg.lib"
247 CONFIG_ERROR=1 264 CONFIG_ERROR=1
248 !endif 265 !endif
249 !if $(HAVE_MSW) && $(HAVE_XFACE) && !defined(COMPFACE_DIR) 266 !if $(HAVE_MS_WINDOWS) && $(HAVE_XFACE) && !defined(COMPFACE_DIR)
250 !message Please specify root directory for your COMPFACE installation: COMPFACE_DIR=path 267 !message Please specify root directory for your COMPFACE installation: COMPFACE_DIR=path
251 CONFIG_ERROR=1 268 CONFIG_ERROR=1
252 !endif 269 !endif
253 !if $(HAVE_MSW) && $(HAVE_XFACE) && !exist("$(COMPFACE_DIR)\libcompface.lib") 270 !if $(HAVE_MS_WINDOWS) && $(HAVE_XFACE) && !exist("$(COMPFACE_DIR)\libcompface.lib")
254 !message Specified COMPFACE directory does not contain "$(COMPFACE_DIR)\libcompface.lib" 271 !message Specified COMPFACE directory does not contain "$(COMPFACE_DIR)\libcompface.lib"
255 CONFIG_ERROR=1 272 CONFIG_ERROR=1
256 !endif 273 !endif
257 !if $(HAVE_MSW) && $(HAVE_TOOLBARS) && !$(HAVE_XPM) 274 !if $(HAVE_MS_WINDOWS) && $(HAVE_TOOLBARS) && !$(HAVE_XPM)
258 !message Toolbars require XPM support 275 !message Toolbars require XPM support
259 CONFIG_ERROR=1 276 CONFIG_ERROR=1
260 !endif 277 !endif
261 !if $(CONFIG_ERROR) 278 !if $(CONFIG_ERROR)
262 !error Configuration error(s) found 279 !error Configuration error(s) found
266 # Handle GUNG_HO 283 # Handle GUNG_HO
267 # 284 #
268 !if defined(GUNG_HO) 285 !if defined(GUNG_HO)
269 USE_MINIMAL_TAGBITS=$(GUNG_HO) 286 USE_MINIMAL_TAGBITS=$(GUNG_HO)
270 USE_INDEXED_LRECORD_IMPLEMENTATION=$(GUNG_HO) 287 USE_INDEXED_LRECORD_IMPLEMENTATION=$(GUNG_HO)
288 !endif
289
290 #
291 # Whether to use dependency information generated by make-src-depend
292 #
293 !if !defined(DEPEND)
294 DEPEND=0
295 !endif
296 !if $(DEPEND)
297 ! if [if not exist $(OUTDIR)\nul mkdir "$(OUTDIR)"]
298 ! endif
299 # generate an nmake-readable version of depend
300 # #### here, it doesn't seem to matter if we double ^'s!
301 # results are the same with all single ^ and all double ^^!
302 # see comment below.
303 ! if [perl -p -e "s/^\x23if defined(.+)/!if defined$$1/; s/^\x23e/!e/;" \
304 -e "s/([\s=^])([\w\d\.\-^]+\.[ch^])/$$1$(SRC:\=\\)\\$$2/g;" \
305 -e "s/^(.+)\.o:(.+)/$(OUTDIR:\=\\)\\$$1.obj:$$2 $(NT:\=\\)\\config.inc/;" \
306 < $(SRC)\depend > $(OUTDIR)\depend.tmp]
307 ! endif
308 ! include "$(OUTDIR)\depend.tmp"
309 !else
310 ! if [echo WARNING: Compiling without dependency information.]
311 ! endif
271 !endif 312 !endif
272 313
273 # 314 #
274 # Compiler command echo control. Define VERBOSECC=1 to get verbose compilation. 315 # Compiler command echo control. Define VERBOSECC=1 to get verbose compilation.
275 # 316 #
301 LIBC_LIB=libc.lib 342 LIBC_LIB=libc.lib
302 !endif 343 !endif
303 344
304 CFLAGS=-nologo -W3 $(OPT) $(C_LIBFLAG) 345 CFLAGS=-nologo -W3 $(OPT) $(C_LIBFLAG)
305 346
306 !if $(HAVE_X) 347 !if $(HAVE_X_WINDOWS)
307 X_DEFINES=-DHAVE_X_WINDOWS 348 X_DEFINES=-DHAVE_X_WINDOWS
308 X_INCLUDES=-I$(X11_DIR)\include 349 X_INCLUDES=-I$(X11_DIR)\include
309 X_LIBS=-libpath:$(X11_DIR)\lib Xaw.lib Xmu.lib Xt.lib SM.lib ICE.lib Xext.lib X11.lib 350 X_LIBS=-libpath:$(X11_DIR)\lib Xaw.lib Xmu.lib Xt.lib SM.lib ICE.lib Xext.lib X11.lib
310 !endif 351 !endif
311 352
312 !if $(HAVE_MSW) 353 !if $(HAVE_MS_WINDOWS)
313 MSW_DEFINES=-DHAVE_MS_WINDOWS -DHAVE_SCROLLBARS -DHAVE_MENUBARS 354 MSW_DEFINES=-DHAVE_MS_WINDOWS -DHAVE_SCROLLBARS -DHAVE_MENUBARS
314 MSW_INCLUDES= 355 MSW_INCLUDES=
315 MSW_LIBS= 356 MSW_LIBS=
316 !if $(HAVE_MSW_C_DIRED) 357 !if $(HAVE_MSW_C_DIRED)
317 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_MSW_C_DIRED 358 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_MSW_C_DIRED
318 MSW_C_DIRED_SRC=$(XEMACS)\src\dired-msw.c 359 MSW_C_DIRED_SRC=$(SRC)\dired-msw.c
319 MSW_C_DIRED_OBJ=$(OUTDIR)\dired-msw.obj 360 MSW_C_DIRED_OBJ=$(OUTDIR)\dired-msw.obj
320 !endif 361 !endif
321 !if $(HAVE_XPM) 362 !if $(HAVE_XPM)
322 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_XPM -DFOR_MSW 363 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_XPM -DFOR_MSW
323 MSW_INCLUDES=$(MSW_INCLUDES) -I"$(XPM_DIR)" -I"$(XPM_DIR)\lib" 364 MSW_INCLUDES=$(MSW_INCLUDES) -I"$(XPM_DIR)" -I"$(XPM_DIR)\lib"
324 MSW_LIBS=$(MSW_LIBS) "$(XPM_DIR)\lib\Xpm.lib" 365 MSW_LIBS=$(MSW_LIBS) "$(XPM_DIR)\lib\Xpm.lib"
325 !endif 366 !endif
326 !if $(HAVE_GIF) 367 !if $(HAVE_GIF)
327 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_GIF 368 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_GIF
328 MSW_GIF_SRC=$(XEMACS)\src\dgif_lib.c $(XEMACS)\src\gif_io.c 369 MSW_GIF_SRC=$(SRC)\dgif_lib.c $(SRC)\gif_io.c
329 MSW_GIF_OBJ=$(OUTDIR)\dgif_lib.obj $(OUTDIR)\gif_io.obj 370 MSW_GIF_OBJ=$(OUTDIR)\dgif_lib.obj $(OUTDIR)\gif_io.obj
330 !endif 371 !endif
331 !if $(HAVE_PNG) 372 !if $(HAVE_PNG)
332 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_PNG 373 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_PNG
333 MSW_INCLUDES=$(MSW_INCLUDES) -I"$(PNG_DIR)" -I"$(ZLIB_DIR)" 374 MSW_INCLUDES=$(MSW_INCLUDES) -I"$(PNG_DIR)" -I"$(ZLIB_DIR)"
348 MSW_INCLUDES=$(MSW_INCLUDES) -I"$(COMPFACE_DIR)" 389 MSW_INCLUDES=$(MSW_INCLUDES) -I"$(COMPFACE_DIR)"
349 MSW_LIBS=$(MSW_LIBS) "$(COMPFACE_DIR)\libcompface.lib" 390 MSW_LIBS=$(MSW_LIBS) "$(COMPFACE_DIR)\libcompface.lib"
350 !endif 391 !endif
351 !if $(HAVE_TOOLBARS) 392 !if $(HAVE_TOOLBARS)
352 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_TOOLBARS 393 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_TOOLBARS
353 MSW_TOOLBAR_SRC=$(XEMACS)\src\toolbar.c $(XEMACS)\src\toolbar-msw.c 394 MSW_TOOLBAR_SRC=$(SRC)\toolbar.c $(SRC)\toolbar-msw.c
354 MSW_TOOLBAR_OBJ=$(OUTDIR)\toolbar.obj $(OUTDIR)\toolbar-msw.obj 395 MSW_TOOLBAR_OBJ=$(OUTDIR)\toolbar.obj $(OUTDIR)\toolbar-msw.obj
355 MSW_LIBS=$(MSW_LIBS) comctl32.lib 396 MSW_LIBS=$(MSW_LIBS) comctl32.lib
356 !endif 397 !endif
357 !if $(HAVE_DIALOGS) 398 !if $(HAVE_DIALOGS)
358 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_DIALOGS 399 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_DIALOGS
359 MSW_DIALOG_SRC=$(XEMACS)\src\dialog.c $(XEMACS)\src\dialog-msw.c 400 MSW_DIALOG_SRC=$(SRC)\dialog.c $(SRC)\dialog-msw.c
360 MSW_DIALOG_OBJ=$(OUTDIR)\dialog.obj $(OUTDIR)\dialog-msw.obj 401 MSW_DIALOG_OBJ=$(OUTDIR)\dialog.obj $(OUTDIR)\dialog-msw.obj
361 !endif 402 !endif
362 !if $(HAVE_WIDGETS) 403 !if $(HAVE_WIDGETS)
363 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_WIDGETS 404 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_WIDGETS
364 !endif 405 !endif
374 !if $(DEBUG_XEMACS) 415 !if $(DEBUG_XEMACS)
375 DEBUG_DEFINES=-DDEBUG_XEMACS -D_DEBUG 416 DEBUG_DEFINES=-DDEBUG_XEMACS -D_DEBUG
376 DEBUG_FLAGS=-debug:full 417 DEBUG_FLAGS=-debug:full
377 !endif 418 !endif
378 419
420 !if $(QUICK_BUILD)
421 QUICK_DEFINES=-DQUICK_BUILD
422 !endif
423
379 !if $(USE_MINIMAL_TAGBITS) 424 !if $(USE_MINIMAL_TAGBITS)
380 TAGBITS_DEFINES=-DUSE_MINIMAL_TAGBITS 425 TAGBITS_DEFINES=-DUSE_MINIMAL_TAGBITS
381 !endif 426 !endif
382 !if $(USE_INDEXED_LRECORD_IMPLEMENTATION) 427 !if $(USE_INDEXED_LRECORD_IMPLEMENTATION)
383 LRECORD_DEFINES=-DUSE_INDEXED_LRECORD_IMPLEMENTATION 428 LRECORD_DEFINES=-DUSE_INDEXED_LRECORD_IMPLEMENTATION
406 451
407 PATH_DEFINES=-DPATH_PREFIX=\"$(PATH_PREFIX)\" 452 PATH_DEFINES=-DPATH_PREFIX=\"$(PATH_PREFIX)\"
408 453
409 # Generic variables 454 # Generic variables
410 455
411 INCLUDES=$(X_INCLUDES) $(MSW_INCLUDES) -I$(XEMACS)\nt\inc -I$(XEMACS)\src -I$(XEMACS)\lwlib 456 INCLUDES=$(X_INCLUDES) $(MSW_INCLUDES) -I$(NT)\inc -I$(SRC) -I$(LWLIB_SRCDIR)
412 457
413 DEFINES=$(X_DEFINES) $(MSW_DEFINES) $(MULE_DEFINES) \ 458 DEFINES=$(X_DEFINES) $(MSW_DEFINES) $(MULE_DEFINES) \
414 $(TAGBITS_DEFINES) $(LRECORD_DEFINES) $(UNION_DEFINES) \ 459 $(TAGBITS_DEFINES) $(LRECORD_DEFINES) $(UNION_DEFINES) \
415 $(DUMPER_DEFINES) $(MALLOC_DEFINES) \ 460 $(DUMPER_DEFINES) $(MALLOC_DEFINES) $(QUICK_DEFINES) \
416 -DWIN32 -D_WIN32 -DWIN32_LEAN_AND_MEAN -DWINDOWSNT -Demacs \ 461 -DWIN32_LEAN_AND_MEAN -DWIN32_NATIVE -Demacs \
417 -DHAVE_CONFIG_H $(PROGRAM_DEFINES) $(PATH_DEFINES) 462 -DHAVE_CONFIG_H $(PROGRAM_DEFINES) $(PATH_DEFINES)
418 463
419 #------------------------------------------------------------------------------ 464 #------------------------------------------------------------------------------
420
421 default: $(OUTDIR)\nul all
422 465
423 $(OUTDIR)\nul: 466 $(OUTDIR)\nul:
424 -@mkdir $(OUTDIR) 467 -@mkdir $(OUTDIR)
425 468
426 XEMACS_INCLUDES=\ 469 XEMACS_INCLUDES=\
427 $(XEMACS)\src\config.h \ 470 $(SRC)\config.h \
428 $(XEMACS)\src\Emacs.ad.h \ 471 $(SRC)\Emacs.ad.h \
429 $(XEMACS)\src\paths.h 472 $(SRC)\paths.h
430 473
431 $(XEMACS)\src\config.h: config.h 474 $(SRC)\config.h: config.h
432 copy config.h $(XEMACS)\src 475 copy config.h $(SRC)
433 476
434 $(XEMACS)\src\Emacs.ad.h: Emacs.ad.h 477 $(SRC)\Emacs.ad.h: Emacs.ad.h
435 copy Emacs.ad.h $(XEMACS)\src 478 copy Emacs.ad.h $(SRC)
436 479
437 $(XEMACS)\src\paths.h: paths.h 480 $(SRC)\paths.h: paths.h
438 copy paths.h $(XEMACS)\src 481 copy paths.h $(SRC)
439 482
440 #------------------------------------------------------------------------------ 483 #------------------------------------------------------------------------------
441 484
442 # lib-src programs 485 # lib-src programs
443 486
444 LIB_SRC = $(XEMACS)\lib-src 487 LIB_SRC_DEFINES = -DHAVE_CONFIG_H -DWIN32_NATIVE
445 LIB_SRC_DEFINES = -DHAVE_CONFIG_H -DWIN32 -DWINDOWSNT
446 488
447 # 489 #
448 # Creating config.values to be used by config.el 490 # Creating config.values to be used by config.el
449 # 491 #
450 CONFIG_VALUES = $(LIB_SRC)\config.values 492 CONFIG_VALUES = $(LIB_SRC)\config.values
469 !endif 511 !endif
470 512
471 # Inferred rule 513 # Inferred rule
472 {$(LIB_SRC)}.c{$(LIB_SRC)}.exe : 514 {$(LIB_SRC)}.c{$(LIB_SRC)}.exe :
473 cd $(LIB_SRC) 515 cd $(LIB_SRC)
474 $(CCV) -I. -I$(XEMACS)/src -I$(XEMACS)/nt/inc $(LIB_SRC_DEFINES) $(CFLAGS) -Fe$@ $** -link -incremental:no 516 $(CCV) -I. -I$(XEMACS)/src -I$(XEMACS)/nt/inc $(LIB_SRC_DEFINES) $(CFLAGS) -Fe$@ $** -link -incremental:no setargv.obj
475 cd $(NT) 517 cd $(NT)
476 518
477 # Individual dependencies 519 # Individual dependencies
478 ETAGS_DEPS = $(LIB_SRC)/getopt.c $(LIB_SRC)/getopt1.c $(LIB_SRC)/../src/regex.c 520 ETAGS_DEPS = $(LIB_SRC)/getopt.c $(LIB_SRC)/getopt1.c $(LIB_SRC)/../src/regex.c
479 $(LIB_SRC)/etags.exe : $(LIB_SRC)/etags.c $(ETAGS_DEPS) 521 $(LIB_SRC)/etags.exe : $(LIB_SRC)/etags.c $(ETAGS_DEPS)
483 cd $(NT) 525 cd $(NT)
484 $(LIB_SRC)/minitar.exe : $(NT)/minitar.mak $(NT)/minitar.c 526 $(LIB_SRC)/minitar.exe : $(NT)/minitar.mak $(NT)/minitar.c
485 nmake -nologo -f minitar.mak ZLIB="$(ZLIB_DIR)" NT="$(NT)" LIB_SRC="$(LIB_SRC)" 527 nmake -nologo -f minitar.mak ZLIB="$(ZLIB_DIR)" NT="$(NT)" LIB_SRC="$(LIB_SRC)"
486 528
487 LIB_SRC_TOOLS = \ 529 LIB_SRC_TOOLS = \
530 $(LIB_SRC)/etags.exe \
531 $(LIB_SRC)/hexl.exe \
532 $(LIB_SRC)/i.exe \
488 $(LIB_SRC)/make-docfile.exe \ 533 $(LIB_SRC)/make-docfile.exe \
489 $(LIB_SRC)/hexl.exe \ 534 $(LIB_SRC)/mmencode.exe \
490 $(LIB_SRC)/movemail.exe \ 535 $(LIB_SRC)/movemail.exe \
491 $(LIB_SRC)/mmencode.exe \
492 $(LIB_SRC)/sorted-doc.exe \ 536 $(LIB_SRC)/sorted-doc.exe \
493 $(LIB_SRC)/wakeup.exe \ 537 $(LIB_SRC)/wakeup.exe
494 $(LIB_SRC)/etags.exe
495 !if $(USE_MINITAR) 538 !if $(USE_MINITAR)
496 LIB_SRC_TOOLS = \ 539 LIB_SRC_TOOLS = \
497 $(LIB_SRC_TOOLS) \ 540 $(LIB_SRC_TOOLS) \
498 $(LIB_SRC)/minitar.exe 541 $(LIB_SRC)/minitar.exe
499 !endif 542 !endif
543 !if $(USE_PORTABLE_DUMPER)
544 LIB_SRC_TOOLS = \
545 $(XEMACS_INCLUDES) \
546 $(LIB_SRC)/make-dump-id.exe \
547 $(LIB_SRC_TOOLS)
548 !endif
500 549
501 # Shorthand target 550 # Shorthand target
502 minitar: $(LIB_SRC)/minitar.exe 551 minitar: $(LIB_SRC)/minitar.exe
503 552
504 #------------------------------------------------------------------------------ 553 #------------------------------------------------------------------------------
505 554
506 # runxemacs proglet 555 # dump-id.c file that contains the dump id
507 556
508 RUNEMACS = $(XEMACS)\src\runxemacs.exe 557 $(SRC)\dump-id.c : $(LIB_SRC)/make-dump-id.exe
509 558 cd $(SRC)
510 $(RUNEMACS): $(LIB_SRC)\run.c $(LIB_SRC)\run.res 559 $(LIB_SRC)\make-dump-id.exe
511 $(CCV) -I$(LIB_SRC) $(CFLAGS) -Fe$@ -Fo$(LIB_SRC) -Fd$(LIB_SRC)\ $** kernel32.lib user32.lib -link -incremental:no 560 cd $(NT)
512
513 $(LIB_SRC)\run.res: $(LIB_SRC)\run.rc
514 rc -I$(LIB_SRC) -Fo$@ $**
515 561
516 #------------------------------------------------------------------------------ 562 #------------------------------------------------------------------------------
517 563
518 # LASTFILE Library 564 # LASTFILE Library
519 565
520 !if !$(USE_SYSTEM_MALLOC) || !$(USE_PORTABLE_DUMPER) 566 !if !$(USE_SYSTEM_MALLOC) || !$(USE_PORTABLE_DUMPER)
521 567
522 LASTFILE=$(OUTDIR)\lastfile.lib 568 LASTFILE=$(OUTDIR)\lastfile.lib
523 LASTFILE_SRC=$(XEMACS)\src 569 LASTFILE_SRC=$(SRC)
524 LASTFILE_FLAGS=$(CFLAGS) $(INCLUDES) -Fo$@ -Fd$* -c 570 LASTFILE_FLAGS=$(CFLAGS) $(INCLUDES) -Fo$@ -Fd$* -c
525 LASTFILE_OBJS= \ 571 LASTFILE_OBJS= \
526 $(OUTDIR)\lastfile.obj 572 $(OUTDIR)\lastfile.obj
527 573
528 $(LASTFILE): $(XEMACS_INCLUDES) $(LASTFILE_OBJS) 574 $(LASTFILE): $(XEMACS_INCLUDES) $(LASTFILE_OBJS)
533 579
534 !endif 580 !endif
535 581
536 #------------------------------------------------------------------------------ 582 #------------------------------------------------------------------------------
537 583
538 !if $(HAVE_X) 584 !if $(HAVE_X_WINDOWS)
539 585
540 # LWLIB Library 586 # LWLIB Library
541 587
542 LWLIB=$(OUTDIR)\lwlib.lib 588 LWLIB=$(OUTDIR)\lwlib.lib
543 LWLIB_SRC=$(XEMACS)\lwlib
544 LWLIB_FLAGS=$(CFLAGS) $(INCLUDES) $(DEFINES) \ 589 LWLIB_FLAGS=$(CFLAGS) $(INCLUDES) $(DEFINES) \
545 -DNEED_ATHENA -DNEED_LUCID \ 590 -DNEED_ATHENA -DNEED_LUCID \
546 -D_WINDOWS -DMENUBARS_LUCID -DSCROLLBARS_LUCID -DDIALOGS_ATHENA \ 591 -D_WINDOWS -DMENUBARS_LUCID -DSCROLLBARS_LUCID -DDIALOGS_ATHENA \
547 -Fo$@ -c 592 -Fo$@ -c
548 LWLIB_OBJS= \ 593 LWLIB_OBJS= \
555 $(OUTDIR)\xlwscrollbar.obj 600 $(OUTDIR)\xlwscrollbar.obj
556 601
557 $(LWLIB): $(LWLIB_OBJS) 602 $(LWLIB): $(LWLIB_OBJS)
558 link.exe -lib -nologo -out:$@ $(LWLIB_OBJS) 603 link.exe -lib -nologo -out:$@ $(LWLIB_OBJS)
559 604
560 $(OUTDIR)\lwlib-config.obj: $(LWLIB_SRC)\lwlib-config.c 605 $(OUTDIR)\lwlib-config.obj: $(LWLIB_SRCDIR)\lwlib-config.c
561 $(CCV) $(LWLIB_FLAGS) $** 606 $(CCV) $(LWLIB_FLAGS) $**
562 607
563 $(OUTDIR)\lwlib-utils.obj: $(LWLIB_SRC)\lwlib-utils.c 608 $(OUTDIR)\lwlib-utils.obj: $(LWLIB_SRCDIR)\lwlib-utils.c
564 $(CCV) $(LWLIB_FLAGS) $** 609 $(CCV) $(LWLIB_FLAGS) $**
565 610
566 $(OUTDIR)\lwlib-Xaw.obj: $(LWLIB_SRC)\lwlib-Xaw.c 611 $(OUTDIR)\lwlib-Xaw.obj: $(LWLIB_SRCDIR)\lwlib-Xaw.c
567 $(CCV) $(LWLIB_FLAGS) $** 612 $(CCV) $(LWLIB_FLAGS) $**
568 613
569 $(OUTDIR)\lwlib-Xlw.obj: $(LWLIB_SRC)\lwlib-Xlw.c 614 $(OUTDIR)\lwlib-Xlw.obj: $(LWLIB_SRCDIR)\lwlib-Xlw.c
570 $(CCV) $(LWLIB_FLAGS) $** 615 $(CCV) $(LWLIB_FLAGS) $**
571 616
572 $(OUTDIR)\lwlib.obj: $(LWLIB_SRC)\lwlib.c 617 $(OUTDIR)\lwlib.obj: $(LWLIB_SRCDIR)\lwlib.c
573 $(CCV) $(LWLIB_FLAGS) $** 618 $(CCV) $(LWLIB_FLAGS) $**
574 619
575 $(OUTDIR)\xlwmenu.obj: $(LWLIB_SRC)\xlwmenu.c 620 $(OUTDIR)\xlwmenu.obj: $(LWLIB_SRCDIR)\xlwmenu.c
576 $(CCV) $(LWLIB_FLAGS) $** 621 $(CCV) $(LWLIB_FLAGS) $**
577 622
578 $(OUTDIR)\xlwscrollbar.obj: $(LWLIB_SRC)\xlwscrollbar.c 623 $(OUTDIR)\xlwscrollbar.obj: $(LWLIB_SRCDIR)\xlwscrollbar.c
579 $(CCV) $(LWLIB_FLAGS) $** 624 $(CCV) $(LWLIB_FLAGS) $**
580 625
581 !endif 626 !endif
582 #------------------------------------------------------------------------------ 627 #------------------------------------------------------------------------------
583 628
584 DOC=$(LIB_SRC)\DOC 629 DOC=$(LIB_SRC)\DOC
585 DOC_SRC1=\ 630 DOC_SRC1=\
586 $(XEMACS)\src\abbrev.c \ 631 $(SRC)\abbrev.c \
587 $(XEMACS)\src\alloc.c \ 632 $(SRC)\alloc.c \
588 $(XEMACS)\src\alloca.c \ 633 $(SRC)\blocktype.c \
589 $(XEMACS)\src\blocktype.c \ 634 $(SRC)\buffer.c \
590 $(XEMACS)\src\buffer.c \ 635 $(SRC)\bytecode.c \
591 $(XEMACS)\src\bytecode.c \ 636 $(SRC)\callint.c \
592 $(XEMACS)\src\callint.c \ 637 $(SRC)\callproc.c \
593 $(XEMACS)\src\callproc.c \ 638 $(SRC)\casefiddle.c \
594 $(XEMACS)\src\casefiddle.c \ 639 $(SRC)\casetab.c \
595 $(XEMACS)\src\casetab.c \ 640 $(SRC)\chartab.c \
596 $(XEMACS)\src\chartab.c \ 641 $(SRC)\cmdloop.c \
597 $(XEMACS)\src\cmdloop.c \ 642 $(SRC)\cmds.c \
598 $(XEMACS)\src\cmds.c \ 643 $(SRC)\console-stream.c \
599 $(XEMACS)\src\console-stream.c \ 644 $(SRC)\console.c \
600 $(XEMACS)\src\console.c \ 645 $(SRC)\data.c \
601 $(XEMACS)\src\data.c \ 646 $(SRC)\device.c
602 $(XEMACS)\src\device.c
603 DOC_SRC2=\ 647 DOC_SRC2=\
604 $(XEMACS)\src\dired.c \ 648 $(SRC)\dired.c \
605 $(XEMACS)\src\doc.c \ 649 $(SRC)\doc.c \
606 $(XEMACS)\src\doprnt.c \ 650 $(SRC)\doprnt.c \
607 $(XEMACS)\src\dragdrop.c \ 651 $(SRC)\dragdrop.c \
608 $(XEMACS)\src\dynarr.c \ 652 $(SRC)\dynarr.c \
609 $(XEMACS)\src\editfns.c \ 653 $(SRC)\editfns.c \
610 $(XEMACS)\src\elhash.c \ 654 $(SRC)\elhash.c \
611 $(XEMACS)\src\emacs.c \ 655 $(SRC)\emacs.c \
612 $(XEMACS)\src\eval.c \ 656 $(SRC)\eval.c \
613 $(XEMACS)\src\event-stream.c \ 657 $(SRC)\event-stream.c \
614 $(XEMACS)\src\events.c \ 658 $(SRC)\events.c \
615 $(XEMACS)\src\extents.c \ 659 $(SRC)\extents.c \
616 $(XEMACS)\src\faces.c \ 660 $(SRC)\faces.c \
617 $(XEMACS)\src\file-coding.c \ 661 $(SRC)\file-coding.c \
618 $(XEMACS)\src\fileio.c \ 662 $(SRC)\fileio.c \
619 $(XEMACS)\src\filemode.c \ 663 $(SRC)\filemode.c \
620 $(XEMACS)\src\floatfns.c \ 664 $(SRC)\floatfns.c \
621 $(XEMACS)\src\fns.c 665 $(SRC)\fns.c
622 DOC_SRC3=\ 666 DOC_SRC3=\
623 $(XEMACS)\src\font-lock.c \ 667 $(SRC)\font-lock.c \
624 $(XEMACS)\src\frame.c \ 668 $(SRC)\frame.c \
625 $(XEMACS)\src\general.c \ 669 $(SRC)\general.c \
626 $(XEMACS)\src\glyphs.c \ 670 $(SRC)\getloadavg.c \
627 $(XEMACS)\src\glyphs-eimage.c \ 671 $(SRC)\glyphs.c \
628 $(XEMACS)\src\glyphs-widget.c \ 672 $(SRC)\glyphs-eimage.c \
629 $(XEMACS)\src\gui.c \ 673 $(SRC)\glyphs-widget.c \
630 $(XEMACS)\src\gutter.c \ 674 $(SRC)\gui.c \
631 $(XEMACS)\src\hash.c \ 675 $(SRC)\gutter.c \
632 $(XEMACS)\src\imgproc.c \ 676 $(SRC)\hash.c \
633 $(XEMACS)\src\indent.c \ 677 $(SRC)\imgproc.c \
634 $(XEMACS)\src\insdel.c \ 678 $(SRC)\indent.c \
635 $(XEMACS)\src\intl.c \ 679 $(SRC)\insdel.c \
636 $(XEMACS)\src\keymap.c \ 680 $(SRC)\intl.c \
637 $(XEMACS)\src\line-number.c \ 681 $(SRC)\keymap.c \
638 $(XEMACS)\src\lread.c \ 682 $(SRC)\line-number.c \
639 $(XEMACS)\src\lstream.c \ 683 $(SRC)\lread.c \
640 $(XEMACS)\src\macros.c \ 684 $(SRC)\lstream.c \
641 $(XEMACS)\src\marker.c 685 $(SRC)\macros.c \
686 $(SRC)\marker.c
642 DOC_SRC4=\ 687 DOC_SRC4=\
643 $(XEMACS)\src\md5.c \ 688 $(SRC)\md5.c \
644 $(XEMACS)\src\menubar.c \ 689 $(SRC)\menubar.c \
645 $(XEMACS)\src\minibuf.c \ 690 $(SRC)\minibuf.c \
646 $(XEMACS)\src\nt.c \ 691 $(SRC)\nt.c \
647 $(XEMACS)\src\ntplay.c \ 692 $(SRC)\ntplay.c \
648 $(XEMACS)\src\ntproc.c \ 693 $(SRC)\ntproc.c \
649 $(XEMACS)\src\objects.c \ 694 $(SRC)\objects.c \
650 $(XEMACS)\src\opaque.c \ 695 $(SRC)\opaque.c \
651 $(XEMACS)\src\print.c \ 696 $(SRC)\print.c \
652 $(XEMACS)\src\process.c \ 697 $(SRC)\process.c \
653 $(XEMACS)\src\process-nt.c \ 698 $(SRC)\process-nt.c \
654 $(XEMACS)\src\profile.c \ 699 $(SRC)\profile.c \
655 $(XEMACS)\src\rangetab.c \ 700 $(SRC)\rangetab.c \
656 $(XEMACS)\src\realpath.c \ 701 $(SRC)\realpath.c \
657 $(XEMACS)\src\redisplay-output.c \ 702 $(SRC)\redisplay-output.c \
658 $(XEMACS)\src\redisplay.c \ 703 $(SRC)\redisplay.c \
659 $(XEMACS)\src\regex.c \ 704 $(SRC)\regex.c \
660 $(XEMACS)\src\scrollbar.c \ 705 $(SRC)\scrollbar.c \
661 $(XEMACS)\src\search.c \ 706 $(SRC)\search.c \
662 $(XEMACS)\src\select.c \ 707 $(SRC)\select.c \
663 $(XEMACS)\src\signal.c \ 708 $(SRC)\signal.c \
664 $(XEMACS)\src\sound.c 709 $(SRC)\sound.c
665 DOC_SRC5=\ 710 DOC_SRC5=\
666 $(XEMACS)\src\specifier.c \ 711 $(SRC)\specifier.c \
667 $(XEMACS)\src\strftime.c \ 712 $(SRC)\strftime.c \
668 $(XEMACS)\src\symbols.c \ 713 $(SRC)\symbols.c \
669 $(XEMACS)\src\syntax.c \ 714 $(SRC)\syntax.c \
670 $(XEMACS)\src\sysdep.c \ 715 $(SRC)\sysdep.c \
671 $(XEMACS)\src\termcap.c \ 716 $(SRC)\termcap.c \
672 $(XEMACS)\src\tparam.c \ 717 $(SRC)\tparam.c \
673 $(XEMACS)\src\undo.c \ 718 $(SRC)\undo.c \
674 $(XEMACS)\src\window.c \ 719 $(SRC)\window.c \
675 $(XEMACS)\src\widget.c 720 $(SRC)\win32.c \
676 721 $(SRC)\widget.c
677 !if $(HAVE_X) 722
723 !if $(HAVE_X_WINDOWS)
678 DOC_SRC6=\ 724 DOC_SRC6=\
679 $(XEMACS)\src\balloon_help.c \ 725 $(SRC)\balloon_help.c \
680 $(XEMACS)\src\console-x.c \ 726 $(SRC)\console-x.c \
681 $(XEMACS)\src\device-x.c \ 727 $(SRC)\device-x.c \
682 $(XEMACS)\src\dialog-x.c \ 728 $(SRC)\dialog-x.c \
683 $(XEMACS)\src\EmacsFrame.c \ 729 $(SRC)\EmacsFrame.c \
684 $(XEMACS)\src\EmacsManager.c \ 730 $(SRC)\EmacsManager.c \
685 $(XEMACS)\src\EmacsShell-sub.c\ 731 $(SRC)\EmacsShell-sub.c\
686 $(XEMACS)\src\EmacsShell.c \ 732 $(SRC)\EmacsShell.c \
687 $(XEMACS)\src\event-Xt.c \ 733 $(SRC)\event-Xt.c \
688 $(XEMACS)\src\frame-x.c \ 734 $(SRC)\frame-x.c \
689 $(XEMACS)\src\glyphs-x.c \ 735 $(SRC)\glyphs-x.c \
690 $(XEMACS)\src\gui-x.c \ 736 $(SRC)\gui-x.c \
691 $(XEMACS)\src\menubar.c \ 737 $(SRC)\menubar.c \
692 $(XEMACS)\src\menubar-x.c \ 738 $(SRC)\menubar-x.c \
693 $(XEMACS)\src\objects-x.c \ 739 $(SRC)\objects-x.c \
694 $(XEMACS)\src\redisplay-x.c \ 740 $(SRC)\redisplay-x.c \
695 $(XEMACS)\src\scrollbar-x.c \ 741 $(SRC)\scrollbar-x.c \
696 $(XEMACS)\src\balloon-x.c \ 742 $(SRC)\balloon-x.c \
697 $(XEMACS)\src\xgccache.c \ 743 $(SRC)\xgccache.c \
698 $(XEMACS)\src\xmu.c \ 744 $(SRC)\xmu.c \
699 $(XEMACS)\src\select-x.c 745 $(SRC)\select-x.c
700 !endif 746 !endif
701 747
702 !if $(HAVE_MSW) 748 !if $(HAVE_MS_WINDOWS)
703 DOC_SRC7=\ 749 DOC_SRC7=\
704 $(XEMACS)\src\console-msw.c \ 750 $(SRC)\console-msw.c \
705 $(XEMACS)\src\device-msw.c \ 751 $(SRC)\device-msw.c \
706 $(XEMACS)\src\event-msw.c \ 752 $(SRC)\event-msw.c \
707 $(XEMACS)\src\frame-msw.c \ 753 $(SRC)\frame-msw.c \
708 $(XEMACS)\src\glyphs-msw.c \ 754 $(SRC)\glyphs-msw.c \
709 $(XEMACS)\src\gui-msw.c \ 755 $(SRC)\gui-msw.c \
710 $(XEMACS)\src\menubar-msw.c \ 756 $(SRC)\menubar-msw.c \
711 $(XEMACS)\src\objects-msw.c \ 757 $(SRC)\objects-msw.c \
712 $(XEMACS)\src\redisplay-msw.c \ 758 $(SRC)\redisplay-msw.c \
713 $(XEMACS)\src\scrollbar-msw.c \ 759 $(SRC)\scrollbar-msw.c \
714 $(XEMACS)\src\select-msw.c \ 760 $(SRC)\select-msw.c \
715 $(MSW_C_DIRED_SRC) \ 761 $(MSW_C_DIRED_SRC) \
716 $(MSW_TOOLBAR_SRC) \ 762 $(MSW_TOOLBAR_SRC) \
717 $(MSW_DIALOG_SRC) \ 763 $(MSW_DIALOG_SRC) \
718 $(MSW_GIF_SRC) 764 $(MSW_GIF_SRC)
719 !endif 765 !endif
720 766
721 !if $(HAVE_MULE) 767 !if $(HAVE_MULE)
722 DOC_SRC8=\ 768 DOC_SRC8=\
723 $(XEMACS)\src\mule.c \ 769 $(SRC)\mule.c \
724 $(XEMACS)\src\mule-charset.c \ 770 $(SRC)\mule-charset.c \
725 $(XEMACS)\src\mule-ccl.c 771 $(SRC)\mule-ccl.c
726 ! if $(HAVE_X) 772 ! if $(HAVE_X_WINDOWS)
727 DOC_SRC8=$(DOC_SRC8) $(XEMACS)\src\input-method-xlib.c 773 DOC_SRC8=$(DOC_SRC8) $(SRC)\input-method-xlib.c
728 ! endif 774 ! endif
729 !endif 775 !endif
730 776
731 !if $(DEBUG_XEMACS) 777 !if $(DEBUG_XEMACS)
732 DOC_SRC9=\ 778 DOC_SRC9=\
733 $(XEMACS)\src\debug.c \ 779 $(SRC)\debug.c \
734 $(XEMACS)\src\tests.c 780 $(SRC)\tests.c
735 !endif 781 !endif
736 782
737 !if !$(USE_SYSTEM_MALLOC) 783 !if !$(USE_SYSTEM_MALLOC)
738 DOC_SRC10=\ 784 DOC_SRC10=\
739 $(XEMACS)\src\free-hook.c \ 785 $(SRC)\free-hook.c \
740 $(XEMACS)\src\gmalloc.c \ 786 $(SRC)\gmalloc.c \
741 $(XEMACS)\src\ntheap.c \ 787 $(SRC)\ntheap.c \
742 $(XEMACS)\src\vm-limit.c 788 $(SRC)\vm-limit.c
743 !endif 789 !endif
744 790
745 !if !$(USE_PORTABLE_DUMPER) 791 !if !$(USE_PORTABLE_DUMPER)
746 DOC_SRC11=\ 792 DOC_SRC11=\
747 $(XEMACS)\src\unexnt.c 793 $(SRC)\unexnt.c
794 !else
795 DOC_SRC11=\
796 $(SRC)\dumper.c
748 !endif 797 !endif
749 798
750 #------------------------------------------------------------------------------ 799 #------------------------------------------------------------------------------
751 800
752 # TEMACS Executable 801 # TEMACS Executable
755 !if "$(emacs_beta_version)" != "" 804 !if "$(emacs_beta_version)" != ""
756 EMACS_BETA_VERSION=-DEMACS_BETA_VERSION=$(emacs_beta_version) 805 EMACS_BETA_VERSION=-DEMACS_BETA_VERSION=$(emacs_beta_version)
757 !ENDIF 806 !ENDIF
758 807
759 !if !$(USE_PORTABLE_DUMPER) 808 !if !$(USE_PORTABLE_DUMPER)
760 TEMACS_ENTRYPOINT=-entry:_start 809 TEMACS_ENTRYPOINT=-entry:_start
761 !endif 810 !else
762 811 TEMACS_ENTRYPOINT=-entry:mainCRTStartup
763 TEMACS_DIR=$(XEMACS)\src 812 !endif
813
814 TEMACS_DIR=$(SRC)
764 TEMACS=$(TEMACS_DIR)\temacs.exe 815 TEMACS=$(TEMACS_DIR)\temacs.exe
765 TEMACS_BROWSE=$(TEMACS_DIR)\temacs.bsc 816 TEMACS_BROWSE=$(TEMACS_DIR)\temacs.bsc
766 TEMACS_SRC=$(XEMACS)\src 817 TEMACS_SRC=$(SRC)
767 TEMACS_LIBS=$(LASTFILE) $(LWLIB) $(X_LIBS) $(MSW_LIBS) \ 818 TEMACS_LIBS=$(LASTFILE) $(LWLIB) $(X_LIBS) $(MSW_LIBS) \
768 oldnames.lib kernel32.lib user32.lib gdi32.lib advapi32.lib \ 819 oldnames.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib \
769 shell32.lib wsock32.lib winmm.lib winspool.lib $(LIBC_LIB) 820 shell32.lib wsock32.lib winmm.lib winspool.lib ole32.lib uuid.lib $(LIBC_LIB)
770 TEMACS_LFLAGS=-nologo $(LIBRARIES) $(DEBUG_FLAGS) -base:0x1000000\ 821 TEMACS_LFLAGS=-nologo $(LIBRARIES) $(DEBUG_FLAGS) -base:0x1000000\
771 -stack:0x800000 $(TEMACS_ENTRYPOINT) -subsystem:console\ 822 -stack:0x800000 $(TEMACS_ENTRYPOINT) -subsystem:windows\
772 -pdb:$(TEMACS_DIR)\temacs.pdb -map:$(TEMACS_DIR)\temacs.map \ 823 -pdb:$(TEMACS_DIR)\temacs.pdb -map:$(TEMACS_DIR)\temacs.map \
773 -heap:0x00100000 -out:$@ -nodefaultlib 824 -heap:0x00100000 -nodefaultlib -incremental:no setargv.obj
774 TEMACS_CPP_FLAGS=-c \ 825 TEMACS_CPP_FLAGS=-c \
775 $(CFLAGS) $(INCLUDES) $(DEFINES) $(DEBUG_DEFINES) \ 826 $(CFLAGS) $(INCLUDES) $(DEFINES) $(DEBUG_DEFINES) \
776 -DEMACS_MAJOR_VERSION=$(emacs_major_version) \ 827 -DEMACS_MAJOR_VERSION=$(emacs_major_version) \
777 -DEMACS_MINOR_VERSION=$(emacs_minor_version) \ 828 -DEMACS_MINOR_VERSION=$(emacs_minor_version) \
778 $(EMACS_BETA_VERSION) \ 829 $(EMACS_BETA_VERSION) \
779 -DXEMACS_CODENAME=\"$(xemacs_codename)\" \ 830 -DXEMACS_CODENAME=\"$(xemacs_codename:&=and)\" \
780 -DEMACS_CONFIGURATION=\"$(EMACS_CONFIGURATION)\" \ 831 -DEMACS_CONFIGURATION=\"$(EMACS_CONFIGURATION)\" \
781 -DPATH_PACKAGEPATH=\"$(PATH_PACKAGEPATH)\" 832 -DPATH_PACKAGEPATH=\"$(PATH_PACKAGEPATH)\"
782 833
783 !if $(HAVE_X) 834 !if $(HAVE_X_WINDOWS)
784 TEMACS_X_OBJS=\ 835 TEMACS_X_OBJS=\
785 $(OUTDIR)\balloon-x.obj \ 836 $(OUTDIR)\balloon-x.obj \
786 $(OUTDIR)\balloon_help.obj \ 837 $(OUTDIR)\balloon_help.obj \
787 $(OUTDIR)\console-x.obj \ 838 $(OUTDIR)\console-x.obj \
788 $(OUTDIR)\device-x.obj \ 839 $(OUTDIR)\device-x.obj \
803 $(OUTDIR)\xgccache.obj \ 854 $(OUTDIR)\xgccache.obj \
804 $(OUTDIR)\xmu.obj \ 855 $(OUTDIR)\xmu.obj \
805 $(OUTDIR)\select-x.obj 856 $(OUTDIR)\select-x.obj
806 !endif 857 !endif
807 858
808 !if $(HAVE_MSW) 859 !if $(HAVE_MS_WINDOWS)
809 TEMACS_MSW_OBJS=\ 860 TEMACS_MSW_OBJS=\
810 $(OUTDIR)\console-msw.obj \ 861 $(OUTDIR)\console-msw.obj \
811 $(OUTDIR)\device-msw.obj \ 862 $(OUTDIR)\device-msw.obj \
812 $(OUTDIR)\event-msw.obj \ 863 $(OUTDIR)\event-msw.obj \
813 $(OUTDIR)\frame-msw.obj \ 864 $(OUTDIR)\frame-msw.obj \
827 !if $(HAVE_MULE) 878 !if $(HAVE_MULE)
828 TEMACS_MULE_OBJS=\ 879 TEMACS_MULE_OBJS=\
829 $(OUTDIR)\mule.obj \ 880 $(OUTDIR)\mule.obj \
830 $(OUTDIR)\mule-charset.obj \ 881 $(OUTDIR)\mule-charset.obj \
831 $(OUTDIR)\mule-ccl.obj 882 $(OUTDIR)\mule-ccl.obj
832 ! if $(HAVE_X) 883 ! if $(HAVE_X_WINDOWS)
833 TEMACS_MULE_OBJS=\ 884 TEMACS_MULE_OBJS=\
834 $(TEMACS_MULE_OBJS) $(OUTDIR)\input-method-xlib.obj 885 $(TEMACS_MULE_OBJS) $(OUTDIR)\input-method-xlib.obj
835 ! endif 886 ! endif
836 !endif 887 !endif
837 888
850 !endif 901 !endif
851 902
852 !if !$(USE_PORTABLE_DUMPER) 903 !if !$(USE_PORTABLE_DUMPER)
853 TEMACS_DUMP_OBJS=\ 904 TEMACS_DUMP_OBJS=\
854 $(OUTDIR)\unexnt.obj 905 $(OUTDIR)\unexnt.obj
906 !else
907 TEMACS_DUMP_OBJS=\
908 $(OUTDIR)\dumper.obj
855 !endif 909 !endif
856 910
857 TEMACS_OBJS= \ 911 TEMACS_OBJS= \
858 $(TEMACS_X_OBJS)\ 912 $(TEMACS_X_OBJS)\
859 $(TEMACS_MSW_OBJS)\ 913 $(TEMACS_MSW_OBJS)\
862 $(TEMACS_DEBUG_OBJS)\ 916 $(TEMACS_DEBUG_OBJS)\
863 $(TEMACS_ALLOC_OBJS)\ 917 $(TEMACS_ALLOC_OBJS)\
864 $(TEMACS_DUMP_OBJS)\ 918 $(TEMACS_DUMP_OBJS)\
865 $(OUTDIR)\abbrev.obj \ 919 $(OUTDIR)\abbrev.obj \
866 $(OUTDIR)\alloc.obj \ 920 $(OUTDIR)\alloc.obj \
867 $(OUTDIR)\alloca.obj \
868 $(OUTDIR)\blocktype.obj \ 921 $(OUTDIR)\blocktype.obj \
869 $(OUTDIR)\buffer.obj \ 922 $(OUTDIR)\buffer.obj \
870 $(OUTDIR)\bytecode.obj \ 923 $(OUTDIR)\bytecode.obj \
871 $(OUTDIR)\callint.obj \ 924 $(OUTDIR)\callint.obj \
872 $(OUTDIR)\callproc.obj \ 925 $(OUTDIR)\callproc.obj \
898 $(OUTDIR)\floatfns.obj \ 951 $(OUTDIR)\floatfns.obj \
899 $(OUTDIR)\fns.obj \ 952 $(OUTDIR)\fns.obj \
900 $(OUTDIR)\font-lock.obj \ 953 $(OUTDIR)\font-lock.obj \
901 $(OUTDIR)\frame.obj \ 954 $(OUTDIR)\frame.obj \
902 $(OUTDIR)\general.obj \ 955 $(OUTDIR)\general.obj \
956 $(OUTDIR)\getloadavg.obj \
903 $(OUTDIR)\glyphs.obj \ 957 $(OUTDIR)\glyphs.obj \
904 $(OUTDIR)\glyphs-eimage.obj \ 958 $(OUTDIR)\glyphs-eimage.obj \
905 $(OUTDIR)\glyphs-widget.obj \ 959 $(OUTDIR)\glyphs-widget.obj \
906 $(OUTDIR)\gui.obj \ 960 $(OUTDIR)\gui.obj \
907 $(OUTDIR)\gutter.obj \ 961 $(OUTDIR)\gutter.obj \
945 $(OUTDIR)\sysdep.obj \ 999 $(OUTDIR)\sysdep.obj \
946 $(OUTDIR)\tparam.obj \ 1000 $(OUTDIR)\tparam.obj \
947 $(OUTDIR)\undo.obj \ 1001 $(OUTDIR)\undo.obj \
948 $(OUTDIR)\widget.obj \ 1002 $(OUTDIR)\widget.obj \
949 $(OUTDIR)\window.obj \ 1003 $(OUTDIR)\window.obj \
950 $(OUTDIR)\xemacs.res 1004 $(OUTDIR)\win32.obj
951 1005
952 # Rules 1006 # Rules
953 1007
954 .SUFFIXES: 1008 .SUFFIXES:
955 .SUFFIXES: .c .obj .texi .info 1009 .SUFFIXES: .c .obj .texi .info
961 !else 1015 !else
962 {$(TEMACS_SRC)}.c{$(OUTDIR)}.obj: 1016 {$(TEMACS_SRC)}.c{$(OUTDIR)}.obj:
963 $(CCV) $(TEMACS_CPP_FLAGS) $< -Fo$@ 1017 $(CCV) $(TEMACS_CPP_FLAGS) $< -Fo$@
964 !endif 1018 !endif
965 1019
1020 $(OUTDIR)\emacs.obj: $(XEMACS)\version.sh
1021
966 $(OUTDIR)\TopLevelEmacsShell.obj: $(TEMACS_SRC)\EmacsShell-sub.c 1022 $(OUTDIR)\TopLevelEmacsShell.obj: $(TEMACS_SRC)\EmacsShell-sub.c
967 $(CCV) $(TEMACS_CPP_FLAGS) -DDEFINE_TOP_LEVEL_EMACS_SHELL $** -Fo$@ 1023 $(CCV) $(TEMACS_CPP_FLAGS) -DDEFINE_TOP_LEVEL_EMACS_SHELL $** -Fo$@
968 1024
969 $(OUTDIR)\TransientEmacsShell.obj: $(TEMACS_SRC)\EmacsShell-sub.c 1025 $(OUTDIR)\TransientEmacsShell.obj: $(TEMACS_SRC)\EmacsShell-sub.c
970 $(CCV) $(TEMACS_CPP_FLAGS) -DDEFINE_TRANSIENT_EMACS_SHELL $** -Fo$@ 1026 $(CCV) $(TEMACS_CPP_FLAGS) -DDEFINE_TRANSIENT_EMACS_SHELL $** -Fo$@
975 # !"sed -f ad2c.sed < $(XEMACS)\etc\Emacs.ad > $(TEMACS_SRC)\Emacs.ad.h" 1031 # !"sed -f ad2c.sed < $(XEMACS)\etc\Emacs.ad > $(TEMACS_SRC)\Emacs.ad.h"
976 1032
977 #$(TEMACS_SRC)\paths.h: $(TEMACS_SRC)\paths.h.in 1033 #$(TEMACS_SRC)\paths.h: $(TEMACS_SRC)\paths.h.in
978 # !"cd $(TEMACS_SRC); cp paths.h.in paths.h" 1034 # !"cd $(TEMACS_SRC); cp paths.h.in paths.h"
979 1035
980 $(TEMACS): $(TEMACS_INCLUDES) $(TEMACS_OBJS) 1036 $(TEMACS): $(TEMACS_INCLUDES) $(TEMACS_OBJS) $(OUTDIR)\xemacs.res
981 !if $(DEBUG_XEMACS) 1037 !if $(DEBUG_XEMACS)
982 @dir /b/s $(OUTDIR)\*.sbr > bscmake.tmp 1038 @dir /b/s $(OUTDIR)\*.sbr > bscmake.tmp
983 bscmake -nologo -o$(TEMACS_BROWSE) @bscmake.tmp 1039 bscmake -nologo -o$(TEMACS_BROWSE) @bscmake.tmp
984 @$(DEL) bscmake.tmp 1040 @$(DEL) bscmake.tmp
985 !endif 1041 !endif
986 !if $(USE_PORTABLE_DUMPER) 1042 !if $(USE_PORTABLE_DUMPER)
987 @if exist $(TEMACS_DIR)\xemacs.dmp del $(TEMACS_DIR)\xemacs.dmp 1043 @if exist $(SRC)\dump-id.c del $(SRC)\dump-id.c
988 !endif 1044 # make a new dump id file. There is probably a better way to do this, but this works
1045 @if exist $(OUTDIR)\dump-id.obj del $(OUTDIR)\dump-id.obj
1046 nmake -nologo -f xemacs.mak OUTDIR=$(OUTDIR) $(OUTDIR)\dump-id.obj
989 link.exe @<< 1047 link.exe @<<
990 $(TEMACS_LFLAGS) $(TEMACS_OBJS) $(TEMACS_LIBS) 1048 $(TEMACS_LFLAGS) -out:$@ $(TEMACS_OBJS) $(TEMACS_LIBS) $(OUTDIR)\dump-id.obj
991 << 1049 <<
1050 !else
1051 link.exe @<<
1052 $(TEMACS_LFLAGS) -out:$@ $(TEMACS_OBJS) $(OUTDIR)\xemacs.res $(TEMACS_LIBS)
1053 <<
1054 !endif
992 1055
993 $(OUTDIR)\xemacs.res: xemacs.rc 1056 $(OUTDIR)\xemacs.res: xemacs.rc
994 rc -Fo$@ xemacs.rc 1057 rc -Fo$@ xemacs.rc
995 1058
1059
1060 PROGNAME=$(SRC)\xemacs.exe
1061 TEMACS_BATCH="$(LIB_SRC)\i" "$(TEMACS)" -batch
1062 XEMACS_BATCH="$(LIB_SRC)\i" "$(PROGNAME)" -vanilla -batch
1063
996 # Section handling automated tests starts here 1064 # Section handling automated tests starts here
997 1065
998 SRCDIR=$(MAKEDIR)\..\src
999 PROGNAME=$(SRCDIR)\xemacs.exe
1000 blddir=$(MAKEDIR:\=\\)\\.. 1066 blddir=$(MAKEDIR:\=\\)\\..
1001 temacs_loadup=$(TEMACS) -batch -l $(SRCDIR)/../lisp/loadup.el 1067 temacs_loadup=$(TEMACS_BATCH) -l $(LISP)/loadup.el
1002 dump_temacs = $(temacs_loadup) dump 1068 dump_temacs = $(temacs_loadup) dump
1003 run_temacs = $(temacs_loadup) run-temacs 1069 run_temacs = $(temacs_loadup) run-temacs
1004 ## We have automated tests!! 1070 ## We have automated tests!!
1005 testdir=../tests/automated 1071 testdir=../tests/automated
1006 batch_test_emacs=-batch -l $(testdir)/test-harness.el -f batch-test-emacs $(testdir) 1072 batch_test_emacs=-batch -l $(testdir)/test-harness.el -f batch-test-emacs $(testdir)
1007 1073
1008 # .PHONY: check check-temacs 1074 # .PHONY: check check-temacs
1009 1075
1010 check: 1076 check:
1011 cd $(SRCDIR) 1077 cd $(SRC)
1012 $(PROGNAME) $(batch_test_emacs) 1078 $(PROGNAME) $(batch_test_emacs)
1013 1079
1014 check-temacs: 1080 check-temacs:
1015 cd $(SRCDIR) 1081 cd $(SRC)
1016 set EMACSBOOTSTRAPLOADPATH=$(LISP) 1082 set EMACSBOOTSTRAPLOADPATH=$(LISP)
1017 set EMACSBOOTSTRAPMODULEPATH=$(MODULES) 1083 set EMACSBOOTSTRAPMODULEPATH=$(MODULES)
1018 $(run_temacs) $(batch_test_emacs) 1084 $(run_temacs) $(batch_test_emacs)
1019 1085
1020 # Section handling automated tests ends here 1086 # Section handling automated tests ends here
1021 1087
1088 # Section handling tags starts here
1089
1090 tagslisp=lisp
1091
1092 tags:
1093 @echo If you don't have a copy of etags around, then do 'make lib-src' first.
1094 @echo To make use of the tags file, put the following in your .emacs:
1095 @echo (setq tag-table-alist
1096 @echo '(("$(XEMACSDIRSTRING)\\" . "$(XEMACSDIRSTRING)\\")))
1097 cd $(XEMACS)
1098 $(DEL) TAGS
1099 set PATH=lib-src;%PATH%
1100 # we need to double ^, but only before backslash! Doubling it elsewhere
1101 # causes problems. I don't understand this -- CMD.EXE uses ^ as a quoting
1102 # convention of sorts, but appears to leave it alone inside of double quotes,
1103 # even before \. Could this be nmake interference?
1104 etags -a -r "/[ ]*DEF\(VAR\|INE\)_[A-Z_]+[ ]*([ ]*\"\([^^\"]+\)\"/\2/" src\*.c src\*.h lwlib\*.c lwlib\*.h lib-src\*.c lib-src\*.h
1105 etags -a -l none -r "/^(def\(var\|un\|alias\|const\|macro\|subst\|struct\|face\|group\|custom\|ine-\(function\|compiler-macro\|[a-z-]+alias\)\)[ ]+'?\([^ ]+\)/\3/" $(tagslisp)\*.el
1106
1107 # Section handling tags ends here
1108
1022 # Section handling info starts here 1109 # Section handling info starts here
1023 1110
1024 !if !defined(MAKEINFO) 1111 !if !defined(MAKEINFO)
1025 MAKEINFO=$(PROGNAME) -vanilla -batch -l texinfmt -f batch-texinfo-format 1112 MAKEINFO=$(XEMACS_BATCH) -l texinfmt -f batch-texinfo-format
1026 !endif 1113 !endif
1027 1114
1028 MANDIR = $(XEMACS)\man 1115 MANDIR = $(XEMACS)\man
1029 INFODIR = $(XEMACS)\info 1116 INFODIR = $(XEMACS)\info
1030 INFO_FILES= \ 1117 INFO_FILES= \
1201 1288
1202 makeinfo-test: 1289 makeinfo-test:
1203 @<<makeinfo_test.bat 1290 @<<makeinfo_test.bat
1204 @echo off 1291 @echo off
1205 if exist "$(MAKEINFO)" goto test_done 1292 if exist "$(MAKEINFO)" goto test_done
1206 @"$(PROGNAME)" -batch -vanilla -eval "(condition-case nil (require (quote texinfo)) (t (kill-emacs 1)))" 1293 @$(XEMACS_BATCH) -eval "(condition-case nil (require (quote texinfo)) (t (kill-emacs 1)))"
1207 @if not errorlevel 1 goto suggest_makeinfo 1294 @if not errorlevel 1 goto suggest_makeinfo
1208 @echo XEmacs `info' cannot be built! 1295 @echo XEmacs 'info' cannot be built!
1209 @echo Install XEmacs package `texinfo' (see README.packages). 1296 @echo Install XEmacs package 'texinfo' (see README.packages).
1210 :suggest_makeinfo 1297 :suggest_makeinfo
1211 @echo Consider specifying path to makeinfo program: MAKEINFO=path 1298 @echo Consider specifying path to makeinfo program: MAKEINFO=path
1212 @echo as this will build info docs faster than XEmacs using `texinfo'. 1299 @echo as this will build info docs faster than XEmacs using 'texinfo'.
1213 @if errorlevel 1 exit 1 1300 @if errorlevel 1 exit 1
1214 :test_done 1301 :test_done
1215 <<NOKEEP 1302 <<NOKEEP
1216 1303
1217 # Section handling info ends here 1304 # Section handling info ends here
1225 # Rebuild docfile target 1312 # Rebuild docfile target
1226 docfile :: 1313 docfile ::
1227 if exist $(DOC) del $(DOC) 1314 if exist $(DOC) del $(DOC)
1228 docfile :: $(DOC) 1315 docfile :: $(DOC)
1229 1316
1230 $(DOC): $(LIB_SRC)\make-docfile.exe 1317 $(DOC): $(LIB_SRC)\make-docfile.exe $(DOC_SRC1) $(DOC_SRC2) $(DOC_SRC3) $(DOC_SRC4) $(DOC_SRC5) $(DOC_SRC6) $(DOC_SRC7) $(DOC_SRC8) $(DOC_SRC9) $(DOC_SRC10) $(DOC_SRC11)
1231 if exist $(DOC) del $(DOC) 1318 if exist $(DOC) del $(DOC)
1232 set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) 1319 set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH)
1233 set EMACSBOOTSTRAPMODULEPATH=$(MODULES) 1320 set EMACSBOOTSTRAPMODULEPATH=$(MODULES)
1234 $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages 1321 $(TEMACS_BATCH) -l $(TEMACS_DIR)\..\lisp\make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages
1235 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC1) 1322 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC1)
1236 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC2) 1323 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC2)
1237 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC3) 1324 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC3)
1238 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC4) 1325 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC4)
1239 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC5) 1326 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC5)
1245 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC11) 1332 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC11)
1246 1333
1247 update-elc: 1334 update-elc:
1248 set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) 1335 set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH)
1249 set EMACSBOOTSTRAPMODULEPATH=$(MODULES) 1336 set EMACSBOOTSTRAPMODULEPATH=$(MODULES)
1250 $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\update-elc.el 1337 $(TEMACS_BATCH) -l $(TEMACS_DIR)\..\lisp\update-elc.el
1338
1339 # This file is touched by update-elc.el when redumping is necessary.
1340 $(TEMACS_DIR)\NEEDTODUMP :
1341 @echo >$(TEMACS_DIR)\NEEDTODUMP
1251 1342
1252 # This rule dumps xemacs and then possibly spawns sub-make if PURESPACE 1343 # This rule dumps xemacs and then possibly spawns sub-make if PURESPACE
1253 # requirements have changed. 1344 # requirements have changed.
1254 dump-xemacs: temacs 1345
1346 $(PROGNAME) : $(TEMACS) $(TEMACS_DIR)\NEEDTODUMP
1255 @echo >$(TEMACS_DIR)\SATISFIED 1347 @echo >$(TEMACS_DIR)\SATISFIED
1256 cd $(TEMACS_DIR) 1348 cd $(TEMACS_DIR)
1257 set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) 1349 set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH)
1258 set EMACSBOOTSTRAPMODULEPATH=$(MODULES) 1350 set EMACSBOOTSTRAPMODULEPATH=$(MODULES)
1259 -1 $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\loadup.el dump 1351 $(TEMACS_BATCH) -l $(TEMACS_DIR)\..\lisp\loadup.el dump
1260 !if $(USE_PORTABLE_DUMPER) 1352 !if $(USE_PORTABLE_DUMPER)
1261 copy temacs.exe xemacs.exe 1353 rc -d INCLUDE_DUMP -Fo $(OUTDIR)\xemacs.res $(NT)\xemacs.rc
1354 link.exe @<<
1355 $(TEMACS_LFLAGS) -out:xemacs.exe $(TEMACS_OBJS) $(OUTDIR)\xemacs.res $(TEMACS_LIBS) $(OUTDIR)\dump-id.obj
1356 <<
1357 # Make the resource section read/write since almost all of it is the dump
1358 # data which needs to be writable. This avoids having to copy it.
1359 editbin -nologo -section:.rsrc,rw xemacs.exe
1360 del $(TEMACS_DIR)\xemacs.dmp
1262 !endif 1361 !endif
1263 cd $(NT) 1362 cd $(NT)
1264 @if not exist $(TEMACS_DIR)\SATISFIED nmake -nologo -f xemacs.mak $@ 1363 @if not exist $(TEMACS_DIR)\SATISFIED nmake -nologo -f xemacs.mak $@
1265 #------------------------------------------------------------------------------ 1364 #------------------------------------------------------------------------------
1266 1365
1267 # use this rule to build the complete system 1366 # use this rule to build the complete system
1268 all: $(XEMACS)\Installation $(OUTDIR)\nul $(LASTFILE) $(LWLIB) \ 1367 all: installation $(OUTDIR)\nul $(LASTFILE) $(LWLIB) \
1269 $(LIB_SRC_TOOLS) $(RUNEMACS) $(TEMACS) update-elc $(DOC) dump-xemacs \ 1368 $(LIB_SRC_TOOLS) $(TEMACS) update-elc $(DOC) $(PROGNAME) \
1270 $(LISP)/auto-autoloads.el $(LISP)/custom-load.el info 1369 update-elc-2 update-auto-and-custom info
1271 1370
1272 temacs: $(LASTFILE) $(TEMACS) 1371 temacs: $(LASTFILE) $(TEMACS)
1273 1372
1274 # use this rule to install the system 1373 # use this rule to install the system
1275 install: all 1374 install: all
1280 @xcopy /q PlaceHolder "$(INSTALL_DIR)\lock\" 1379 @xcopy /q PlaceHolder "$(INSTALL_DIR)\lock\"
1281 @$(DEL) "$(INSTALL_DIR)\lock\PlaceHolder" 1380 @$(DEL) "$(INSTALL_DIR)\lock\PlaceHolder"
1282 @xcopy /q $(LIB_SRC)\*.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)\" 1381 @xcopy /q $(LIB_SRC)\*.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)\"
1283 @copy $(LIB_SRC)\DOC "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" 1382 @copy $(LIB_SRC)\DOC "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)"
1284 @copy $(CONFIG_VALUES) "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" 1383 @copy $(CONFIG_VALUES) "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)"
1285 @copy $(XEMACS)\src\xemacs.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" 1384 @copy $(SRC)\xemacs.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)"
1286 @copy $(RUNEMACS) "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)"
1287 @xcopy /e /q $(XEMACS)\etc "$(INSTALL_DIR)\etc\" 1385 @xcopy /e /q $(XEMACS)\etc "$(INSTALL_DIR)\etc\"
1288 @xcopy /e /q $(XEMACS)\info "$(INSTALL_DIR)\info\" 1386 @xcopy /e /q $(XEMACS)\info "$(INSTALL_DIR)\info\"
1289 @xcopy /e /q $(XEMACS)\lisp "$(INSTALL_DIR)\lisp\" 1387 @xcopy /e /q $(XEMACS)\lisp "$(INSTALL_DIR)\lisp\"
1290 @echo Making skeleton package tree in $(PACKAGE_PREFIX) ... 1388 @echo Making skeleton package tree in $(PACKAGE_PREFIX) ...
1291 @xcopy /q PlaceHolder "$(PACKAGE_PREFIX)\site-packages\" 1389 @xcopy /q PlaceHolder "$(PACKAGE_PREFIX)\site-packages\"
1294 @$(DEL) "$(PACKAGE_PREFIX)\mule-packages\PlaceHolder" 1392 @$(DEL) "$(PACKAGE_PREFIX)\mule-packages\PlaceHolder"
1295 @xcopy /q PlaceHolder "$(PACKAGE_PREFIX)\xemacs-packages\" 1393 @xcopy /q PlaceHolder "$(PACKAGE_PREFIX)\xemacs-packages\"
1296 @$(DEL) "$(PACKAGE_PREFIX)\xemacs-packages\PlaceHolder" 1394 @$(DEL) "$(PACKAGE_PREFIX)\xemacs-packages\PlaceHolder"
1297 @$(DEL) PlaceHolder 1395 @$(DEL) PlaceHolder
1298 1396
1299 distclean: 1397 mostlyclean:
1300 $(DEL) *.bak
1301 $(DEL) *.orig
1302 $(DEL) *.rej
1303 $(DEL) *.tmp
1304 $(DEL) $(XEMACS)\Installation 1398 $(DEL) $(XEMACS)\Installation
1305 cd $(OUTDIR) 1399 $(DEL) $(OUTDIR)\*.lib $(OUTDIR)\*.obj $(OUTDIR)\*.pdb
1306 $(DEL) *.lib 1400 $(DEL) $(OUTDIR)\*.res $(OUTDIR)\*.sbr
1307 $(DEL) *.obj 1401 $(DEL) $(SRC)\*.exe $(SRC)\*.map $(SRC)\*.bsc $(SRC)\*.pdb
1308 $(DEL) *.pdb 1402 $(DEL) $(LIB_SRC)\*.exe $(LIB_SRC)\*.obj $(LIB_SRC)\*.pdb
1309 $(DEL) *.res 1403 $(DEL) $(LIB_SRC)\*.res
1310 $(DEL) *.sbr 1404
1311 cd $(XEMACS)\$(TEMACS_DIR) 1405 clean: mostlyclean versionclean
1312 $(DEL) config.h 1406 $(DEL) $(XEMACS)\TAGS
1313 $(DEL) paths.h 1407
1314 $(DEL) Emacs.ad.h 1408 nicenclean: clean
1315 $(DEL) *.bak 1409 $(DEL) $(NT)\*.bak $(NT)\*.orig $(NT)\*.rej $(NT)\*.tmp
1316 $(DEL) *.orig 1410 $(DEL) $(LIB_SRC)\*.bak $(LIB_SRC)\*.orig $(LIB_SRC)\*.rej
1317 $(DEL) *.rej 1411 $(DEL) $(LIB_SRC)\*.tmp
1318 $(DEL) *.exe 1412 $(DEL) $(SRC)\*.bak $(SRC)\*.orig $(SRC)\*.rej $(SRC)\*.tmp
1319 $(DEL) *.map 1413 $(DEL) /s $(LISP)\*.bak $(LISP)\*.orig $(LISP)\*.rej $(LISP)\*.tmp
1320 $(DEL) *.bsc 1414
1321 $(DEL) *.pdb 1415 ## This is used in making a distribution.
1322 cd $(LIB_SRC) 1416 ## Do not use it on development directories!
1323 $(DEL) DOC 1417 distclean: nicenclean
1324 $(DEL) *.bak 1418 $(DEL) $(SRC)\config.h $(SRC)\paths.h $(SRC)\Emacs.ad.h
1325 $(DEL) *.orig 1419 $(DEL) $(LIB_SRC)\$(CONFIG_VALUES)
1326 $(DEL) *.rej 1420 $(DEL) $(INFODIR)\*.info*
1327 $(DEL) *.exe 1421 $(DEL) /s /q $(LISP)\*.elc
1328 $(DEL) *.obj 1422
1329 $(DEL) *.pdb 1423 realclean: distclean
1330 $(DEL) *.res 1424
1331 $(DEL) $(CONFIG_VALUES) 1425 versionclean:
1332 cd $(LISP) 1426 $(DEL) $(SRC)\xemacs.exe $(LIB_SRC)\DOC
1333 $(DEL) /s /q *.bak *.elc *.orig *.rej 1427
1334 cd $(INFODIR) 1428 #not sure about those wildcards. DOS wildcards are stupid compared to Unix,
1335 $(DEL) *.info* 1429 #and could end up deleting *everything* instead of just backup files or
1430 #whatever.
1431 #extraclean: realclean
1432 # $(DEL) *~ *.*~ #* m\*~ m\#* s\*~ s\#*
1336 1433
1337 depend: 1434 depend:
1338 cd $(SRCDIR) 1435 cd $(SRC)
1339 perl ./make-src-depend > depend.tmp 1436 perl ./make-src-depend > depend.tmp
1340 perl -MFile::Compare -e "compare('depend.tmp', 'depend') && rename('depend.tmp', 'depend') or unlink('depend.tmp')" 1437 perl -MFile::Compare -e "compare('depend.tmp', 'depend') && rename('depend.tmp', 'depend') or unlink('depend.tmp')"
1341 1438
1439 $(XEMACS)\Installation:: installation
1440
1342 installation:: 1441 installation::
1343 @if exist $(XEMACS)\Installation del $(XEMACS)\Installation
1344
1345 installation:: $(XEMACS)\Installation
1346
1347 $(XEMACS)\Installation:
1348 @type > $(XEMACS)\Installation << 1442 @type > $(XEMACS)\Installation <<
1349 !if defined(OS) 1443 !if defined(OS)
1350 OS: $(OS) 1444 OS: $(OS)
1351 !endif 1445 !endif
1352 1446
1359 Installing XEmacs in \"$(INSTALL_DIR:\=\\)\". 1453 Installing XEmacs in \"$(INSTALL_DIR:\=\\)\".
1360 Package path is $(PATH_PACKAGEPATH:"=\"). 1454 Package path is $(PATH_PACKAGEPATH:"=\").
1361 !if $(INFODOCK) 1455 !if $(INFODOCK)
1362 Building InfoDock. 1456 Building InfoDock.
1363 !endif 1457 !endif
1364 !if $(HAVE_MSW) 1458 !if $(HAVE_MS_WINDOWS)
1365 Compiling in support for Microsoft Windows native GUI. 1459 Compiling in support for Microsoft Windows native GUI.
1366 !endif 1460 !endif
1367 !if $(HAVE_X) 1461 !if $(HAVE_X_WINDOWS)
1368 Compiling in support for X-Windows. 1462 Compiling in support for X-Windows.
1369 !endif 1463 !endif
1370 !if $(HAVE_MULE) 1464 !if $(HAVE_MULE)
1371 Compiling in MULE. 1465 Compiling in MULE.
1372 !endif 1466 !endif
1442 Using DLL version of C runtime library 1536 Using DLL version of C runtime library
1443 !endif 1537 !endif
1444 !if $(DEBUG_XEMACS) 1538 !if $(DEBUG_XEMACS)
1445 Compiling in extra debug checks. XEmacs will be slow! 1539 Compiling in extra debug checks. XEmacs will be slow!
1446 !endif 1540 !endif
1541 !if $(QUICK_BUILD)
1542 Disabling non-essential build actions. Use with care!
1543 !endif
1447 <<NOKEEP 1544 <<NOKEEP
1448 @echo -------------------------------------------------------------------- 1545 @echo --------------------------------------------------------------------
1449 @type $(XEMACS)\Installation 1546 @type $(XEMACS)\Installation
1450 @echo -------------------------------------------------------------------- 1547 @echo --------------------------------------------------------------------
1451 1548
1452 # Update auto-autoloads.el and custom-load.el similar to what 1549 # Update out-of-date .elcs, other than needed for dumping.
1453 # XEmacs.rules does for xemacs-packages. 1550 update-elc-2:
1454 VANILLA=-vanilla 1551 $(XEMACS_BATCH) -l update-elc-2.el -f batch-update-elc-2 $(LISP)
1455 FORCE: 1552
1456 $(LISP)\auto-autoloads.el: FORCE 1553 # Update auto-autoloads.el and custom-load.el, similar to what
1457 @$(DEL) $(LISP)\auto-autoloads.el 1554 # XEmacs.rules does for xemacs-packages. This used to delete
1458 $(PROGNAME) $(VANILLA) -batch \ 1555 # auto-autoloads.el first, but that's a bad idea, because it forces
1459 -l autoload -f batch-update-directory $(LISP) 1556 # rebuilding from scratch, which is time-consuming; and the autoload
1460 $(PROGNAME) $(VANILLA) -batch \ 1557 # code is specifically written to do in-place updating. However, if
1461 -f batch-byte-compile $@ 1558 # your auto-autoload file is messed up and you want it rebuilt from
1559 # scratch, delete it from the command line and then nmake with this
1560 # target.
1561 update-auto-and-custom:
1562 # Combine into one invocation to avoid repeated startup penalty.
1563 $(XEMACS_BATCH) -l autoload -f batch-update-one-directory $(LISP) -f batch-byte-compile-one-file $(LISP)\auto-autoloads.el -l cus-dep -f Custom-make-one-dependency $(LISP) -f batch-byte-compile-one-file $(LISP)\custom-load.el
1462 @$(DEL) $(LISP)\auto-autoloads.el~ 1564 @$(DEL) $(LISP)\auto-autoloads.el~
1463 1565 @$(DEL) $(LISP)\custom-load.el~
1464 $(LISP)\custom-load.el: FORCE
1465 $(PROGNAME) $(VANILLA) -batch -l cus-dep \
1466 -f Custom-make-dependencies $(LISP)
1467 1566
1468 # DO NOT DELETE THIS LINE -- make depend depends on it. 1567 # DO NOT DELETE THIS LINE -- make depend depends on it.
1469 1568