1 # Makefile for Microsoft NMAKE
2 # Copyright (C) 1995 Board of Trustees, University of Illinois.
3 # Copyright (C) 1995, 1996 Ben Wing.
4 # Copyright (C) 1995 Sun Microsystems, Inc.
5 # Copyright (C) 1998 Free Software Foundation, Inc.
7 # This file is part of XEmacs.
9 # XEmacs is free software; you can redistribute it and/or modify it
10 # under the terms of the GNU General Public License as published by the
11 # Free Software Foundation; either version 2, or (at your option) any
14 # XEmacs is distributed in the hope that it will be useful, but WITHOUT
15 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19 # You should have received a copy of the GNU General Public License
20 # along with XEmacs; see the file COPYING. If not, write to
21 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22 # Boston, MA 02111-1307, USA.
24 # Synched up with: Not in FSF.
31 # Program name and version
33 !include "..\version.sh"
35 !if !defined(INFODOCK)
40 INFODOCK_VERSION_STRING=$(infodock_major_version).$(infodock_minor_version).$(infodock_build_version)
41 PROGRAM_DEFINES=-DINFODOCK \
42 -DPATH_VERSION=\"$(INFODOCK_VERSION_STRING)\" \
43 -DPATH_PROGNAME=\"infodock\" \
44 -DINFODOCK_MAJOR_VERSION=$(infodock_major_version) \
45 -DINFODOCK_MINOR_VERSION=$(infodock_minor_version) \
46 -DINFODOCK_BUILD_VERSION=$(infodock_build_version)
48 !if "$(emacs_beta_version)" != ""
49 XEMACS_VERSION_STRING=$(emacs_major_version).$(emacs_minor_version)-b$(emacs_beta_version)
51 XEMACS_VERSION_STRING=$(emacs_major_version).$(emacs_minor_version)
54 -DPATH_VERSION=\"$(XEMACS_VERSION_STRING)\" \
55 -DPATH_PROGNAME=\"xemacs\"
59 # Command line options defaults
61 !if !defined(INSTALL_DIR)
63 INSTALL_DIR=c:\Program Files\Infodock\Infodock-$(INFODOCK_VERSION_STRING)
65 INSTALL_DIR=c:\Program Files\XEmacs\XEmacs-$(XEMACS_VERSION_STRING)
68 !if !defined(PACKAGEPATH)
69 PATH_PACKAGEPATH="c:\\Program Files\\XEmacs\\packages"
71 PATH_PACKAGEPATH="$(PACKAGEPATH)"
73 !if !defined(HAVE_MSW)
79 !if !defined(HAVE_MULE)
82 !if !defined(HAVE_XPM)
85 !if !defined(HAVE_PNG)
88 !if !defined(HAVE_TIFF)
91 !if !defined(HAVE_JPEG)
94 !if !defined(HAVE_GIF)
97 !if !defined(HAVE_TOOLBARS)
98 HAVE_TOOLBARS=$(HAVE_XPM)
100 !if !defined(HAVE_DIALOGS)
103 !if !defined(HAVE_MSW_C_DIRED)
106 !if !defined(HAVE_NATIVE_SOUND)
109 !if !defined(DEBUG_XEMACS)
112 !if !defined(USE_UNION_TYPE)
115 !if !defined(USE_MINIMAL_TAGBITS)
116 USE_MINIMAL_TAGBITS=0
118 !if !defined(USE_INDEXED_LRECORD_IMPLEMENTATION)
119 USE_INDEXED_LRECORD_IMPLEMENTATION=0
123 # System configuration
125 !if !defined(PROCESSOR_ARCHITECTURE) && "$(OS)" != "Windows_NT"
126 EMACS_CONFIGURATION=i386-pc-win32
127 !else if "$(PROCESSOR_ARCHITECTURE)" == "x86"
128 EMACS_CONFIGURATION=i386-pc-win32
129 !else if "$(PROCESSOR_ARCHITECTURE)" == "MIPS"
130 EMACS_CONFIGURATION=mips-pc-win32
131 !else if "$(PROCESSOR_ARCHITECTURE)" == "ALPHA"
132 EMACS_CONFIGURATION=alpha-pc-win32
133 !else if "$(PROCESSOR_ARCHITECTURE)" == "PPC"
134 EMACS_CONFIGURATION=ppc-pc-win32
136 ! error Unknown processor architecture type $(PROCESSOR_ARCHITECTURE)
143 !if $(INFODOCK) && !exist("..\..\Infodock.rules")
144 !message Cannot build InfoDock without InfoDock sources
147 !if !$(HAVE_MSW) && !$(HAVE_X)
148 !message Please specify at least one HAVE_MSW=1 and/or HAVE_X=1
151 !if $(HAVE_X) && !defined(X11_DIR)
152 !message Please specify root directory for your X11 installation: X11_DIR=path
155 !if $(HAVE_X) && defined(X11_DIR) && !exist("$(X11_DIR)\LIB\X11.LIB")
156 !message Specified X11 directory does not contain "$(X11_DIR)\LIB\X11.LIB"
159 !if $(HAVE_MSW) && $(HAVE_XPM) && !defined(XPM_DIR)
160 !message Please specify root directory for your XPM installation: XPM_DIR=path
163 !if $(HAVE_MSW) && $(HAVE_XPM) && defined(XPM_DIR) && !exist("$(XPM_DIR)\lib\Xpm.lib")
164 !message Specified XPM directory does not contain "$(XPM_DIR)\lib\Xpm.lib"
167 !if $(HAVE_MSW) && $(HAVE_PNG) && !defined(PNG_DIR)
168 !message Please specify root directory for your PNG installation: PNG_DIR=path
171 !if $(HAVE_MSW) && $(HAVE_PNG) && defined(PNG_DIR) && !exist("$(PNG_DIR)\libpng.lib")
172 !message Specified PNG directory does not contain "$(PNG_DIR)\libpng.lib"
175 !if $(HAVE_MSW) && $(HAVE_PNG) && !defined(ZLIB_DIR)
176 !message Please specify root directory for your ZLIB installation: ZLIB_DIR=path
179 !if $(HAVE_MSW) && $(HAVE_PNG) && defined(ZLIB_DIR) && !exist("$(ZLIB_DIR)\zlib.lib")
180 !message Specified ZLIB directory does not contain "$(ZLIB_DIR)\zlib.lib"
183 !if $(HAVE_MSW) && $(HAVE_TIFF) && !defined(TIFF_DIR)
184 !message Please specify root directory for your TIFF installation: TIFF_DIR=path
187 !if $(HAVE_MSW) && $(HAVE_TIFF) && !exist("$(TIFF_DIR)\libtiff\libtiff.lib")
188 !message Specified TIFF directory does not contain "$(TIFF_DIR)\libtiff\libtiff.lib"
191 !if $(HAVE_MSW) && $(HAVE_JPEG) && !defined(JPEG_DIR)
192 !message Please specify root directory for your JPEG installation: JPEG_DIR=path
195 !if $(HAVE_MSW) && $(HAVE_JPEG) && !exist("$(JPEG_DIR)\libjpeg.lib")
196 !message Specified JPEG directory does not contain "$(JPEG_DIR)\libjpeg.lib"
199 !if $(HAVE_MSW) && $(HAVE_TOOLBARS) && !$(HAVE_XPM)
200 !error Toolbars require XPM support
204 !error Configuration error(s) found
211 USE_MINIMAL_TAGBITS=$(GUNG_HO)
212 USE_INDEXED_LRECORD_IMPLEMENTATION=$(GUNG_HO)
216 # Small configuration report
218 !if !defined(CONF_REPORT_ALREADY_PRINTED)
219 !if [set CONF_REPORT_ALREADY_PRINTED=1]
221 !message ------------------------------------------------
222 !message Configured for "$(EMACS_CONFIGURATION)".
224 !message Installation directory is "$(INSTALL_DIR)".
225 !message Package path is $(PATH_PACKAGEPATH).
228 !message Building InfoDock.
231 !message Compiling in support for native GUI.
234 !message Compiling in support for X-Windows.
237 !message Compiling in MULE.
240 !message Compiling in support for XPM images.
243 !message Compiling in support for GIF images.
246 !message Compiling in support for PNG images.
249 !message Compiling in support for TIFF images.
252 !message Compiling in support for JPEG images.
255 !message Compiling in support for toolbars.
258 !message Compiling in support for dialogs.
260 !if $(HAVE_NATIVE_SOUND)
261 !message Compiling in support for native sounds.
263 !if $(HAVE_MSW_C_DIRED)
264 # Define HAVE_MSW_C_DIRED to be non-zero if you want XEmacs to use C
265 # primitives to significantly speed up dired, at the expense of an
266 # additional ~4KB of code.
267 !message Compiling in fast dired implementation.
269 !if $(USE_MINIMAL_TAGBITS)
270 !message Using minimal tagbits.
272 !if $(USE_INDEXED_LRECORD_IMPLEMENTATION)
273 !message Using indexed lrecord implementation.
275 !if $(USE_UNION_TYPE)
276 !message Using union type for Lisp object storage.
279 !message Compiling in extra debug checks. XEmacs will be slow!
281 !message ------------------------------------------------
283 !endif # !defined(CONF_REPORT_ALREADY_PRINTED)
286 # Compiler command echo control. Define VERBOSECC=1 to get vebose compilation.
288 !if !defined(VERBOSECC)
306 X_DEFINES=-DHAVE_X_WINDOWS
307 X_INCLUDES=-I$(X11_DIR)\include
308 X_LIBS=-libpath:$(X11_DIR)\lib Xaw.lib Xmu.lib Xt.lib SM.lib ICE.lib Xext.lib X11.lib
312 MSW_DEFINES=-DHAVE_MS_WINDOWS -DHAVE_SCROLLBARS -DHAVE_MENUBARS
315 !if $(HAVE_MSW_C_DIRED)
316 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_MSW_C_DIRED
317 MSW_C_DIRED_SRC=$(XEMACS)\src\dired-msw.c
318 MSW_C_DIRED_OBJ=$(OUTDIR)\dired-msw.obj
321 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_XPM -DFOR_MSW
322 MSW_INCLUDES=$(MSW_INCLUDES) -I"$(XPM_DIR)" -I"$(XPM_DIR)\lib"
323 MSW_LIBS=$(MSW_LIBS) "$(XPM_DIR)\lib\Xpm.lib"
326 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_GIF
327 MSW_GIF_SRC=$(XEMACS)\src\dgif_lib.c $(XEMACS)\src\gif_io.c
328 MSW_GIF_OBJ=$(OUTDIR)\dgif_lib.obj $(OUTDIR)\gif_io.obj
331 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_PNG
332 MSW_INCLUDES=$(MSW_INCLUDES) -I"$(PNG_DIR)" -I"$(ZLIB_DIR)"
333 MSW_LIBS=$(MSW_LIBS) "$(PNG_DIR)\libpng.lib" "$(ZLIB_DIR)\zlib.lib"
336 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_TIFF
337 MSW_INCLUDES=$(MSW_INCLUDES) -I"$(TIFF_DIR)\libtiff"
338 MSW_LIBS=$(MSW_LIBS) "$(TIFF_DIR)\libtiff\libtiff.lib"
341 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_JPEG
342 MSW_INCLUDES=$(MSW_INCLUDES) -I"$(JPEG_DIR)"
343 MSW_LIBS=$(MSW_LIBS) "$(JPEG_DIR)\libjpeg.lib"
346 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_TOOLBARS
347 MSW_TOOLBAR_SRC=$(XEMACS)\src\toolbar.c $(XEMACS)\src\toolbar-msw.c
348 MSW_TOOLBAR_OBJ=$(OUTDIR)\toolbar.obj $(OUTDIR)\toolbar-msw.obj
349 MSW_LIBS=$(MSW_LIBS) comctl32.lib
352 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_DIALOGS
353 MSW_DIALOG_SRC=$(XEMACS)\src\dialog.c $(XEMACS)\src\dialog-msw.c
354 MSW_DIALOG_OBJ=$(OUTDIR)\dialog.obj $(OUTDIR)\dialog-msw.obj
356 !if $(HAVE_NATIVE_SOUND)
357 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_NATIVE_SOUND
366 DEBUG_DEFINES=-DDEBUG_XEMACS -D_DEBUG
367 DEBUG_FLAGS= -debugtype:both -debug:full
370 !if $(USE_MINIMAL_TAGBITS)
371 TAGBITS_DEFINES=-DUSE_MINIMAL_TAGBITS
373 !if $(USE_INDEXED_LRECORD_IMPLEMENTATION)
374 LRECORD_DEFINES=-DUSE_INDEXED_LRECORD_IMPLEMENTATION
376 !if $(USE_UNION_TYPE)
377 UNION_DEFINES=-DUSE_UNION_TYPE
388 PATH_DEFINES=-DPATH_PREFIX=\"$(PATH_PREFIX)\"
392 INCLUDES=$(X_INCLUDES) $(MSW_INCLUDES) -I$(XEMACS)\nt\inc -I$(XEMACS)\src -I$(XEMACS)\lwlib
394 DEFINES=$(X_DEFINES) $(MSW_DEFINES) $(MULE_DEFINES) \
395 $(TAGBITS_DEFINES) $(LRECORD_DEFINES) $(UNION_DEFINES) \
396 -DWIN32 -D_WIN32 -DWIN32_LEAN_AND_MEAN -DWINDOWSNT -Demacs \
397 -DHAVE_CONFIG_H $(PROGRAM_DEFINES) $(PATH_DEFINES)
401 #------------------------------------------------------------------------------
403 default: $(OUTDIR)\nul all
409 $(XEMACS)\src\config.h \
410 $(XEMACS)\src\Emacs.ad.h \
411 $(XEMACS)\src\paths.h \
412 $(XEMACS)\src\puresize-adjust.h
414 $(XEMACS)\src\config.h: config.h
415 copy config.h $(XEMACS)\src
417 $(XEMACS)\src\Emacs.ad.h: Emacs.ad.h
418 copy Emacs.ad.h $(XEMACS)\src
420 $(XEMACS)\src\paths.h: paths.h
421 copy paths.h $(XEMACS)\src
423 $(XEMACS)\src\puresize-adjust.h: puresize-adjust.h
424 copy puresize-adjust.h $(XEMACS)\src
426 #------------------------------------------------------------------------------
430 LIB_SRC = $(XEMACS)\lib-src
431 LIB_SRC_DEFINES = -DHAVE_CONFIG_H -DWIN32 -DWINDOWSNT
434 {$(LIB_SRC)}.c{$(LIB_SRC)}.exe :
436 $(CCV) -I. -I$(XEMACS)/src -I$(XEMACS)/nt/inc $(LIB_SRC_DEFINES) -O2 -W3 -Fe$@ $**
439 # Individual dependencies
440 ETAGS_DEPS = $(LIB_SRC)/getopt.c $(LIB_SRC)/getopt1.c $(LIB_SRC)/../src/regex.c
441 $(LIB_SRC)/etags.exe : $(LIB_SRC)/etags.c $(ETAGS_DEPS)
442 $(LIB_SRC)/movemail.exe: $(LIB_SRC)/movemail.c $(ETAGS_DEPS)
445 $(LIB_SRC)/make-docfile.exe \
446 $(LIB_SRC)/hexl.exe \
447 $(LIB_SRC)/movemail.exe \
448 $(LIB_SRC)/mmencode.exe \
449 $(LIB_SRC)/sorted-doc.exe \
450 $(LIB_SRC)/wakeup.exe \
453 #------------------------------------------------------------------------------
457 RUNEMACS = $(XEMACS)\src\runemacs.exe
459 $(RUNEMACS): $(NT)\runemacs.c $(NT)\xemacs.res
460 $(CCV) -I. -I$(XEMACS)/src -I$(XEMACS)/nt/inc -O2 -W3 -Fe$@ $** kernel32.lib user32.lib
462 #------------------------------------------------------------------------------
466 LASTFILE=$(OUTDIR)\lastfile.lib
467 LASTFILE_SRC=$(XEMACS)\src
468 LASTFILE_FLAGS=$(WARN_CPP_FLAGS) $(OPT) $(INCLUDES) -Fo$@ -c
470 $(OUTDIR)\lastfile.obj
472 $(LASTFILE): $(XEMACS_INCLUDES) $(LASTFILE_OBJS)
473 link.exe -lib -nologo -out:$@ $(LASTFILE_OBJS)
475 $(OUTDIR)\lastfile.obj: $(LASTFILE_SRC)\lastfile.c
476 $(CCV) $(LASTFILE_FLAGS) $**
478 #------------------------------------------------------------------------------
484 LWLIB=$(OUTDIR)\lwlib.lib
485 LWLIB_SRC=$(XEMACS)\lwlib
486 LWLIB_FLAGS=$(WARN_CPP_FLAGS) $(OPT) $(INCLUDES) $(DEFINES) \
487 -DNEED_ATHENA -DNEED_LUCID \
488 -D_WINDOWS -DMENUBARS_LUCID -DSCROLLBARS_LUCID -DDIALOGS_ATHENA \
491 $(OUTDIR)\lwlib-config.obj \
492 $(OUTDIR)\lwlib-utils.obj \
493 $(OUTDIR)\lwlib-Xaw.obj \
494 $(OUTDIR)\lwlib-Xlw.obj \
495 $(OUTDIR)\lwlib.obj \
496 $(OUTDIR)\xlwmenu.obj \
497 $(OUTDIR)\xlwscrollbar.obj
499 $(LWLIB): $(LWLIB_OBJS)
500 link.exe -lib -nologo $(DEBUG_FLAGS) -out:$@ $(LWLIB_OBJS)
502 $(OUTDIR)\lwlib-config.obj: $(LWLIB_SRC)\lwlib-config.c
503 $(CCV) $(LWLIB_FLAGS) $**
505 $(OUTDIR)\lwlib-utils.obj: $(LWLIB_SRC)\lwlib-utils.c
506 $(CCV) $(LWLIB_FLAGS) $**
508 $(OUTDIR)\lwlib-Xaw.obj: $(LWLIB_SRC)\lwlib-Xaw.c
509 $(CCV) $(LWLIB_FLAGS) $**
511 $(OUTDIR)\lwlib-Xlw.obj: $(LWLIB_SRC)\lwlib-Xlw.c
512 $(CCV) $(LWLIB_FLAGS) $**
514 $(OUTDIR)\lwlib.obj: $(LWLIB_SRC)\lwlib.c
515 $(CCV) $(LWLIB_FLAGS) $**
517 $(OUTDIR)\xlwmenu.obj: $(LWLIB_SRC)\xlwmenu.c
518 $(CCV) $(LWLIB_FLAGS) $**
520 $(OUTDIR)\xlwscrollbar.obj: $(LWLIB_SRC)\xlwscrollbar.c
521 $(CCV) $(LWLIB_FLAGS) $**
524 #------------------------------------------------------------------------------
528 $(XEMACS)\src\abbrev.c \
529 $(XEMACS)\src\alloc.c \
530 $(XEMACS)\src\alloca.c \
531 $(XEMACS)\src\blocktype.c \
532 $(XEMACS)\src\buffer.c \
533 $(XEMACS)\src\bytecode.c \
534 $(XEMACS)\src\callint.c \
535 $(XEMACS)\src\callproc.c \
536 $(XEMACS)\src\casefiddle.c \
537 $(XEMACS)\src\casetab.c \
538 $(XEMACS)\src\chartab.c \
539 $(XEMACS)\src\cmdloop.c \
540 $(XEMACS)\src\cmds.c \
541 $(XEMACS)\src\console-stream.c \
542 $(XEMACS)\src\console.c \
543 $(XEMACS)\src\data.c \
544 $(XEMACS)\src\device.c
546 $(XEMACS)\src\dired.c \
547 $(XEMACS)\src\doc.c \
548 $(XEMACS)\src\doprnt.c \
549 $(XEMACS)\src\dragdrop.c \
550 $(XEMACS)\src\dynarr.c \
551 $(XEMACS)\src\editfns.c \
552 $(XEMACS)\src\elhash.c \
553 $(XEMACS)\src\emacs.c \
554 $(XEMACS)\src\eval.c \
555 $(XEMACS)\src\event-stream.c \
556 $(XEMACS)\src\events.c \
557 $(XEMACS)\src\extents.c \
558 $(XEMACS)\src\faces.c \
559 $(XEMACS)\src\file-coding.c \
560 $(XEMACS)\src\fileio.c \
561 $(XEMACS)\src\filelock.c \
562 $(XEMACS)\src\filemode.c \
563 $(XEMACS)\src\floatfns.c \
566 $(XEMACS)\src\font-lock.c \
567 $(XEMACS)\src\frame.c \
568 $(XEMACS)\src\free-hook.c \
569 $(XEMACS)\src\general.c \
570 $(XEMACS)\src\glyphs.c \
571 $(XEMACS)\src\glyphs-eimage.c \
572 $(XEMACS)\src\gmalloc.c \
573 $(XEMACS)\src\gui.c \
574 $(XEMACS)\src\hash.c \
575 $(XEMACS)\src\imgproc.c \
576 $(XEMACS)\src\indent.c \
577 $(XEMACS)\src\insdel.c \
578 $(XEMACS)\src\intl.c \
579 $(XEMACS)\src\keymap.c \
580 $(XEMACS)\src\line-number.c \
581 $(XEMACS)\src\lread.c \
582 $(XEMACS)\src\lstream.c \
583 $(XEMACS)\src\macros.c \
584 $(XEMACS)\src\marker.c
586 $(XEMACS)\src\md5.c \
587 $(XEMACS)\src\menubar.c \
588 $(XEMACS)\src\minibuf.c \
590 $(XEMACS)\src\ntheap.c \
591 $(XEMACS)\src\ntplay.c \
592 $(XEMACS)\src\ntproc.c \
593 $(XEMACS)\src\objects.c \
594 $(XEMACS)\src\opaque.c \
595 $(XEMACS)\src\print.c \
596 $(XEMACS)\src\process.c \
597 $(XEMACS)\src\process-nt.c \
598 $(XEMACS)\src\profile.c \
599 $(XEMACS)\src\pure.c \
600 $(XEMACS)\src\rangetab.c \
601 $(XEMACS)\src\realpath.c \
602 $(XEMACS)\src\redisplay-output.c \
603 $(XEMACS)\src\redisplay.c \
604 $(XEMACS)\src\regex.c \
605 $(XEMACS)\src\scrollbar.c \
606 $(XEMACS)\src\scrollbar-msw.c \
607 $(XEMACS)\src\search.c \
608 $(XEMACS)\src\signal.c \
609 $(XEMACS)\src\sound.c
611 $(XEMACS)\src\specifier.c \
612 $(XEMACS)\src\strftime.c \
613 $(XEMACS)\src\symbols.c \
614 $(XEMACS)\src\syntax.c \
615 $(XEMACS)\src\sysdep.c \
616 $(XEMACS)\src\termcap.c \
617 $(XEMACS)\src\tparam.c \
618 $(XEMACS)\src\undo.c \
619 $(XEMACS)\src\unexnt.c \
620 $(XEMACS)\src\vm-limit.c \
621 $(XEMACS)\src\window.c \
622 $(XEMACS)\src\widget.c
626 $(XEMACS)\src\balloon_help.c \
627 $(XEMACS)\src\console-x.c \
628 $(XEMACS)\src\device-x.c \
629 $(XEMACS)\src\dialog-x.c \
630 $(XEMACS)\src\EmacsFrame.c \
631 $(XEMACS)\src\EmacsManager.c \
632 $(XEMACS)\src\EmacsShell-sub.c\
633 $(XEMACS)\src\EmacsShell.c \
634 $(XEMACS)\src\event-Xt.c \
635 $(XEMACS)\src\frame-x.c \
636 $(XEMACS)\src\glyphs-x.c \
637 $(XEMACS)\src\gui-x.c \
638 $(XEMACS)\src\menubar.c \
639 $(XEMACS)\src\menubar-x.c \
640 $(XEMACS)\src\objects-x.c \
641 $(XEMACS)\src\redisplay-x.c \
642 $(XEMACS)\src\scrollbar-x.c \
643 $(XEMACS)\src\balloon-x.c \
644 $(XEMACS)\src\xgccache.c \
645 $(XEMACS)\src\xmu.c \
646 $(XEMACS)\src\xselect.c
651 $(XEMACS)\src\console-msw.c \
652 $(XEMACS)\src\device-msw.c \
653 $(XEMACS)\src\event-msw.c \
654 $(XEMACS)\src\frame-msw.c \
655 $(XEMACS)\src\glyphs-msw.c \
656 $(XEMACS)\src\menubar-msw.c \
657 $(XEMACS)\src\objects-msw.c \
658 $(XEMACS)\src\redisplay-msw.c \
659 $(XEMACS)\src\scrollbar-msw.c \
660 $(XEMACS)\src\select-msw.c \
669 $(XEMACS)\src\input-method-xlib.c \
670 $(XEMACS)\src\mule.c \
671 $(XEMACS)\src\mule-charset.c \
672 $(XEMACS)\src\mule-ccl.c \
673 $(XEMACS)\src\mule-coding.c
678 $(XEMACS)\src\debug.c
681 #------------------------------------------------------------------------------
686 !if "$(emacs_beta_version)" != ""
687 EMACS_BETA_VERSION=-DEMACS_BETA_VERSION=$(emacs_beta_version)
690 TEMACS_DIR=$(XEMACS)\src
691 TEMACS=$(TEMACS_DIR)\temacs.exe
692 TEMACS_BROWSE=$(TEMACS_DIR)\temacs.bsc
693 TEMACS_SRC=$(XEMACS)\src
694 TEMACS_LIBS=$(LASTFILE) $(LWLIB) $(X_LIBS) $(MSW_LIBS) \
695 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib \
696 shell32.lib ole32.lib oleaut32.lib uuid.lib wsock32.lib winmm.lib libc.lib
697 TEMACS_LFLAGS=-nologo $(LIBRARIES) $(DEBUG_FLAGS) -base:0x1000000\
698 -stack:0x800000 -entry:_start -subsystem:console\
699 -pdb:$(TEMACS_DIR)\temacs.pdb -map:$(TEMACS_DIR)\temacs.map \
700 -heap:0x00100000 -out:$@
701 TEMACS_CPP_FLAGS= $(WARN_CPP_FLAGS) $(INCLUDES) $(DEFINES) $(DEBUG_DEFINES) \
702 -DEMACS_MAJOR_VERSION=$(emacs_major_version) \
703 -DEMACS_MINOR_VERSION=$(emacs_minor_version) \
704 $(EMACS_BETA_VERSION) \
705 -DXEMACS_CODENAME=\"$(xemacs_codename)\" \
706 -DEMACS_CONFIGURATION=\"$(EMACS_CONFIGURATION)\" \
707 -DPATH_PACKAGEPATH=\"$(PATH_PACKAGEPATH)\"
709 TEMACS_FLAGS=-ML $(WARN_CPP_FALGS) $(OPT) -c $(TEMACS_CPP_FLAGS)
713 $(OUTDIR)\balloon-x.obj \
714 $(OUTDIR)\balloon_help.obj \
715 $(OUTDIR)\console-x.obj \
716 $(OUTDIR)\device-x.obj \
717 $(OUTDIR)\dialog-x.obj \
718 $(OUTDIR)\EmacsFrame.obj \
719 $(OUTDIR)\EmacsManager.obj \
720 $(OUTDIR)\EmacsShell.obj \
721 $(OUTDIR)\TopLevelEmacsShell.obj\
722 $(OUTDIR)\TransientEmacsShell.obj\
723 $(OUTDIR)\event-Xt.obj \
724 $(OUTDIR)\frame-x.obj \
725 $(OUTDIR)\glyphs-x.obj \
726 $(OUTDIR)\gui-x.obj \
727 $(OUTDIR)\menubar-x.obj \
728 $(OUTDIR)\objects-x.obj \
729 $(OUTDIR)\redisplay-x.obj \
730 $(OUTDIR)\scrollbar-x.obj \
731 $(OUTDIR)\xgccache.obj \
733 $(OUTDIR)\xselect.obj
738 $(OUTDIR)\console-msw.obj \
739 $(OUTDIR)\device-msw.obj \
740 $(OUTDIR)\event-msw.obj \
741 $(OUTDIR)\frame-msw.obj \
742 $(OUTDIR)\glyphs-msw.obj \
743 $(OUTDIR)\menubar-msw.obj \
744 $(OUTDIR)\objects-msw.obj \
745 $(OUTDIR)\redisplay-msw.obj \
746 $(OUTDIR)\scrollbar-msw.obj \
747 $(OUTDIR)\select-msw.obj \
756 $(OUTDIR)\input-method-xlib.obj \
758 $(OUTDIR)\mule-charset.obj \
759 $(OUTDIR)\mule-ccl.obj \
760 $(OUTDIR)\mule-coding.obj
771 $(TEMACS_CODING_OBJS)\
773 $(TEMACS_DEBUG_OBJS)\
774 $(OUTDIR)\abbrev.obj \
775 $(OUTDIR)\alloc.obj \
776 $(OUTDIR)\alloca.obj \
777 $(OUTDIR)\blocktype.obj \
778 $(OUTDIR)\buffer.obj \
779 $(OUTDIR)\bytecode.obj \
780 $(OUTDIR)\callint.obj \
781 $(OUTDIR)\callproc.obj \
782 $(OUTDIR)\casefiddle.obj \
783 $(OUTDIR)\casetab.obj \
784 $(OUTDIR)\chartab.obj \
785 $(OUTDIR)\cmdloop.obj \
787 $(OUTDIR)\console-stream.obj \
788 $(OUTDIR)\console.obj \
790 $(OUTDIR)\device.obj \
791 $(OUTDIR)\dired.obj \
793 $(OUTDIR)\doprnt.obj \
794 $(OUTDIR)\dragdrop.obj \
795 $(OUTDIR)\dynarr.obj \
796 $(OUTDIR)\editfns.obj \
797 $(OUTDIR)\elhash.obj \
798 $(OUTDIR)\emacs.obj \
800 $(OUTDIR)\event-stream.obj \
801 $(OUTDIR)\events.obj \
802 $(OUTDIR)\extents.obj \
803 $(OUTDIR)\faces.obj \
804 $(OUTDIR)\file-coding.obj \
805 $(OUTDIR)\fileio.obj \
806 $(OUTDIR)\filelock.obj \
807 $(OUTDIR)\filemode.obj \
808 $(OUTDIR)\floatfns.obj \
810 $(OUTDIR)\font-lock.obj \
811 $(OUTDIR)\frame.obj \
812 $(OUTDIR)\free-hook.obj \
813 $(OUTDIR)\general.obj \
814 $(OUTDIR)\glyphs.obj \
815 $(OUTDIR)\glyphs-eimage.obj \
816 $(OUTDIR)\gmalloc.obj \
819 $(OUTDIR)\indent.obj \
820 $(OUTDIR)\imgproc.obj \
821 $(OUTDIR)\insdel.obj \
823 $(OUTDIR)\keymap.obj \
824 $(OUTDIR)\line-number.obj \
825 $(OUTDIR)\lread.obj \
826 $(OUTDIR)\lstream.obj \
827 $(OUTDIR)\macros.obj \
828 $(OUTDIR)\menubar.obj \
829 $(OUTDIR)\marker.obj \
831 $(OUTDIR)\minibuf.obj \
833 $(OUTDIR)\ntheap.obj \
834 $(OUTDIR)\ntplay.obj \
835 $(OUTDIR)\ntproc.obj \
836 $(OUTDIR)\objects.obj \
837 $(OUTDIR)\opaque.obj \
838 $(OUTDIR)\print.obj \
839 $(OUTDIR)\process.obj \
840 $(OUTDIR)\process-nt.obj \
841 $(OUTDIR)\profile.obj \
843 $(OUTDIR)\rangetab.obj \
844 $(OUTDIR)\realpath.obj \
845 $(OUTDIR)\redisplay-output.obj \
846 $(OUTDIR)\redisplay.obj \
847 $(OUTDIR)\regex.obj \
848 $(OUTDIR)\scrollbar.obj \
849 $(OUTDIR)\search.obj \
850 $(OUTDIR)\signal.obj \
851 $(OUTDIR)\sound.obj \
852 $(OUTDIR)\specifier.obj \
853 $(OUTDIR)\strftime.obj \
854 $(OUTDIR)\symbols.obj \
855 $(OUTDIR)\syntax.obj \
856 $(OUTDIR)\sysdep.obj \
857 $(OUTDIR)\tparam.obj \
859 $(OUTDIR)\unexnt.obj \
860 $(OUTDIR)\vm-limit.obj \
861 $(OUTDIR)\widget.obj \
862 $(OUTDIR)\window.obj \
871 {$(TEMACS_SRC)}.c{$(OUTDIR)}.obj:
872 $(CCV) $(TEMACS_FLAGS) $< -Fo$@ -Fr$*.sbr
874 $(OUTDIR)\TopLevelEmacsShell.obj: $(TEMACS_SRC)\EmacsShell-sub.c
875 $(CCV) $(TEMACS_FLAGS) -DDEFINE_TOP_LEVEL_EMACS_SHELL $** -Fo$@
877 $(OUTDIR)\TransientEmacsShell.obj: $(TEMACS_SRC)\EmacsShell-sub.c
878 $(CCV) $(TEMACS_FLAGS) -DDEFINE_TRANSIENT_EMACS_SHELL $** -Fo$@
880 $(OUTDIR)\pure.obj: $(TEMACS_SRC)\pure.c $(TEMACS_SRC)\puresize-adjust.h
882 #$(TEMACS_SRC)\Emacs.ad.h: $(XEMACS)\etc\Emacs.ad
883 # !"sed -f ad2c.sed < $(XEMACS)\etc\Emacs.ad > $(TEMACS_SRC)\Emacs.ad.h"
885 #$(TEMACS_SRC)\paths.h: $(TEMACS_SRC)\paths.h.in
886 # !"cd $(TEMACS_SRC); cp paths.h.in paths.h"
888 $(TEMACS): $(TEMACS_INCLUDES) $(TEMACS_OBJS)
890 $(TEMACS_LFLAGS) $(TEMACS_OBJS) $(TEMACS_LIBS)
893 $(NT)\xemacs.res: xemacs.rc
896 # MSDEV Source Broswer file. "*.sbr" is too inclusive but this is harmless
897 $(TEMACS_BROWSE): $(TEMACS_OBJS)
898 @dir /b/s $(OUTDIR)\*.sbr > bscmake.tmp
899 bscmake -nologo -o$@ @bscmake.tmp
902 #------------------------------------------------------------------------------
908 $(DOC): $(LIB_SRC)\make-docfile.exe
910 $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages
911 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC1)
912 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC2)
913 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC3)
914 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC4)
915 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC5)
916 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC6)
917 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC7)
918 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC8)
919 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC9)
921 $(LISP)\Installation.el: Installation.el
922 copy Installation.el $(LISP)
924 update-elc: $(LISP)\Installation.el
925 set EMACSBOOTSTRAPLOADPATH=$(LISP)
926 $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\update-elc.el
928 # This rule dumps xemacs and then possibly spawns sub-make if PURESPACE
929 # requirements has changed.
930 dump-xemacs: $(TEMACS)
931 @echo >$(TEMACS_DIR)\SATISFIED
933 set EMACSBOOTSTRAPLOADPATH=$(LISP)
934 -1 $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\loadup.el dump
936 @if not exist $(TEMACS_DIR)\SATISFIED nmake -nologo -f xemacs.mak $@
938 #------------------------------------------------------------------------------
940 # use this rule to build the complete system
941 all: $(OUTDIR)\nul $(LASTFILE) $(LWLIB) $(LIB_SRC_TOOLS) $(RUNEMACS) \
942 $(TEMACS) $(TEMACS_BROWSE) update-elc $(DOC) dump-xemacs
946 # use this rule to install the system
948 @echo Installing in $(INSTALL_DIR) ...
949 @xcopy /q PROBLEMS "$(INSTALL_DIR)\"
950 @xcopy /q README "$(INSTALL_DIR)\lock\"
951 @del "$(INSTALL_DIR)\lock\README"
952 @xcopy /q $(LIB_SRC)\*.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)\"
953 @copy $(LIB_SRC)\DOC "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)"
954 @copy $(XEMACS)\src\xemacs.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)"
955 @copy $(RUNEMACS) "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)"
956 @xcopy /e /q $(XEMACS)\etc "$(INSTALL_DIR)\etc\"
957 @xcopy /e /q $(XEMACS)\info "$(INSTALL_DIR)\info\"
958 @xcopy /e /q $(XEMACS)\lisp "$(INSTALL_DIR)\lisp\"
970 cd $(XEMACS)\$(TEMACS_DIR)
971 del puresize-adjust.h
989 -del /s /q *.bak *.elc *.orig *.rej
992 mkdepend -f xemacs.mak -p$(OUTDIR)\ -o.obj -w9999 -- $(TEMACS_CPP_FLAGS) -- $(DOC_SRC1) $(DOC_SRC2) $(DOC_SRC3) $(DOC_SRC4) $(DOC_SRC5) $(DOC_SRC6) $(DOC_SRC7) $(DOC_SRC8) $(DOC_SRC9) $(LASTFILE_SRC)\lastfile.c $(LIB_SRC)\make-docfile.c .\runemacs.c
994 # DO NOT DELETE THIS LINE -- make depend depends on it.