* lisp.h (struct Lisp_Symbol): Replace field "name" with a lisp
[bpt/emacs.git] / src / makefile.nt
index 7ecb647..e3d0584 100644 (file)
@@ -4,24 +4,24 @@
 #   Geoff Voelker (voelker@cs.washington.edu)   11-20-93
 #
 #  This file is part of GNU Emacs.
-#  
+#
 #  GNU Emacs is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
 #  the Free Software Foundation; either version 2, or (at your option)
 #  any later version.
-#  
+#
 #  GNU Emacs is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  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, Inc., 59 Temple Place - Suite 330,
 #  Boston, MA 02111-1307, USA.
 #
 
-# 
+#
 # Sets up the system dependent macros.
 #
 !include ..\nt\makefile.def
@@ -33,9 +33,27 @@ SUBSYSTEM=console
 # 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
+!ifdef USE_CRT_DLL
+LOCAL_FLAGS     = $(LOCAL_FLAGS) -DUSE_CRT_DLL=1 -MD
+libc            = msvcrt.lib
+LINK_FLAGS      = -nodefaultlib
+!endif
+
+# From MSVC 5.0 onwards, it seem base relocation information is not included,
+# at least in release builds.  We need to ensure the reloc info is included
+# in order to use the MSVC profiler.
+!IF ("$(_NMAKE_VER)" == "$(_NMAKE_VER_4)")
+EXTRA_LINK      =
+!ELSE
+EXTRA_LINK      = -profile
+!ENDIF
 
 EMACS           = $(BLD)\emacs.exe
 TEMACS          = $(BLD)\temacs.exe
+TEMACS_TMP      = $(BLD)\temacs.bin
 TLIB0           = $(BLD)\temacs0.lib
 TLIB1           = $(BLD)\temacs1.lib
 TLIB2           = $(BLD)\temacs2.lib
@@ -55,9 +73,9 @@ TLASTLIB      = $(BLD)\lastfile.lib
 # 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 -pdb:$(BLD)\temacs.pdb -machine:$(ARCH) -subsystem:$(SUBSYSTEM) -entry:_start -map:$(BLD)\temacs.map
+LINK_FLAGS      = $(LINK_FLAGS) $(ARCH_LDFLAGS) -stack:0x00800000 -heap:0x00100000 -base:0x01000000 -debug:full -debugtype:both -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:$(BLD)\temacs.pdb -machine:$(ARCH) -subsystem:$(SUBSYSTEM) -entry:_start -map:$(BLD)\temacs.map
+LINK_FLAGS      = $(LINK_FLAGS) $(ARCH_LDFLAGS) -stack:0x00800000 -heap:0x00100000 -base:0x01000000 -debug:full -debugtype:both -pdb:none -machine:$(ARCH) -subsystem:$(SUBSYSTEM) -entry:_start -map:$(BLD)\temacs.map -swaprun:net -swaprun:cd $(EXTRA_LINK)
 !endif
 
 #
@@ -72,6 +90,7 @@ OBJ0 =  $(BLD)\emacs.obj
 OBJ1 =  $(BLD)\abbrev.obj       \
        $(BLD)\alloc.obj        \
        $(BLD)\alloca.obj       \
+       $(BLD)\atimer.obj       \
        $(BLD)\buffer.obj       \
        $(BLD)\bytecode.obj     \
        $(BLD)\callint.obj      \
@@ -97,8 +116,8 @@ OBJ1 =  $(BLD)\abbrev.obj       \
        $(BLD)\lread.obj        \
        $(BLD)\macros.obj       \
        $(BLD)\marker.obj       \
-       $(BLD)\minibuf.obj      \
-       $(BLD)\mocklisp.obj
+        $(BLD)\md5.obj          \
+       $(BLD)\minibuf.obj
 
 OBJ2 =  $(BLD)\w32.obj           \
        $(BLD)\w32heap.obj       \
@@ -124,6 +143,7 @@ OBJ2 =  $(BLD)\w32.obj           \
        $(BLD)\frame.obj        \
        $(BLD)\gmalloc.obj      \
        $(BLD)\intervals.obj    \
