]> code.delx.au - gnu-emacs/blobdiff - src/makefile.nt
(bdf-cache-file): Use convert-standard-filename.
[gnu-emacs] / src / makefile.nt
index 67c24d1151fc720f59768a3e763dc5632173fae0..e4a1a49787dfca88409dee1982af5dc43c8bfe4b 100644 (file)
@@ -1,4 +1,4 @@
-#  Makefile for GNU Emacs on Windows NT
+#  Makefile for GNU Emacs on the Microsoft W32 API.
 #  Copyright (c) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
 #   Tim Fleehart (apollo@online.com)            17-Apr-92
 #   Geoff Voelker (voelker@cs.washington.edu)   11-20-93
@@ -16,8 +16,9 @@
 #  GNU General Public License for more details.
 #  
 #  You should have received a copy of the GNU General Public License
-#  along with GNU Emacs; see the file COPYING.  If not, write to
-#  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+#  along with GNU Emacs; see the file COPYING.  If not, write to the
+#  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+#  Boston, MA 02111-1307, USA.
 #
 
 # 
 #
 !include ..\nt\makefile.def
 
+SUBSYSTEM=console
+
 #
 # HAVE_CONFIG_H is required by some generic gnu sources stuck into
 # the emacs source tree.
 #
 LOCAL_FLAGS     = -Demacs=1 -DWINDOWSNT -DDOS_NT -DHAVE_CONFIG_H -I..\nt\inc
+!ifdef NTGUI
+LOCAL_FLAGS     = $(LOCAL_FLAGS) -DHAVE_NTGUI=1
+!endif
 
 EMACS           = $(BLD)\emacs.exe
 TEMACS          = $(BLD)\temacs.exe
+TLIB0           = $(BLD)\temacs0.lib
 TLIB1           = $(BLD)\temacs1.lib
 TLIB2           = $(BLD)\temacs2.lib
-TOBJ            = $(BLD)\emacs.obj
+!IFDEF NTGUI
+TLIBW32         = $(BLD)\temacw32.lib
+!ELSE
+TLIBW32                =
+!ENDIF
+TOBJ            = $(BLD)\firstfile.obj
+!if $(MSVCNT11)
+TRES           = $(BLD)\emacs.res
+!else
 TRES           = $(BLD)\emacs.rbj
+!endif
+TLASTLIB       = $(BLD)\lastfile.lib
 
-LINK_FLAGS      = $(ARCH_LDFLAGS) -stack:0x1000000 -base:0xD00000 -debug:full -debugtype:cv -machine:$(ARCH) -subsystem:console -entry:_start 
-
-# -debug:PARTIAL -debugtype:COFF
+# see comments in allocate_heap in w32heap.c before changing any of the
+# -stack, -heap, or -base settings.
+!if "$(BUILD_TYPE)" == "spd"
+LINK_FLAGS      = $(ARCH_LDFLAGS) -stack:0x00800000 -heap:0x00100000 -base:0x01000000 -debug:full -pdb:$(BLD)\temacs.pdb -machine:$(ARCH) -subsystem:$(SUBSYSTEM) -entry:_start -map:$(BLD)\temacs.map -swaprun:net -swaprun:cd
+!else
+LINK_FLAGS      = $(ARCH_LDFLAGS) -stack:0x00800000 -heap:0x00100000 -base:0x01000000 -debug:full -pdb:none -machine:$(ARCH) -subsystem:$(SUBSYSTEM) -entry:_start -map:$(BLD)\temacs.map -swaprun:net -swaprun:cd
+!endif
 
 #
 # Split up the objects into two sets so that we don't run out of
 # command line space when we link them into a library.
 #
+# Put emacs.obj in a separate lib, since we need to have firstfile.obj
+# as the "main" object file when linking.
+#
+OBJ0 =  $(BLD)\emacs.obj
+
 OBJ1 =  $(BLD)\abbrev.obj       \
        $(BLD)\alloc.obj        \
        $(BLD)\alloca.obj       \
@@ -71,18 +97,17 @@ OBJ1 =  $(BLD)\abbrev.obj       \
        $(BLD)\insdel.obj       \
        $(BLD)\keyboard.obj     \
        $(BLD)\keymap.obj       \
