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 XEmacs $(XEMACS_VERSION_STRING) $(xemacs_codename) 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)
402 # Creating simplified versions of Installation and Installation.el
404 # Some values cannot be written on the same line with
405 # their key, since they cannot be put inside an echo command.
406 # Macro substitution (:"=\", :\=\\) can be performed on values in order
407 # to create a legal string in LISP for Installation.el.
409 !if [echo OS: $(OS)>Installation] ||\
410 [echo XEmacs $(XEMACS_VERSION_STRING) $(xemacs_codename:"=\") configured for ^`$(EMACS_CONFIGURATION)^'.>>Installation] ||\
411 [echo Where should the build process find the source code?>>Installation] ||\
412 [echo $(MAKEDIR:\=\\)>>Installation]
414 # Compiler Information
416 [echo What compiler should XEmacs be built with?>>Installation] &&\
417 [echo $(CCV)>>Installation]
419 # Window System Information
420 !if [echo What window system should XEmacs use?>>Installation]
422 !if (defined (HAVE_X) && $(HAVE_X) == 1)
423 !if [echo X11>>Installation]
426 !if (defined (HAVE_MSW) && $(HAVE_MSW) == 1)
427 !if [echo MS Windows>>Installation]
430 !if (!defined (HAVE_MSW) && !defined (HAVE_X))
431 !if [echo Please specify at least one HAVE_MSW^=1 and^/or HAVE_X^=1>>Installation]
434 # Creation of Installation.el
435 !if [type Installation] ||\
436 [echo (setq Installation-string ^">Installation.el] ||\
437 [type Installation >>Installation.el] ||\
438 [echo ^")>>Installation.el]
442 #------------------------------------------------------------------------------
444 default: $(OUTDIR)\nul all
450 $(XEMACS)\src\config.h \
451 $(XEMACS)\src\Emacs.ad.h \
452 $(XEMACS)\src\paths.h \
453 $(XEMACS)\src\puresize-adjust.h
455 $(XEMACS)\src\config.h: config.h
456 copy config.h $(XEMACS)\src
458 $(XEMACS)\src\Emacs.ad.h: Emacs.ad.h
459 copy Emacs.ad.h $(XEMACS)\src
461 $(XEMACS)\src\paths.h: paths.h
462 copy paths.h $(XEMACS)\src
464 $(XEMACS)\src\puresize-adjust.h: puresize-adjust.h
465 copy puresize-adjust.h $(XEMACS)\src
467 #------------------------------------------------------------------------------
471 LIB_SRC = $(XEMACS)\lib-src
472 LIB_SRC_DEFINES = -DHAVE_CONFIG_H -DWIN32 -DWINDOWSNT
475 # Creating config.values to be used by config.el
477 CONFIG_VALUES = $(LIB_SRC)\config.values
478 !if [echo Creating $(CONFIG_VALUES) && echo ;;; Do not edit this file!>$(CONFIG_VALUES)]
480 # MAKEDIR has to be made into a string.
481 !if [echo blddir>>$(CONFIG_VALUES) && echo ^"$(MAKEDIR:\=\\)\\..^">>$(CONFIG_VALUES)]
483 !if [echo CC>>$(CONFIG_VALUES) && echo ^"$(CC:\=\\)^">>$(CONFIG_VALUES)]
485 !if [echo CFLAGS>>$(CONFIG_VALUES) && echo ^"$(CFLAGS:\=\\)^">>$(CONFIG_VALUES)]
487 !if [echo CPP>>$(CONFIG_VALUES) && echo ^"$(CPP:\=\\)^">>$(CONFIG_VALUES)]
489 !if [echo CPPFLAGS>>$(CONFIG_VALUES) && echo ^"$(CPPFLAGS:\=\\)^">>$(CONFIG_VALUES)]
491 !if [echo LISPDIR>>$(CONFIG_VALUES) && echo ^"$(MAKEDIR:\=\\)\\$(LISP:\=\\)^">>$(CONFIG_VALUES)]
493 # PATH_PACKAGEPATH is already a quoted string.
494 !if [echo PACKAGE_PATH>>$(CONFIG_VALUES) && echo $(PATH_PACKAGEPATH)>>$(CONFIG_VALUES)]
498 {$(LIB_SRC)}.c{$(LIB_SRC)}.exe :
500 $(CCV) -I. -I$(XEMACS)/src -I$(XEMACS)/nt/inc $(LIB_SRC_DEFINES) -O2 -W3 -Fe$@ $**
503 # Individual dependencies
504 ETAGS_DEPS = $(LIB_SRC)/getopt.c $(LIB_SRC)/getopt1.c $(LIB_SRC)/../src/regex.c
505 $(LIB_SRC)/etags.exe : $(LIB_SRC)/etags.c $(ETAGS_DEPS)
506 $(LIB_SRC)/movemail.exe: $(LIB_SRC)/movemail.c $(LIB_SRC)/pop.c $(ETAGS_DEPS)
509 $(LIB_SRC)/make-docfile.exe \
510 $(LIB_SRC)/hexl.exe \
511 $(LIB_SRC)/movemail.exe \
512 $(LIB_SRC)/mmencode.exe \
513 $(LIB_SRC)/sorted-doc.exe \
514 $(LIB_SRC)/wakeup.exe \
517 #------------------------------------------------------------------------------
521 RUNEMACS = $(XEMACS)\src\runemacs.exe
523 $(RUNEMACS): $(NT)\runemacs.c $(NT)\xemacs.res
524 $(CCV) -I. -I$(XEMACS)/src -I$(XEMACS)/nt/inc -O2 -W3 -Fe$@ $** kernel32.lib user32.lib
526 #------------------------------------------------------------------------------
530 LASTFILE=$(OUTDIR)\lastfile.lib
531 LASTFILE_SRC=$(XEMACS)\src
532 LASTFILE_FLAGS=$(WARN_CPP_FLAGS) $(OPT) $(INCLUDES) -Fo$@ -c
534 $(OUTDIR)\lastfile.obj
536 $(LASTFILE): $(XEMACS_INCLUDES) $(LASTFILE_OBJS)
537 link.exe -lib -nologo -out:$@ $(LASTFILE_OBJS)
539 $(OUTDIR)\lastfile.obj: $(LASTFILE_SRC)\lastfile.c
540 $(CCV) $(LASTFILE_FLAGS) $**
542 #------------------------------------------------------------------------------
548 LWLIB=$(OUTDIR)\lwlib.lib
549 LWLIB_SRC=$(XEMACS)\lwlib
550 LWLIB_FLAGS=$(WARN_CPP_FLAGS) $(OPT) $(INCLUDES) $(DEFINES) \
551 -DNEED_ATHENA -DNEED_LUCID \
552 -D_WINDOWS -DMENUBARS_LUCID -DSCROLLBARS_LUCID -DDIALOGS_ATHENA \
555 $(OUTDIR)\lwlib-config.obj \
556 $(OUTDIR)\lwlib-utils.obj \
557 $(OUTDIR)\lwlib-Xaw.obj \
558 $(OUTDIR)\lwlib-Xlw.obj \
559 $(OUTDIR)\lwlib.obj \
560 $(OUTDIR)\xlwmenu.obj \
561 $(OUTDIR)\xlwscrollbar.obj
563 $(LWLIB): $(LWLIB_OBJS)
564 link.exe -lib -nologo $(DEBUG_FLAGS) -out:$@ $(LWLIB_OBJS)
566 $(OUTDIR)\lwlib-config.obj: $(LWLIB_SRC)\lwlib-config.c
567 $(CCV) $(LWLIB_FLAGS) $**
569 $(OUTDIR)\lwlib-utils.obj: $(LWLIB_SRC)\lwlib-utils.c
570 $(CCV) $(LWLIB_FLAGS) $**
572 $(OUTDIR)\lwlib-Xaw.obj: $(LWLIB_SRC)\lwlib-Xaw.c
573 $(CCV) $(LWLIB_FLAGS) $**
575 $(OUTDIR)\lwlib-Xlw.obj: $(LWLIB_SRC)\lwlib-Xlw.c
576 $(CCV) $(LWLIB_FLAGS) $**
578 $(OUTDIR)\lwlib.obj: $(LWLIB_SRC)\lwlib.c
579 $(CCV) $(LWLIB_FLAGS) $**
581 $(OUTDIR)\xlwmenu.obj: $(LWLIB_SRC)\xlwmenu.c
582 $(CCV) $(LWLIB_FLAGS) $**
584 $(OUTDIR)\xlwscrollbar.obj: $(LWLIB_SRC)\xlwscrollbar.c
585 $(CCV) $(LWLIB_FLAGS) $**
588 #------------------------------------------------------------------------------
592 $(XEMACS)\src\abbrev.c \
593 $(XEMACS)\src\alloc.c \
594 $(XEMACS)\src\alloca.c \
595 $(XEMACS)\src\blocktype.c \
596 $(XEMACS)\src\buffer.c \
597 $(XEMACS)\src\bytecode.c \
598 $(XEMACS)\src\callint.c \
599 $(XEMACS)\src\callproc.c \
600 $(XEMACS)\src\casefiddle.c \
601 $(XEMACS)\src\casetab.c \
602 $(XEMACS)\src\chartab.c \
603 $(XEMACS)\src\cmdloop.c \
604 $(XEMACS)\src\cmds.c \
605 $(XEMACS)\src\console-stream.c \
606 $(XEMACS)\src\console.c \
607 $(XEMACS)\src\data.c \
608 $(XEMACS)\src\device.c
610 $(XEMACS)\src\dired.c \
611 $(XEMACS)\src\doc.c \
612 $(XEMACS)\src\doprnt.c \
613 $(XEMACS)\src\dragdrop.c \
614 $(XEMACS)\src\dynarr.c \
615 $(XEMACS)\src\editfns.c \
616 $(XEMACS)\src\elhash.c \
617 $(XEMACS)\src\emacs.c \
618 $(XEMACS)\src\eval.c \
619 $(XEMACS)\src\event-stream.c \
620 $(XEMACS)\src\events.c \
621 $(XEMACS)\src\extents.c \
622 $(XEMACS)\src\faces.c \
623 $(XEMACS)\src\file-coding.c \
624 $(XEMACS)\src\fileio.c \
625 $(XEMACS)\src\filemode.c \
626 $(XEMACS)\src\floatfns.c \
629 $(XEMACS)\src\font-lock.c \
630 $(XEMACS)\src\frame.c \
631 $(XEMACS)\src\free-hook.c \
632 $(XEMACS)\src\general.c \
633 $(XEMACS)\src\glyphs.c \
634 $(XEMACS)\src\glyphs-eimage.c \
635 $(XEMACS)\src\gmalloc.c \
636 $(XEMACS)\src\gui.c \
637 $(XEMACS)\src\hash.c \
638 $(XEMACS)\src\imgproc.c \
639 $(XEMACS)\src\indent.c \
640 $(XEMACS)\src\insdel.c \
641 $(XEMACS)\src\intl.c \
642 $(XEMACS)\src\keymap.c \
643 $(XEMACS)\src\line-number.c \
644 $(XEMACS)\src\lread.c \
645 $(XEMACS)\src\lstream.c \
646 $(XEMACS)\src\macros.c \
647 $(XEMACS)\src\marker.c
649 $(XEMACS)\src\md5.c \
650 $(XEMACS)\src\menubar.c \
651 $(XEMACS)\src\minibuf.c \
653 $(XEMACS)\src\ntheap.c \
654 $(XEMACS)\src\ntplay.c \
655 $(XEMACS)\src\ntproc.c \
656 $(XEMACS)\src\objects.c \
657 $(XEMACS)\src\opaque.c \
658 $(XEMACS)\src\print.c \
659 $(XEMACS)\src\process.c \
660 $(XEMACS)\src\process-nt.c \
661 $(XEMACS)\src\profile.c \
662 $(XEMACS)\src\rangetab.c \
663 $(XEMACS)\src\realpath.c \
664 $(XEMACS)\src\redisplay-output.c \
665 $(XEMACS)\src\redisplay.c \
666 $(XEMACS)\src\regex.c \
667 $(XEMACS)\src\scrollbar.c \
668 $(XEMACS)\src\scrollbar-msw.c \
669 $(XEMACS)\src\search.c \
670 $(XEMACS)\src\signal.c \
671 $(XEMACS)\src\sound.c
673 $(XEMACS)\src\specifier.c \
674 $(XEMACS)\src\strftime.c \
675 $(XEMACS)\src\symbols.c \
676 $(XEMACS)\src\syntax.c \
677 $(XEMACS)\src\sysdep.c \
678 $(XEMACS)\src\termcap.c \
679 $(XEMACS)\src\tparam.c \
680 $(XEMACS)\src\undo.c \
681 $(XEMACS)\src\unexnt.c \
682 $(XEMACS)\src\vm-limit.c \
683 $(XEMACS)\src\window.c \
684 $(XEMACS)\src\widget.c
688 $(XEMACS)\src\balloon_help.c \
689 $(XEMACS)\src\console-x.c \
690 $(XEMACS)\src\device-x.c \
691 $(XEMACS)\src\dialog-x.c \
692 $(XEMACS)\src\EmacsFrame.c \
693 $(XEMACS)\src\EmacsManager.c \
694 $(XEMACS)\src\EmacsShell-sub.c\
695 $(XEMACS)\src\EmacsShell.c \
696 $(XEMACS)\src\event-Xt.c \
697 $(XEMACS)\src\frame-x.c \
698 $(XEMACS)\src\glyphs-x.c \
699 $(XEMACS)\src\gui-x.c \
700 $(XEMACS)\src\menubar.c \
701 $(XEMACS)\src\menubar-x.c \
702 $(XEMACS)\src\objects-x.c \
703 $(XEMACS)\src\redisplay-x.c \
704 $(XEMACS)\src\scrollbar-x.c \
705 $(XEMACS)\src\balloon-x.c \
706 $(XEMACS)\src\xgccache.c \
707 $(XEMACS)\src\xmu.c \
708 $(XEMACS)\src\xselect.c
713 $(XEMACS)\src\console-msw.c \
714 $(XEMACS)\src\device-msw.c \
715 $(XEMACS)\src\event-msw.c \
716 $(XEMACS)\src\frame-msw.c \
717 $(XEMACS)\src\glyphs-msw.c \
718 $(XEMACS)\src\menubar-msw.c \
719 $(XEMACS)\src\objects-msw.c \
720 $(XEMACS)\src\redisplay-msw.c \
721 $(XEMACS)\src\scrollbar-msw.c \
722 $(XEMACS)\src\select-msw.c \
731 $(XEMACS)\src\input-method-xlib.c \
732 $(XEMACS)\src\mule.c \
733 $(XEMACS)\src\mule-charset.c \
734 $(XEMACS)\src\mule-ccl.c \
735 $(XEMACS)\src\mule-coding.c
740 $(XEMACS)\src\debug.c
743 #------------------------------------------------------------------------------
748 !if "$(emacs_beta_version)" != ""
749 EMACS_BETA_VERSION=-DEMACS_BETA_VERSION=$(emacs_beta_version)
752 TEMACS_DIR=$(XEMACS)\src
753 TEMACS=$(TEMACS_DIR)\temacs.exe
754 TEMACS_BROWSE=$(TEMACS_DIR)\temacs.bsc
755 TEMACS_SRC=$(XEMACS)\src
756 TEMACS_LIBS=$(LASTFILE) $(LWLIB) $(X_LIBS) $(MSW_LIBS) \
757 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib \
758 shell32.lib ole32.lib oleaut32.lib uuid.lib wsock32.lib winmm.lib libc.lib
759 TEMACS_LFLAGS=-nologo $(LIBRARIES) $(DEBUG_FLAGS) -base:0x1000000\
760 -stack:0x800000 -entry:_start -subsystem:console\
761 -pdb:$(TEMACS_DIR)\temacs.pdb -map:$(TEMACS_DIR)\temacs.map \
762 -heap:0x00100000 -out:$@
763 TEMACS_CPP_FLAGS= $(WARN_CPP_FLAGS) $(INCLUDES) $(DEFINES) $(DEBUG_DEFINES) \
764 -DEMACS_MAJOR_VERSION=$(emacs_major_version) \
765 -DEMACS_MINOR_VERSION=$(emacs_minor_version) \
766 $(EMACS_BETA_VERSION) \
767 -DXEMACS_CODENAME=\"$(xemacs_codename)\" \
768 -DEMACS_CONFIGURATION=\"$(EMACS_CONFIGURATION)\" \
769 -DPATH_PACKAGEPATH=\"$(PATH_PACKAGEPATH)\"
771 TEMACS_FLAGS=-ML $(WARN_CPP_FALGS) $(OPT) -c $(TEMACS_CPP_FLAGS)
775 $(OUTDIR)\balloon-x.obj \
776 $(OUTDIR)\balloon_help.obj \
777 $(OUTDIR)\console-x.obj \
778 $(OUTDIR)\device-x.obj \
779 $(OUTDIR)\dialog-x.obj \
780 $(OUTDIR)\EmacsFrame.obj \
781 $(OUTDIR)\EmacsManager.obj \
782 $(OUTDIR)\EmacsShell.obj \
783 $(OUTDIR)\TopLevelEmacsShell.obj\
784 $(OUTDIR)\TransientEmacsShell.obj\
785 $(OUTDIR)\event-Xt.obj \
786 $(OUTDIR)\frame-x.obj \
787 $(OUTDIR)\glyphs-x.obj \
788 $(OUTDIR)\gui-x.obj \
789 $(OUTDIR)\menubar-x.obj \
790 $(OUTDIR)\objects-x.obj \
791 $(OUTDIR)\redisplay-x.obj \
792 $(OUTDIR)\scrollbar-x.obj \
793 $(OUTDIR)\xgccache.obj \
795 $(OUTDIR)\xselect.obj
800 $(OUTDIR)\console-msw.obj \
801 $(OUTDIR)\device-msw.obj \
802 $(OUTDIR)\event-msw.obj \
803 $(OUTDIR)\frame-msw.obj \
804 $(OUTDIR)\glyphs-msw.obj \
805 $(OUTDIR)\menubar-msw.obj \
806 $(OUTDIR)\objects-msw.obj \
807 $(OUTDIR)\redisplay-msw.obj \
808 $(OUTDIR)\scrollbar-msw.obj \
809 $(OUTDIR)\select-msw.obj \
818 $(OUTDIR)\input-method-xlib.obj \
820 $(OUTDIR)\mule-charset.obj \
821 $(OUTDIR)\mule-ccl.obj \
822 $(OUTDIR)\mule-coding.obj
833 $(TEMACS_CODING_OBJS)\
835 $(TEMACS_DEBUG_OBJS)\
836 $(OUTDIR)\abbrev.obj \
837 $(OUTDIR)\alloc.obj \
838 $(OUTDIR)\alloca.obj \
839 $(OUTDIR)\blocktype.obj \
840 $(OUTDIR)\buffer.obj \
841 $(OUTDIR)\bytecode.obj \
842 $(OUTDIR)\callint.obj \
843 $(OUTDIR)\callproc.obj \
844 $(OUTDIR)\casefiddle.obj \
845 $(OUTDIR)\casetab.obj \
846 $(OUTDIR)\chartab.obj \
847 $(OUTDIR)\cmdloop.obj \
849 $(OUTDIR)\console-stream.obj \
850 $(OUTDIR)\console.obj \
852 $(OUTDIR)\device.obj \
853 $(OUTDIR)\dired.obj \
855 $(OUTDIR)\doprnt.obj \
856 $(OUTDIR)\dragdrop.obj \
857 $(OUTDIR)\dynarr.obj \
858 $(OUTDIR)\editfns.obj \
859 $(OUTDIR)\elhash.obj \
860 $(OUTDIR)\emacs.obj \
862 $(OUTDIR)\event-stream.obj \
863 $(OUTDIR)\events.obj \
864 $(OUTDIR)\extents.obj \
865 $(OUTDIR)\faces.obj \
866 $(OUTDIR)\file-coding.obj \
867 $(OUTDIR)\fileio.obj \
868 $(OUTDIR)\filemode.obj \
869 $(OUTDIR)\floatfns.obj \
871 $(OUTDIR)\font-lock.obj \
872 $(OUTDIR)\frame.obj \
873 $(OUTDIR)\free-hook.obj \
874 $(OUTDIR)\general.obj \
875 $(OUTDIR)\glyphs.obj \
876 $(OUTDIR)\glyphs-eimage.obj \
877 $(OUTDIR)\gmalloc.obj \
880 $(OUTDIR)\indent.obj \
881 $(OUTDIR)\imgproc.obj \
882 $(OUTDIR)\insdel.obj \
884 $(OUTDIR)\keymap.obj \
885 $(OUTDIR)\line-number.obj \
886 $(OUTDIR)\lread.obj \
887 $(OUTDIR)\lstream.obj \
888 $(OUTDIR)\macros.obj \
889 $(OUTDIR)\menubar.obj \
890 $(OUTDIR)\marker.obj \
892 $(OUTDIR)\minibuf.obj \
894 $(OUTDIR)\ntheap.obj \
895 $(OUTDIR)\ntplay.obj \
896 $(OUTDIR)\ntproc.obj \
897 $(OUTDIR)\objects.obj \
898 $(OUTDIR)\opaque.obj \
899 $(OUTDIR)\print.obj \
900 $(OUTDIR)\process.obj \
901 $(OUTDIR)\process-nt.obj \
902 $(OUTDIR)\profile.obj \
903 $(OUTDIR)\rangetab.obj \
904 $(OUTDIR)\realpath.obj \
905 $(OUTDIR)\redisplay-output.obj \
906 $(OUTDIR)\redisplay.obj \
907 $(OUTDIR)\regex.obj \
908 $(OUTDIR)\scrollbar.obj \
909 $(OUTDIR)\search.obj \
910 $(OUTDIR)\signal.obj \
911 $(OUTDIR)\sound.obj \
912 $(OUTDIR)\specifier.obj \
913 $(OUTDIR)\strftime.obj \
914 $(OUTDIR)\symbols.obj \
915 $(OUTDIR)\syntax.obj \
916 $(OUTDIR)\sysdep.obj \
917 $(OUTDIR)\tparam.obj \
919 $(OUTDIR)\unexnt.obj \
920 $(OUTDIR)\vm-limit.obj \
921 $(OUTDIR)\widget.obj \
922 $(OUTDIR)\window.obj \
931 {$(TEMACS_SRC)}.c{$(OUTDIR)}.obj:
932 $(CCV) $(TEMACS_FLAGS) $< -Fo$@ -Fr$*.sbr
934 $(OUTDIR)\TopLevelEmacsShell.obj: $(TEMACS_SRC)\EmacsShell-sub.c
935 $(CCV) $(TEMACS_FLAGS) -DDEFINE_TOP_LEVEL_EMACS_SHELL $** -Fo$@
937 $(OUTDIR)\TransientEmacsShell.obj: $(TEMACS_SRC)\EmacsShell-sub.c
938 $(CCV) $(TEMACS_FLAGS) -DDEFINE_TRANSIENT_EMACS_SHELL $** -Fo$@
940 $(OUTDIR)\alloc.obj: $(TEMACS_SRC)\alloc.c $(TEMACS_SRC)\puresize-adjust.h
942 #$(TEMACS_SRC)\Emacs.ad.h: $(XEMACS)\etc\Emacs.ad
943 # !"sed -f ad2c.sed < $(XEMACS)\etc\Emacs.ad > $(TEMACS_SRC)\Emacs.ad.h"
945 #$(TEMACS_SRC)\paths.h: $(TEMACS_SRC)\paths.h.in
946 # !"cd $(TEMACS_SRC); cp paths.h.in paths.h"
948 $(TEMACS): $(TEMACS_INCLUDES) $(TEMACS_OBJS)
950 $(TEMACS_LFLAGS) $(TEMACS_OBJS) $(TEMACS_LIBS)
953 $(NT)\xemacs.res: xemacs.rc
956 # MSDEV Source Broswer file. "*.sbr" is too inclusive but this is harmless
957 $(TEMACS_BROWSE): $(TEMACS_OBJS)
958 @dir /b/s $(OUTDIR)\*.sbr > bscmake.tmp
959 bscmake -nologo -o$@ @bscmake.tmp
962 #------------------------------------------------------------------------------
968 $(DOC): $(LIB_SRC)\make-docfile.exe
970 $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages
971 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC1)
972 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC2)
973 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC3)
974 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC4)
975 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC5)
976 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC6)
977 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC7)
978 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC8)
979 $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC9)
981 $(LISP)\Installation.el: Installation.el
982 copy Installation.el $(LISP)
984 update-elc: $(LISP)\Installation.el
985 set EMACSBOOTSTRAPLOADPATH=$(LISP)
986 $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\update-elc.el
988 # This rule dumps xemacs and then possibly spawns sub-make if PURESPACE
989 # requirements has changed.
990 dump-xemacs: $(TEMACS)
991 @echo >$(TEMACS_DIR)\SATISFIED
993 set EMACSBOOTSTRAPLOADPATH=$(LISP)
994 -1 $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\loadup.el dump
996 @if not exist $(TEMACS_DIR)\SATISFIED nmake -nologo -f xemacs.mak $@
998 #------------------------------------------------------------------------------
1000 # use this rule to build the complete system
1001 all: $(OUTDIR)\nul $(LASTFILE) $(LWLIB) $(LIB_SRC_TOOLS) $(RUNEMACS) \
1002 $(TEMACS) $(TEMACS_BROWSE) update-elc $(DOC) dump-xemacs
1006 # use this rule to install the system
1008 @echo Installing in $(INSTALL_DIR) ...
1009 @xcopy /q PROBLEMS "$(INSTALL_DIR)\"
1010 @xcopy /q README "$(INSTALL_DIR)\lock\"
1011 @del "$(INSTALL_DIR)\lock\README"
1012 @xcopy /q $(LIB_SRC)\*.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)\"
1013 @copy $(LIB_SRC)\DOC "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)"
1014 @copy $(CONFIG_VALUES) "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)"
1015 @copy $(XEMACS)\src\xemacs.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)"
1016 @copy $(RUNEMACS) "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)"
1017 @xcopy /e /q $(XEMACS)\etc "$(INSTALL_DIR)\etc\"
1018 @xcopy /e /q $(XEMACS)\info "$(INSTALL_DIR)\info\"
1019 @xcopy /e /q $(XEMACS)\lisp "$(INSTALL_DIR)\lisp\"
1031 cd $(XEMACS)\$(TEMACS_DIR)
1032 del puresize-adjust.h
1049 del $(CONFIG_VALUES)
1051 -del /s /q *.bak *.elc *.orig *.rej
1054 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
1056 # DO NOT DELETE THIS LINE -- make depend depends on it.