+       $(BLD)\composite.obj    \
        $(BLD)\ralloc.obj       \
        $(BLD)\textprop.obj     \
        $(BLD)\vm-limit.obj     \
@@ -138,10 +158,11 @@ OBJ2 =  $(BLD)\w32.obj           \
 WIN32OBJ = $(BLD)\w32term.obj  \
           $(BLD)\w32xfns.obj   \
           $(BLD)\w32fns.obj    \
-          $(BLD)\w32faces.obj  \
+          $(BLD)\xfaces.obj    \
           $(BLD)\w32select.obj \
           $(BLD)\w32menu.obj   \
-          $(BLD)\w32reg.obj
+          $(BLD)\w32reg.obj    \
+          $(BLD)\w32bdf.obj
 
 LIBS =  $(TLIB0)       \
        $(TLIB1)        \
@@ -165,42 +186,71 @@ LIBS =  $(TLIB0)  \
 #
 # Build the executable and dump it.
 #
-all:            $(BLD) $(EMACS) 
+all:            $(BLD) $(EMACS)
 
 #
 # Headers we would preprocess if we could.
 #
-PREPARED_HEADERS = config.h paths.h
+PREPARED_HEADERS = config.h epaths.h
 config.h:      ..\nt\$(CONFIG_H)
                $(CP) $** $@
-paths.h:       ..\nt\paths.h
+epaths.h:      ..\nt\paths.h
                $(CP) $** $@
 
 #
 # Make sure we have the DOC file in the right place.
 #
 DOC            = $(OBJDIR)\etc\DOC-X
-$(DOC):;       cd ..\lib-src 
+$(DOC):;       cd ..\lib-src
                - $(DEL) DOC-X
-               $(MAKE) -f makefile.nt all
+               $(MAKE) $(MFLAGS) -f makefile.nt all
                cd ..\src
 
 #
 # The dumped executable
 #
 emacs:          $(EMACS)
-$(EMACS):       $(PREPARED_HEADERS) $(DOC) $(TEMACS)
-               cd $(BLD)
-               temacs.exe -batch -l loadup dump
-               copy temacs.map emacs.map
-               cd ..\..
+$(EMACS):       $(DOC) $(TEMACS)
+               $(MAKEDIR)\$(BLD)\temacs.exe -batch -l loadup dump
 
 #
 # The undumped executable
+# Note the extra post-link step to insert a static preload heap section.
+# If preload runs out of memory, increase the last argument to addsection
+# (it is the preload heap size in MB).
 #
 temacs:         $(BLD) $(TEMACS)
-$(TEMACS):      $(TLIB0) $(TLIB1) $(TLIB2) $(TLIBW32) $(TLASTLIB) $(TOBJ) $(TRES)
-               $(LINK) -out:$(TEMACS) $(LINK_FLAGS) $(TOBJ) $(TRES) $(LIBS)
+$(TEMACS):      $(PREPARED_HEADERS) $(TLIB0) $(TLIB1) $(TLIB2) $(TLIBW32) $(TLASTLIB) $(TOBJ) $(TRES)
+               $(LINK) -out:$(TEMACS_TMP) $(LINK_FLAGS) $(TOBJ) $(TRES) $(LIBS)
+               ..\nt\$(BLD)\addsection $(TEMACS_TMP) $(TEMACS) EMHEAP 16
+
+bootstrap: bootstrap-emacs
+
+#
+# Build a temacs with a sufficiently large PURESIZE to load the
+# Lisp files from loadup.el in source form.
+#
+bootstrap-temacs: bootstrap-clean
+               $(MAKE) $(MFLAGS) -f makefile.nt temacs CFLAGS="$(CFLAGS) -DPURESIZE=5000000"
+
+#
+# Dump an Emacs executable named bootstrap-emacs containing the
+# files from loadup.el in source form.
+#
+bootstrap-emacs: bootstrap-temacs
+               $(MAKEDIR)\$(BLD)\temacs.exe -batch -l loadup bootstrap
+               - mkdir ..\bin
+               $(CP) $(EMACS) ..\bin
+
+#
+# Force recompile of files that depend on PURESIZE
+#
+bootstrap-clean:
+               - $(DEL) $(BLD)\alloc.obj
+               - $(DEL) $(BLD)\data.obj
+               - $(DEL) $(BLD)\intervals.obj
+               - $(DEL) $(BLD)\keyboard.obj
+               - $(DEL) $(BLD)\keymap.obj
 
 #
 # The resource file.  NT 3.10 requires the use of cvtres; even though