-       $(BLD)\lastfile.obj     \
        $(BLD)\lread.obj        \
        $(BLD)\macros.obj       \
        $(BLD)\marker.obj       \
        $(BLD)\minibuf.obj      \
        $(BLD)\mocklisp.obj
 
-OBJ2 =  $(BLD)\nt.obj           \
-       $(BLD)\ntheap.obj       \
-       $(BLD)\ntinevt.obj      \
-       $(BLD)\ntproc.obj       \
-       $(BLD)\ntterm.obj       \
+OBJ2 =  $(BLD)\w32.obj           \
+       $(BLD)\w32heap.obj       \
+       $(BLD)\w32inevt.obj      \
+       $(BLD)\w32proc.obj       \
+       $(BLD)\w32console.obj       \
        $(BLD)\print.obj        \
        $(BLD)\process.obj      \
        $(BLD)\regex.obj        \
@@ -94,7 +119,7 @@ OBJ2 =  $(BLD)\nt.obj           \
        $(BLD)\termcap.obj      \
        $(BLD)\tparam.obj       \
        $(BLD)\undo.obj         \
-       $(BLD)\unexnt.obj       \
+       $(BLD)\unexw32.obj       \
        $(BLD)\window.obj       \
        $(BLD)\xdisp.obj        \
        $(BLD)\casetab.obj      \
@@ -106,16 +131,39 @@ OBJ2 =  $(BLD)\nt.obj           \
        $(BLD)\textprop.obj     \
        $(BLD)\vm-limit.obj     \
        $(BLD)\region-cache.obj \
-       $(BLD)\strftime.obj
-
-LIBS =  $(TLIB1)                        \
-       $(TLIB2)                        \
-       $(SYS_LIB_DIR)\setargv.obj      \
-       $(SYS_LIB_DIR)\kernel32.lib     \
-       $(SYS_LIB_DIR)\advapi32.lib     \
-       $(SYS_LIB_DIR)\user32.lib       \
-       $(SYS_LIB_DIR)\libc.lib         \
-       $(COMPAT_LIB)
+       $(BLD)\strftime.obj     \
+       $(BLD)\charset.obj      \
+       $(BLD)\coding.obj       \
+       $(BLD)\category.obj     \
+       $(BLD)\ccl.obj          \
+       $(BLD)\fontset.obj
+
+WIN32OBJ = $(BLD)\w32term.obj  \
+          $(BLD)\w32xfns.obj   \
+          $(BLD)\w32fns.obj    \
+          $(BLD)\w32faces.obj  \
+          $(BLD)\w32select.obj \
+          $(BLD)\w32menu.obj   \
+          $(BLD)\w32reg.obj
+
+LIBS =  $(TLIB0)       \
+       $(TLIB1)        \
+       $(TLIB2)        \
+!IFDEF NTGUI
+       $(TLIBW32)      \
+!ENDIF
+       $(TLASTLIB)     \
+!IFDEF NTGUI
+       gdi32.lib       \
+       comdlg32.lib    \
+!ENDIF
+#      libcmt.lib      \
+       $(BASE_LIBS)    \
+       $(ADVAPI32)     \
+       user32.lib      \
+       mpr.lib         \
+       shell32.lib     \
+       setargv.obj
 
 #
 # Build the executable and dump it.
@@ -126,17 +174,17 @@ all:            $(BLD) $(EMACS)
 # Headers we would preprocess if we could.
 #
 PREPARED_HEADERS = config.h paths.h
-config.h:      ..\nt\config.h
-               cp ..\nt\config.h config.h
+config.h:      ..\nt\$(CONFIG_H)
+               $(CP) $** $@
 paths.h:       ..\nt\paths.h
-               cp ..\nt\paths.h paths.h
+               $(CP) $** $@
 
 #
 # Make sure we have the DOC file in the right place.
 #
-DOC            = obj\etc\DOC-X
+DOC            = $(OBJDIR)\etc\DOC-X
 $(DOC):;       cd ..\lib-src 
-               - del /q DOC-X
+               - $(DEL) DOC-X
                $(MAKE) -f makefile.nt all
                cd ..\src
 
@@ -147,36 +195,59 @@ emacs:          $(EMACS)
 $(EMACS):       $(PREPARED_HEADERS) $(DOC) $(TEMACS)
                cd $(BLD)
                temacs.exe -batch -l loadup dump
+               copy temacs.map emacs.map
                cd ..\..
 
 #
 # The undumped executable
 #