@@ -213,7 +263,7 @@ $(TRES):    ..\nt\emacs.rc
 !endif
 
 #
-# Build the library.  Split up the build into two phases...otherwise we 
+# Build the library.  Split up the build into two phases...otherwise we
 # run out of command line space.
 #
 $(TLIB0):       $(OBJ0)
@@ -233,13 +283,7 @@ $(TLIBW32):        $(WIN32OBJ)
 # the end of Emacs' data section portably across compilers and systems.
 #
 $(TLASTLIB):   $(BLD)\lastfile.obj
-               @- $(AR) -out:$@ $**
-
-#
-# Object files.
-#
-.c{$(BLD)}.obj:
-               $(CC) $(CFLAGS) -Fo$@ $<
+               @- $(AR) -out:$@ $**
 
 #
 # Assuming INSTALL_DIR is defined, build and install emacs in it.
@@ -250,9 +294,9 @@ install:        all
 
 #
 # Maintenance
-# 
+#
 clean:;         - $(DEL) *~ s\*~
-               - $(DEL) *.pdb config.h paths.h
+               - $(DEL) *.pdb config.h epaths.h
                - $(DEL) *.orig *.rej *.crlf
                - $(DEL) s\*.orig s\*.rej s\*.crlf
                - $(DEL_TREE) deleted
@@ -278,7 +322,6 @@ $(BLD)\abbrev.obj : \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\commands.h \
        $(SRC)\buffer.h \
        $(SRC)\window.h
@@ -288,9 +331,10 @@ $(BLD)\alloc.obj : \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\dispextern.h \
+       $(SRC)\w32gui.h \
        $(SRC)\intervals.h \
+       $(SRC)\composite.h \
        $(SRC)\puresize.h \
        $(SRC)\buffer.h \
        $(SRC)\window.h \
@@ -308,15 +352,30 @@ $(BLD)\alloca.obj : \
        $(SRC)\config.h \
        $(SRC)\blockinput.h
 
+$(BLD)\atimer.obj : \
+       $(SRC)\atimer.c \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h \
+       $(SRC)\s\ms-w32.h \
+       $(SRC)\m\intel386.h \
+       $(SRC)\config.h \
+       $(SRC)\atimer.h \
+       $(SRC)\syssignal.h \
+       $(SRC)\systime.h \
+       $(SRC)\blockinput.h
+
 $(BLD)\buffer.obj : \
        $(SRC)\buffer.c \
        $(EMACS_ROOT)\nt\inc\sys\param.h \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\dispextern.h \
+       $(SRC)\w32gui.h \
        $(SRC)\intervals.h \
+       $(SRC)\composite.h \
+       $(SRC)\frame.h \
        $(SRC)\window.h \
        $(SRC)\commands.h \
        $(SRC)\buffer.h \