-temacs:         $(TEMACS)
-$(TEMACS):      $(BLD) $(TLIB1) $(TLIB2) $(TOBJ) $(TRES)
+temacs:         $(BLD) $(TEMACS)
+$(TEMACS):      $(TLIB0) $(TLIB1) $(TLIB2) $(TLIBW32) $(TLASTLIB) $(TOBJ) $(TRES)
                $(LINK) -out:$(TEMACS) $(LINK_FLAGS) $(TOBJ) $(TRES) $(LIBS)
 
 #
-# The resource file.
+# The resource file.  NT 3.10 requires the use of cvtres; even though
+# it is not necessary on later versions, it is still ok to use it.
 #
 $(TRES):       ..\nt\emacs.rc
                $(RC) -i..\nt -Fo$(BLD)\emacs.res $**
+!if !$(MSVCNT11)
                $(CVTRES) -r -$(ARCH) -o $@ $(BLD)\emacs.res
+!endif
 
 #
 # Build the library.  Split up the build into two phases...otherwise we 
 # run out of command line space.
 #
+$(TLIB0):       $(OBJ0)
+               @- $(AR) -out:$@ $**
 $(TLIB1):       $(OBJ1)
                @- $(AR) -out:$@ $**
 $(TLIB2):      $(OBJ2)
                @- $(AR) -out:$@ $**
+!IFDEF NTGUI
+$(TLIBW32):    $(WIN32OBJ)
+               @- $(AR) -out:$@ $**
+!ENDIF
+
+#
+# Place lastfile.obj in its own library so that it can be loaded after
+# the source libraries but before any system libraries.  Doing so defines
+# the end of Emacs' data section portably across compilers and systems.
+#
+$(TLASTLIB):   $(BLD)\lastfile.obj
+               @- $(AR) -out:$@ $**
 
 #
 # Object files.
 #
+!IF ($(_NMAKE_VER) == $(_NMAKE_VER_4))
 .c{$(BLD)}.obj:
-               $(CC) $(CFLAGS) -Fo$@ $<
+               $(CC) $(CFLAGS) -Fo$(OBJDIR)\i386\ $<
+!ELSE
+.c{$(BLD)}.obj::
+               $(CC) $(CFLAGS) -Fo$(OBJDIR)\i386\ $<
+!ENDIF
 
 #
 # Assuming INSTALL_DIR is defined, build and install emacs in it.
@@ -188,15 +259,21 @@ install:        all
 #
 # Maintenance
 # 
-clean:;         - del /q *~
+clean:;         - $(DEL) *~ s\*~
+               - $(DEL) *.pdb config.h paths.h
+               - $(DEL) *.orig *.rej *.crlf
+               - $(DEL) s\*.orig s\*.rej s\*.crlf
                - $(DEL_TREE) deleted
                - $(DEL_TREE) obj
+               - $(DEL_TREE) obj-spd
 
 #
 # These files are the ones that compile conditionally on CANNOT_DUMP...
 # this target is mostly used for debugging.
 #
-cleandump:;     cd $(BLD) && - del callproc.obj data.obj dispnew.obj doc.obj editfns.obj emacs.obj lread.obj process.obj sysdep.obj term.obj ntheap.obj unexnt.obj
+cleandump:;     cd $(BLD)
+               - $(DEL) callproc.obj data.obj dispnew.obj doc.obj editfns.obj emacs.obj lread.obj process.obj sysdep.obj term.obj w32heap.obj unexw32.obj
+               cd ..\..
 
 
 ### DEPENDENCIES ###
@@ -206,7 +283,7 @@ SRC         = .
 
 $(BLD)\abbrev.obj : \
        $(SRC)\abbrev.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -216,7 +293,7 @@ $(BLD)\abbrev.obj : \
 
 $(BLD)\alloc.obj : \
        $(SRC)\alloc.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -231,10 +308,10 @@ $(BLD)\alloc.obj : \
 
 $(BLD)\alloca.obj : \
        $(SRC)\alloca.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\s\windowsnt.h \
+       $(SRC)\s\ms-w32.h \
        $(SRC)\m\intel386.h \
        $(SRC)\config.h \
        $(SRC)\blockinput.h
@@ -242,7 +319,7 @@ $(BLD)\alloca.obj : \
 $(BLD)\buffer.obj : \
        $(SRC)\buffer.c \
        $(EMACS_ROOT)\nt\inc\sys\param.h \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -257,12 +334,18 @@ $(BLD)\buffer.obj : \
 
 $(BLD)\bytecode.obj : \
        $(SRC)\bytecode.c \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
        $(SRC)\buffer.h \
        $(SRC)\syntax.h
 
 $(BLD)\callint.obj : \
        $(SRC)\callint.c \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
        $(SRC)\buffer.h \
        $(SRC)\commands.h \
@@ -272,7 +355,7 @@ $(BLD)\callint.obj : \
 
 $(BLD)\callproc.obj : \
        $(SRC)\callproc.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\msdos.h \
@@ -288,7 +371,7 @@ $(BLD)\callproc.obj : \
 
 $(BLD)\casefiddle.obj : \
        $(SRC)\casefiddle.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -299,7 +382,7 @@ $(BLD)\casefiddle.obj : \
 
 $(BLD)\casetab.obj : \
        $(SRC)\casetab.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -307,7 +390,7 @@ $(BLD)\casetab.obj : \
 
 $(BLD)\cm.obj : \
        $(SRC)\cm.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\cm.h \
@@ -315,7 +398,7 @@ $(BLD)\cm.obj : \
 
 $(BLD)\cmds.obj : \
        $(SRC)\cmds.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -325,7 +408,7 @@ $(BLD)\cmds.obj : \
 
 $(BLD)\data.obj : \
        $(SRC)\data.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -335,7 +418,7 @@ $(BLD)\data.obj : \
 
 $(BLD)\dired.obj : \
        $(SRC)\dired.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\vmsdir.h \
@@ -347,7 +430,7 @@ $(BLD)\dired.obj : \
 
 $(BLD)\dispnew.obj : \
        $(SRC)\dispnew.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -366,13 +449,14 @@ $(BLD)\dispnew.obj : \
        $(EMACS_ROOT)\nt\inc\sys\ioctl.h \
        $(EMACS_ROOT)\nt\inc\sys\file.h \
        $(SRC)\systty.h \
+       $(SRC)\w32term.h \
        $(SRC)\xterm.h \
        $(SRC)\vmstime.h \
        $(SRC)\systime.h
 
 $(BLD)\doc.obj : \
        $(SRC)\doc.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(EMACS_ROOT)\nt\inc\sys\file.h \
@@ -382,13 +466,13 @@ $(BLD)\doc.obj : \
 
 $(BLD)\doprnt.obj : \
        $(SRC)\doprnt.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h
 
 $(BLD)\dosfns.obj : \
        $(SRC)\dosfns.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -401,7 +485,7 @@ $(BLD)\dosfns.obj : \
 
 $(BLD)\editfns.obj : \
        $(SRC)\editfns.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\uaf.h \
@@ -417,7 +501,7 @@ $(BLD)\editfns.obj : \
 
 $(BLD)\emacs.obj : \
        $(SRC)\emacs.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -432,7 +516,7 @@ $(BLD)\emacs.obj : \
 
 $(BLD)\eval.obj : \
        $(SRC)\eval.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -442,7 +526,7 @@ $(BLD)\eval.obj : \
 
 $(BLD)\fileio.obj : \
        $(SRC)\fileio.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\uaf.h \
@@ -462,7 +546,7 @@ $(BLD)\fileio.obj : \
 
 $(BLD)\filelock.obj : \
        $(SRC)\filelock.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\uaf.h \
@@ -477,16 +561,22 @@ $(BLD)\filelock.obj : \
 
 $(BLD)\filemode.obj : \
        $(SRC)\filemode.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\s\windowsnt.h \
+       $(SRC)\s\ms-w32.h \
        $(SRC)\m\intel386.h \
        $(SRC)\config.h
 
+$(BLD)\firstfile.obj : \
+       $(SRC)\firstfile.c \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h
+
 $(BLD)\floatfns.obj : \
        $(SRC)\floatfns.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -494,7 +584,7 @@ $(BLD)\floatfns.obj : \
 
 $(BLD)\fns.obj : \
        $(SRC)\fns.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -506,7 +596,7 @@ $(BLD)\fns.obj : \
 
 $(BLD)\frame.obj : \
        $(SRC)\frame.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -520,17 +610,17 @@ $(BLD)\frame.obj : \
 $(BLD)\getloadavg.obj : \
        $(SRC)\getloadavg.c \
        $(EMACS_ROOT)\nt\inc\sys\param.h \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\s\windowsnt.h \