@@ -329,7 +388,6 @@ $(BLD)\bytecode.obj : \
        $(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
 
@@ -338,12 +396,10 @@ $(BLD)\callint.obj : \
        $(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 \
        $(SRC)\keyboard.h \
-       $(SRC)\window.h \
-       $(SRC)\mocklisp.h
+       $(SRC)\window.h
 
 $(BLD)\callproc.obj : \
        $(SRC)\callproc.c \
@@ -352,7 +408,6 @@ $(BLD)\callproc.obj : \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\msdos.h \
        $(EMACS_ROOT)\nt\inc\sys\param.h \
-       $(SRC)\lisp.h \
        $(SRC)\commands.h \
        $(SRC)\buffer.h \
        $(SRC)\process.h \
@@ -366,7 +421,6 @@ $(BLD)\casefiddle.obj : \
        $(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 \
        $(SRC)\syntax.h
@@ -377,7 +431,6 @@ $(BLD)\casetab.obj : \
        $(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)\cm.obj : \
@@ -393,17 +446,25 @@ $(BLD)\cmds.obj : \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\commands.h \
        $(SRC)\buffer.h \
        $(SRC)\syntax.h
 
+$(BLD)\composite.obj : \
+       $(SRC)\composite.c \
+       $(SRC)\buffer.h \
+       $(SRC)\charset.h \
+       $(SRC)\intervals.h \
+       $(SRC)\composite.h \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h
+
 $(BLD)\data.obj : \
        $(SRC)\data.c \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\puresize.h \
        $(SRC)\buffer.h \
        $(SRC)\syssignal.h
@@ -413,9 +474,7 @@ $(BLD)\dired.obj : \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\vmsdir.h \
        $(SRC)\ndir.h \
-       $(SRC)\lisp.h \
        $(SRC)\buffer.h \
        $(SRC)\commands.h \
        $(SRC)\regex.h
@@ -425,7 +484,6 @@ $(BLD)\dispnew.obj : \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\termchar.h \
        $(SRC)\termopts.h \
        $(SRC)\termhooks.h \
@@ -438,12 +496,13 @@ $(BLD)\dispnew.obj : \
        $(SRC)\indent.h \
        $(SRC)\dispextern.h \
        $(SRC)\intervals.h \
+       $(SRC)\composite.h \
        $(EMACS_ROOT)\nt\inc\sys\ioctl.h \
        $(EMACS_ROOT)\nt\inc\sys\file.h \
        $(SRC)\systty.h \
        $(SRC)\w32term.h \
+       $(SRC)\w32gui.h \
        $(SRC)\xterm.h \
-       $(SRC)\vmstime.h \
        $(SRC)\systime.h
 
 $(BLD)\doc.obj : \
@@ -452,7 +511,6 @@ $(BLD)\doc.obj : \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(EMACS_ROOT)\nt\inc\sys\file.h \
-       $(SRC)\lisp.h \
        $(SRC)\buffer.h \
        $(SRC)\keyboard.h
 
@@ -467,7 +525,6 @@ $(BLD)\dosfns.obj : \
        $(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)\termchar.h \
        $(SRC)\termhooks.h \
@@ -481,14 +538,13 @@ $(BLD)\editfns.obj : \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\uaf.h \
-       $(SRC)\vms-pwd.h \
        $(EMACS_ROOT)\nt\inc\pwd.h \
-       $(SRC)\lisp.h \
        $(SRC)\dispextern.h \
+       $(SRC)\w32gui.h \
        $(SRC)\intervals.h \
+       $(SRC)\composite.h \
        $(SRC)\buffer.h \
        $(SRC)\window.h \
-       $(SRC)\vmstime.h \
        $(SRC)\systime.h
 
 $(BLD)\emacs.obj : \
@@ -496,10 +552,11 @@ $(BLD)\emacs.obj : \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\commands.h \
        $(SRC)\dispextern.h \
+       $(SRC)\w32gui.h \
        $(SRC)\intervals.h \
+       $(SRC)\composite.h \
        $(EMACS_ROOT)\nt\inc\sys\ioctl.h \
        $(EMACS_ROOT)\nt\inc\sys\file.h \
        $(SRC)\systty.h \
@@ -511,7 +568,6 @@ $(BLD)\eval.obj : \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\blockinput.h \
        $(SRC)\commands.h \
        $(SRC)\keyboard.h
@@ -522,18 +578,16 @@ $(BLD)\fileio.obj : \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\uaf.h \
-       $(SRC)\vms-pwd.h \
        $(EMACS_ROOT)\nt\inc\pwd.h \
        $(SRC)\msdos.h \
        $(EMACS_ROOT)\nt\inc\sys\param.h \
-       $(SRC)\vmsdir.h \
-       $(SRC)\lisp.h \
        $(SRC)\dispextern.h \
+       $(SRC)\w32gui.h \
        $(SRC)\intervals.h \
+       $(SRC)\composite.h \
        $(SRC)\buffer.h \
        $(SRC)\window.h \
        $(EMACS_ROOT)\nt\inc\sys\file.h \
-       $(SRC)\vmstime.h \
        $(SRC)\systime.h
 
 $(BLD)\filelock.obj : \
@@ -542,13 +596,10 @@ $(BLD)\filelock.obj : \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\uaf.h \
-       $(SRC)\vms-pwd.h \
        $(EMACS_ROOT)\nt\inc\pwd.h \
        $(EMACS_ROOT)\nt\inc\sys\file.h \
-       $(SRC)\lisp.h \
-       $(EMACS_ROOT)\src\paths.h \
+       $(EMACS_ROOT)\src\epaths.h \
        $(SRC)\buffer.h \
-       $(SRC)\vmsdir.h \
        $(SRC)\ndir.h
 
 $(BLD)\filemode.obj : \
@@ -571,7 +622,6 @@ $(BLD)\floatfns.obj : \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\syssignal.h
 
 $(BLD)\fns.obj : \
@@ -579,19 +629,20 @@ $(BLD)\fns.obj : \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\commands.h \
        $(SRC)\buffer.h \
        $(SRC)\keyboard.h \
        $(SRC)\dispextern.h \
-       $(SRC)\intervals.h
+       $(SRC)\w32gui.h \
+       $(SRC)\intervals.h \
+       $(SRC)\composite.h \
+        $(SRC)\md5.h
 
 $(BLD)\frame.obj : \
        $(SRC)\frame.c \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\frame.h \
        $(SRC)\termhooks.h \
        $(SRC)\window.h \
@@ -631,7 +682,6 @@ $(BLD)\indent.obj : \
        $(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)\indent.h \
        $(SRC)\frame.h \
@@ -640,17 +690,20 @@ $(BLD)\indent.obj : \
        $(SRC)\termopts.h \
        $(SRC)\disptab.h \
        $(SRC)\dispextern.h \
+       $(SRC)\w32gui.h \
        $(SRC)\intervals.h \
-       $(SRC)\region-cache.h
+       $(SRC)\region-cache.h \
+       $(SRC)\composite.h
 
 $(BLD)\insdel.obj : \
        $(SRC)\insdel.c \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\dispextern.h \
+       $(SRC)\w32gui.h \
        $(SRC)\intervals.h \
+       $(SRC)\composite.h \
        $(SRC)\buffer.h \
        $(SRC)\window.h \
        $(SRC)\blockinput.h
@@ -660,12 +713,13 @@ $(BLD)\intervals.obj : \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\dispextern.h \
+       $(SRC)\w32gui.h \
        $(SRC)\intervals.h \
+       $(SRC)\composite.h \
+       $(SRC)\keyboard.h \
        $(SRC)\buffer.h \
        $(SRC)\puresize.h
-       $(CC) $(CFLAGS) -Fo$@ intervals.c
 
 $(BLD)\keyboard.obj : \
        $(SRC)\keyboard.c \
@@ -674,7 +728,6 @@ $(BLD)\keyboard.obj : \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\termchar.h \
        $(SRC)\termopts.h \
-       $(SRC)\lisp.h \
        $(SRC)\termhooks.h \
        $(SRC)\macros.h \
        $(SRC)\frame.h \
@@ -685,6 +738,7 @@ $(BLD)\keyboard.obj : \
        $(SRC)\keyboard.h \
        $(SRC)\dispextern.h \
        $(SRC)\intervals.h \
+       $(SRC)\composite.h \
        $(SRC)\blockinput.h \
        $(SRC)\msdos.h \
        $(SRC)\syssignal.h \
@@ -692,16 +746,16 @@ $(BLD)\keyboard.obj : \
        $(EMACS_ROOT)\nt\inc\sys\file.h \
        $(SRC)\systty.h \
        $(SRC)\w32term.h \
+       $(SRC)\w32gui.h \
        $(SRC)\xterm.h \
-       $(SRC)\vmstime.h \
-       $(SRC)\systime.h
+       $(SRC)\systime.h \
+       $(SRC)\atimer.h
 
 $(BLD)\keymap.obj : \
        $(SRC)\keymap.c \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\commands.h \
        $(SRC)\buffer.h \
        $(SRC)\keyboard.h \
@@ -720,9 +774,8 @@ $(BLD)\lread.obj : \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(EMACS_ROOT)\nt\inc\sys\file.h \
-       $(SRC)\lisp.h \
        $(SRC)\buffer.h \
-       $(EMACS_ROOT)\src\paths.h \
+       $(EMACS_ROOT)\src\epaths.h \
        $(SRC)\commands.h \
        $(SRC)\keyboard.h \
        $(SRC)\termhooks.h \
@@ -733,7 +786,6 @@ $(BLD)\macros.obj : \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\macros.h \
        $(SRC)\commands.h \
        $(SRC)\buffer.h \
@@ -744,37 +796,31 @@ $(BLD)\marker.obj : \
        $(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)\md5.obj : \
+        $(SRC)\md5.c \
+        $(SRC)\md5.h
+
 $(BLD)\minibuf.obj : \
        $(SRC)\minibuf.c \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\commands.h \
        $(SRC)\buffer.h \
        $(SRC)\dispextern.h \
+       $(SRC)\w32gui.h \
        $(SRC)\frame.h \
        $(SRC)\window.h \
        $(SRC)\syntax.h
 
-$(BLD)\mocklisp.obj : \
-       $(SRC)\mocklisp.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
-
 $(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)\w32heap.h
 
@@ -790,20 +836,20 @@ $(BLD)\w32inevt.obj : \
        $(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 \
+       $(SRC)\w32gui.h
 
 $(BLD)\w32proc.obj : \
        $(SRC)\w32proc.c \
        $(SRC)\s\ms-w32.h \
        $(SRC)\m\intel386.h \
        $(SRC)\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\w32.h \
        $(SRC)\w32heap.h \
-       $(SRC)\vmstime.h \
        $(SRC)\systime.h
 
 $(BLD)\w32console.obj : \
@@ -811,7 +857,6 @@ $(BLD)\w32console.obj : \
        $(SRC)\s\ms-w32.h \
        $(SRC)\m\intel386.h \
        $(SRC)\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\frame.h \
        $(SRC)\disptab.h \
        $(SRC)\termhooks.h \
@@ -825,14 +870,15 @@ $(BLD)\print.obj : \
        $(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)\frame.h \
        $(SRC)\window.h \
        $(SRC)\process.h \
        $(SRC)\termchar.h \
        $(SRC)\dispextern.h \
-       $(SRC)\intervals.h
+       $(SRC)\w32gui.h \
+       $(SRC)\intervals.h \
+       $(SRC)\composite.h
 
 $(BLD)\process.obj : \
        $(SRC)\process.c \
@@ -849,19 +895,17 @@ $(BLD)\process.obj : \
        $(SRC)\commands.h \
        $(SRC)\frame.h \
        $(SRC)\syssignal.h \
-       $(SRC)\vmsproc.h \
        $(SRC)\syswait.h \
-       $(SRC)\lisp.h \
-       $(SRC)\vmstime.h \
        $(SRC)\systime.h \
-       $(SRC)\termopts.h
+       $(SRC)\termopts.h \
+       $(SRC)\composite.h \
+       $(SRC)\atimer.h
 
 $(BLD)\ralloc.obj : \
        $(SRC)\ralloc.c \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\s\ms-w32.h \
        $(SRC)\m\intel386.h \
        $(SRC)\config.h \
@@ -876,7 +920,6 @@ $(BLD)\regex.obj : \
        $(SRC)\s\ms-w32.h \
        $(SRC)\m\intel386.h \
        $(SRC)\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\buffer.h \
        $(SRC)\syntax.h \
        $(SRC)\regex.h
@@ -886,7 +929,6 @@ $(BLD)\region-cache.obj : \
        $(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)\region-cache.h
 
@@ -896,8 +938,8 @@ $(BLD)\scroll.obj : \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\termchar.h \
-       $(SRC)\lisp.h \
        $(SRC)\dispextern.h \
+       $(SRC)\w32gui.h \
        $(SRC)\frame.h
 
 $(BLD)\search.obj : \
@@ -905,13 +947,13 @@ $(BLD)\search.obj : \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\syntax.h \
        $(SRC)\buffer.h \
        $(SRC)\commands.h \
        $(SRC)\blockinput.h \
        $(SRC)\regex.h \
-       $(SRC)\region-cache.h
+       $(SRC)\region-cache.h \
+       $(SRC)\composite.h
 
 $(BLD)\strftime.obj : \
        $(SRC)\strftime.c \
@@ -919,32 +961,21 @@ $(BLD)\strftime.obj : \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h
 
-$(BLD)\sunfns.obj : \
-       $(SRC)\sunfns.c \
-       $(EMACS_ROOT)\src\s\ms-w32.h \
-       $(EMACS_ROOT)\src\m\intel386.h \
-       $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
-       $(SRC)\window.h \
-       $(SRC)\buffer.h \
-       $(SRC)\termhooks.h
-
 $(BLD)\syntax.obj : \
        $(SRC)\syntax.c \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\commands.h \
        $(SRC)\buffer.h \
-       $(SRC)\syntax.h
+       $(SRC)\syntax.h \
+       $(SRC)\composite.h
 
 $(BLD)\sysdep.obj : \
        $(SRC)\sysdep.c \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\blockinput.h \
        $(SRC)\dosfns.h \
        $(SRC)\msdos.h \
@@ -953,7 +984,6 @@ $(BLD)\sysdep.obj : \
        $(EMACS_ROOT)\nt\inc\sys\ioctl.h \
        $(EMACS_ROOT)\nt\inc\sys\file.h \
        $(SRC)\systty.h \
-       $(SRC)\vmsproc.h \
        $(SRC)\syswait.h \
        $(SRC)\frame.h \
        $(SRC)\window.h \
@@ -961,14 +991,12 @@ $(BLD)\sysdep.obj : \
        $(SRC)\termchar.h \
        $(SRC)\termopts.h \
        $(SRC)\dispextern.h \
+       $(SRC)\w32gui.h \
        $(SRC)\process.h \
-       $(SRC)\vmsdir.h \
        $(SRC)\ndir.h \
        $(SRC)\syssignal.h \
-       $(SRC)\vmstime.h \
        $(SRC)\systime.h \
        $(SRC)\uaf.h \
-       $(SRC)\vms-pwd.h \
        $(EMACS_ROOT)\src\acldef.h \
        $(EMACS_ROOT)\src\chpdef.h
 
@@ -980,9 +1008,9 @@ $(BLD)\term.obj : \
        $(SRC)\termchar.h \
        $(SRC)\termopts.h \
        $(SRC)\cm.h \
-       $(SRC)\lisp.h \
        $(SRC)\frame.h \
        $(SRC)\disptab.h \
+       $(SRC)/dispextern.h \
        $(SRC)\termhooks.h \
        $(SRC)\keyboard.h
 
@@ -1001,9 +1029,10 @@ $(BLD)\textprop.obj : \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\dispextern.h \
+       $(SRC)\w32gui.h \
        $(SRC)\intervals.h \
+       $(SRC)\composite.h \
        $(SRC)\buffer.h \
        $(SRC)\window.h
 
@@ -1018,7 +1047,6 @@ $(BLD)\undo.obj : \
        $(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
 
@@ -1034,17 +1062,17 @@ $(BLD)\vm-limit.obj : \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\mem-limits.h     
+       $(SRC)\mem-limits.h
 
 $(BLD)\widget.obj : \
        $(SRC)\widget.c \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\xterm.h \
        $(SRC)\frame.h \
        $(SRC)\dispextern.h \
+       $(SRC)\w32gui.h \
        $(SRC)\widget.h \
        $(SRC)\widgetprv.h
 
@@ -1053,7 +1081,6 @@ $(BLD)\window.obj : \
        $(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)\frame.h \
        $(SRC)\window.h \
@@ -1061,14 +1088,14 @@ $(BLD)\window.obj : \
        $(SRC)\indent.h \
        $(SRC)\termchar.h \
        $(SRC)\disptab.h \
-       $(SRC)\keyboard.h
+       $(SRC)\keyboard.h \
+       $(SRC)\composite.h
 
 $(BLD)\xdisp.obj : \
        $(SRC)\xdisp.c \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
-       $(SRC)\lisp.h \
        $(SRC)\frame.h \
        $(SRC)\window.h \
        $(SRC)\termchar.h \
@@ -1079,38 +1106,43 @@ $(BLD)\xdisp.obj : \
        $(SRC)\disptab.h \
        $(SRC)\termhooks.h \
        $(SRC)\dispextern.h \
-       $(SRC)\intervals.h
+       $(SRC)\w32gui.h \
+       $(SRC)\intervals.h \
+       $(SRC)\composite.h
 
-$(BLD)\w32faces.obj: \
+$(BLD)\xfaces.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)\xfaces.c \
+       $(SRC)\charset.h \
+       $(SRC)\fontset.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
+       $(SRC)\window.h \
+       $(SRC)\intervals.h \
+       $(SRC)\composite.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)\lisp.h \
        $(SRC)\w32term.h \
        $(SRC)\w32gui.h \
        $(SRC)\frame.h \
-       $(SRC)\window.h \
+       $(SRC)\window.h \
        $(SRC)\buffer.h \
+       $(SRC)\charset.h \
+       $(SRC)\coding.h \
        $(SRC)\dispextern.h \
        $(SRC)\keyboard.h \
        $(SRC)\blockinput.h \
-       $(SRC)\paths.h \
+       $(SRC)\epaths.h \
        $(SRC)\w32heap.h \
        $(SRC)\termhooks.h
 
@@ -1119,21 +1151,22 @@ $(BLD)\w32menu.obj: \
        $(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)\window.h \
        $(SRC)\keyboard.h \
        $(SRC)\blockinput.h \
-       $(SRC)\buffer.h
+       $(SRC)\buffer.h \
+       $(SRC)\charset.h \
+       $(SRC)\coding.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)\w32heap.h \
        $(SRC)\w32term.h \
        $(SRC)\w32gui.h \
        $(SRC)\systty.h \
@@ -1146,16 +1179,17 @@ $(BLD)\w32term.obj: \
        $(SRC)\gnu.h \
        $(SRC)\disptab.h \
        $(SRC)\buffer.h \
-       $(SRC)\window.h \
+       $(SRC)\window.h \
        $(SRC)\keyboard.h \
-       $(SRC)\intervals.h
+       $(SRC)\intervals.h \
+       $(SRC)\composite.h \
+       $(SRC)\atimer.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 \
@@ -1167,7 +1201,6 @@ $(BLD)\w32reg.obj: \
        $(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
@@ -1177,8 +1210,21 @@ $(BLD)\w32xfns.obj: \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\w32xfns.c \
-       $(SRC)\lisp.h \
+
+$(BLD)\w32bdf.obj: \
+       $(EMACS_ROOT)\src/s\ms-w32.h \
+       $(EMACS_ROOT)\src/m\intel386.h \
+       $(EMACS_ROOT)\src/config.h \
+       $(SRC)\w32bdf.c \
+       $(SRC)\charset.h \
+       $(SRC)\frame.h \
+       $(SRC)\dispextern.h \
+       $(SRC)\fontset.h \
+       $(SRC)\blockinput.h \
+       $(SRC)\w32gui.h \
        $(SRC)\w32term.h \
+       $(SRC)\w32gui.h \
+       $(SRC)\w32bdf.h \
        $(SRC)\w32.h \
        $(SRC)\frame.h \
        $(SRC)\blockinput.h