+       $(SRC)\s\ms-w32.h \
        $(SRC)\m\intel386.h \
        $(SRC)\config.h \
        $(EMACS_ROOT)\nt\inc\sys\file.h
 
 $(BLD)\gmalloc.obj : \
        $(SRC)\gmalloc.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(EMACS_ROOT)\nt\inc\sys\param.h \
@@ -539,14 +629,14 @@ $(BLD)\gmalloc.obj : \
 
 $(BLD)\hftctl.obj : \
        $(SRC)\hftctl.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(EMACS_ROOT)\nt\inc\sys\ioctl.h
 
 $(BLD)\indent.obj : \
        $(SRC)\indent.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -563,7 +653,7 @@ $(BLD)\indent.obj : \
 
 $(BLD)\insdel.obj : \
        $(SRC)\insdel.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -575,7 +665,7 @@ $(BLD)\insdel.obj : \
 
 $(BLD)\intervals.obj : \
        $(SRC)\intervals.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -587,7 +677,7 @@ $(BLD)\intervals.obj : \
 
 $(BLD)\keyboard.obj : \
        $(SRC)\keyboard.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\termchar.h \
@@ -609,13 +699,14 @@ $(BLD)\keyboard.obj : \
        $(EMACS_ROOT)\nt\inc\sys\ioctl.h \
        $(EMACS_ROOT)\nt\inc\sys\file.h \
        $(SRC)\systty.h \
+       $(SRC)\w32term.h \
        $(SRC)\xterm.h \
        $(SRC)\vmstime.h \
        $(SRC)\systime.h
 
 $(BLD)\keymap.obj : \
        $(SRC)\keymap.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -626,11 +717,14 @@ $(BLD)\keymap.obj : \
        $(SRC)\blockinput.h
 
 $(BLD)\lastfile.obj : \
-       $(SRC)\lastfile.c
+       $(SRC)\lastfile.c \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h
 
 $(BLD)\lread.obj : \
        $(SRC)\lread.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(EMACS_ROOT)\nt\inc\sys\file.h \
@@ -644,7 +738,7 @@ $(BLD)\lread.obj : \
 
 $(BLD)\macros.obj : \
        $(SRC)\macros.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -655,7 +749,7 @@ $(BLD)\macros.obj : \
 
 $(BLD)\marker.obj : \
        $(SRC)\marker.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -663,7 +757,7 @@ $(BLD)\marker.obj : \
 
 $(BLD)\minibuf.obj : \
        $(SRC)\minibuf.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -676,62 +770,69 @@ $(BLD)\minibuf.obj : \
 
 $(BLD)\mocklisp.obj : \
        $(SRC)\mocklisp.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
        $(SRC)\buffer.h
 
-$(BLD)\nt.obj : \
-       $(SRC)\nt.c \
-       $(SRC)\s\windowsnt.h \
+$(BLD)\w32.obj : \
+       $(SRC)\w32.c \
+       $(SRC)\w32.h \
+       $(SRC)\s\ms-w32.h \
        $(SRC)\m\intel386.h \
        $(SRC)\config.h \
        $(SRC)\lisp.h \
        $(EMACS_ROOT)\nt\inc\pwd.h \
-       $(SRC)\ntheap.h
+       $(SRC)\w32heap.h
 
-$(BLD)\ntheap.obj : \
-       $(SRC)\ntheap.c \
-       $(SRC)\ntheap.h
+$(BLD)\w32heap.obj : \
+       $(SRC)\w32heap.c \
+       $(SRC)\w32heap.h \
+       $(SRC)\s\ms-w32.h \
+       $(SRC)\m\intel386.h \
+       $(SRC)\config.h
 
-$(BLD)\ntinevt.obj : \
-       $(SRC)\ntinevt.c \
-       $(SRC)\s\windowsnt.h \
+$(BLD)\w32inevt.obj : \
+       $(SRC)\w32inevt.c \
+       $(SRC)\s\ms-w32.h \
        $(SRC)\m\intel386.h \
        $(SRC)\config.h \
        $(SRC)\lisp.h \
        $(SRC)\frame.h \
        $(SRC)\blockinput.h \
-       $(SRC)\termhooks.h
+       $(SRC)\termhooks.h \
+       $(SRC)\w32heap.h \
+       $(SRC)\w32term.h
 
-$(BLD)\ntproc.obj : \
-       $(SRC)\ntproc.c \
-       $(SRC)\s\windowsnt.h \
+$(BLD)\w32proc.obj : \
+       $(SRC)\w32proc.c \
+       $(SRC)\s\ms-w32.h \
        $(SRC)\m\intel386.h \
        $(SRC)\config.h \
        $(SRC)\lisp.h \
-       $(SRC)\nt.h \
+       $(SRC)\w32.h \
+       $(SRC)\w32heap.h \
        $(SRC)\vmstime.h \
        $(SRC)\systime.h
 
-$(BLD)\ntterm.obj : \
-       $(SRC)\ntterm.c \
-       $(SRC)\s\windowsnt.h \
+$(BLD)\w32console.obj : \
+       $(SRC)\w32console.c \
+       $(SRC)\s\ms-w32.h \
        $(SRC)\m\intel386.h \
        $(SRC)\config.h \
        $(SRC)\lisp.h \
        $(SRC)\frame.h \
        $(SRC)\disptab.h \
        $(SRC)\termhooks.h \
-       $(SRC)\ntinevt.h
+       $(SRC)\w32inevt.h
 
 $(BLD)\prefix-args.obj : \
        $(SRC)\prefix-args.c
 
 $(BLD)\print.obj : \
        $(SRC)\print.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -745,7 +846,7 @@ $(BLD)\print.obj : \
 
 $(BLD)\process.obj : \
        $(SRC)\process.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(EMACS_ROOT)\nt\inc\sys\ioctl.h \
@@ -767,11 +868,11 @@ $(BLD)\process.obj : \
 
 $(BLD)\ralloc.obj : \
        $(SRC)\ralloc.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
-       $(SRC)\s\windowsnt.h \
+       $(SRC)\s\ms-w32.h \
        $(SRC)\m\intel386.h \
        $(SRC)\config.h \
        $(EMACS_ROOT)\nt\inc\sys\param.h \
@@ -779,10 +880,10 @@ $(BLD)\ralloc.obj : \
 
 $(BLD)\regex.obj : \
        $(SRC)\regex.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\s\windowsnt.h \
+       $(SRC)\s\ms-w32.h \
        $(SRC)\m\intel386.h \
        $(SRC)\config.h \
        $(SRC)\lisp.h \
@@ -792,7 +893,7 @@ $(BLD)\regex.obj : \
 
 $(BLD)\region-cache.obj : \
        $(SRC)\region-cache.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -801,7 +902,7 @@ $(BLD)\region-cache.obj : \
 
 $(BLD)\scroll.obj : \
        $(SRC)\scroll.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\termchar.h \
@@ -811,7 +912,7 @@ $(BLD)\scroll.obj : \
 
 $(BLD)\search.obj : \
        $(SRC)\search.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -824,14 +925,13 @@ $(BLD)\search.obj : \
 
 $(BLD)\strftime.obj : \
        $(SRC)\strftime.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h
-       $(CC) $(CFLAGS) -Dstrftime=emacs_strftime -Fo$@ strftime.c
 
 $(BLD)\sunfns.obj : \
        $(SRC)\sunfns.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -841,7 +941,7 @@ $(BLD)\sunfns.obj : \
 
 $(BLD)\syntax.obj : \
        $(SRC)\syntax.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -851,7 +951,7 @@ $(BLD)\syntax.obj : \
 
 $(BLD)\sysdep.obj : \
        $(SRC)\sysdep.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -884,7 +984,7 @@ $(BLD)\sysdep.obj : \
 
 $(BLD)\term.obj : \
        $(SRC)\term.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\termchar.h \
@@ -898,7 +998,7 @@ $(BLD)\term.obj : \
 
 $(BLD)\termcap.obj : \
        $(SRC)\termcap.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(EMACS_ROOT)\nt\inc\sys\file.h
@@ -908,7 +1008,7 @@ $(BLD)\terminfo.obj : \
 
 $(BLD)\textprop.obj : \
        $(SRC)\textprop.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -919,33 +1019,36 @@ $(BLD)\textprop.obj : \
 
 $(BLD)\tparam.obj : \
        $(SRC)\tparam.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h
 
 $(BLD)\undo.obj : \
        $(SRC)\undo.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
        $(SRC)\buffer.h \
        $(SRC)\commands.h
 
-$(BLD)\unexnt.obj : \
-       $(SRC)\unexnt.c \
-       $(SRC)\ntheap.h
+$(BLD)\unexw32.obj : \
+       $(SRC)\unexw32.c \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h \
+       $(SRC)\w32heap.h
 
 $(BLD)\vm-limit.obj : \
        $(SRC)\vm-limit.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\mem-limits.h     
 
 $(BLD)\widget.obj : \
        $(SRC)\widget.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -957,7 +1060,7 @@ $(BLD)\widget.obj : \
 
 $(BLD)\window.obj : \
        $(SRC)\window.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -972,7 +1075,7 @@ $(BLD)\window.obj : \
 
 $(BLD)\xdisp.obj : \
        $(SRC)\xdisp.c \
-       $(EMACS_ROOT)\src\s\windowsnt.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
@@ -987,3 +1090,106 @@ $(BLD)\xdisp.obj : \
        $(SRC)\termhooks.h \
        $(SRC)\dispextern.h \
        $(SRC)\intervals.h
+
+$(BLD)\w32faces.obj: \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h \
+       $(SRC)\w32faces.c \
+       $(SRC)\lisp.h \
+       $(SRC)\w32term.h \
+       $(SRC)\w32gui.h \
+       $(SRC)\buffer.h \
+       $(SRC)\dispextern.h \
+       $(SRC)\frame.h \
+       $(SRC)\blockinput.h \
+       $(SRC)\window.h \
+       $(SRC)\intervals.h
+
+$(BLD)\w32fns.obj: \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h \
+       $(SRC)\w32fns.c \
+       $(SRC)\x-list-font.c \
+       $(SRC)\lisp.h \
+       $(SRC)\w32term.h \
+       $(SRC)\w32gui.h \
+       $(SRC)\frame.h \
+       $(SRC)\window.h \
+       $(SRC)\buffer.h \
+       $(SRC)\dispextern.h \
+       $(SRC)\keyboard.h \
+       $(SRC)\blockinput.h \
+       $(SRC)\paths.h \
+       $(SRC)\w32heap.h \
+       $(SRC)\termhooks.h
+
+$(BLD)\w32menu.obj: \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h \
+       $(SRC)\w32menu.c \
+       $(SRC)\lisp.h \
+       $(SRC)\termhooks.h \
+       $(SRC)\frame.h \
+       $(SRC)\window.h \
+       $(SRC)\keyboard.h \
+       $(SRC)\blockinput.h \
+       $(SRC)\buffer.h
+
+$(BLD)\w32term.obj: \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h \
+       $(SRC)\w32term.c \
+       $(SRC)\lisp.h \
+       $(SRC)\blockinput.h \
+       $(SRC)\w32term.h \
+       $(SRC)\w32gui.h \
+       $(SRC)\systty.h \
+       $(SRC)\systime.h \
+       $(SRC)\frame.h \
+       $(SRC)\dispextern.h \
+       $(SRC)\termhooks.h \
+       $(SRC)\termopts.h \
+       $(SRC)\termchar.h \
+       $(SRC)\gnu.h \
+       $(SRC)\disptab.h \
+       $(SRC)\buffer.h \
+       $(SRC)\window.h \
+       $(SRC)\keyboard.h \
+       $(SRC)\intervals.h
+
+$(BLD)\w32select.obj: \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h \
+       $(SRC)\w32select.c \
+       $(SRC)\lisp.h \
+       $(SRC)\w32term.h \
+       $(SRC)\w32gui.h \
+       $(SRC)\dispextern.h \
+       $(SRC)\frame.h \
+       $(SRC)\blockinput.h
+
+$(BLD)\w32reg.obj: \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h \
+       $(SRC)\w32reg.c \
+       $(SRC)\lisp.h \
+       $(SRC)\w32term.h \
+       $(SRC)\w32gui.h \
+       $(SRC)\blockinput.h
+
+$(BLD)\w32xfns.obj: \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h \
+       $(SRC)\w32xfns.c \
+       $(SRC)\lisp.h \
+       $(SRC)\w32term.h \
+       $(SRC)\w32.h \
+       $(SRC)\frame.h \
+       $(SRC)\blockinput.h