Move NT-specific include file to the NT include directory
[bpt/emacs.git] / src / makefile.w32-in
index fd29dec..31dc94f 100644 (file)
@@ -1,5 +1,5 @@
-# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
-# Copyright (C) 2000-2011  Free Software Foundation, Inc.
+# -*- Makefile -*- for GNU Emacs on the Microsoft Windows API.
+# Copyright (C) 2000-2012  Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
@@ -24,11 +24,10 @@ ALL = emacs
 # Set EMACSLOADPATH correctly (in case already defined in environment).
 EMACSLOADPATH=$(CURDIR)/../lisp
 
-#
-# HAVE_CONFIG_H is required by some generic gnu sources stuck into
-# the emacs source tree.
-#
-LOCAL_FLAGS     = -Demacs=1 -DHAVE_CONFIG_H -I../lib -I../nt/inc -DHAVE_NTGUI=1 $(EMACS_EXTRA_C_FLAGS)
+# Size in MBs of the static heap in temacs.exe.
+HEAPSIZE = 27
+
+LOCAL_FLAGS     = -Demacs=1 -I../lib -I../nt/inc -DHAVE_NTGUI=1 $(EMACS_EXTRA_C_FLAGS)
 
 SRC             = .
 EMACS           = $(BLD)/emacs.exe
@@ -125,6 +124,7 @@ OBJ2 =  $(BLD)/sysdep.$(O)          \
        $(BLD)/image.$(O)               \
        $(BLD)/terminal.$(O)            \
        $(BLD)/menu.$(O)                \
+       $(BLD)/xml.$(O)                 \
        $(BLD)/w32term.$(O)             \
        $(BLD)/w32xfns.$(O)             \
        $(BLD)/w32fns.$(O)              \
@@ -177,7 +177,7 @@ temacs:         stamp_BLD $(TEMACS)
 $(TEMACS):      $(TLIB0) $(TLIB1) $(TLIB2) $(TLASTLIB) $(TOBJ) $(TRES) \
                  ../nt/$(BLD)/addsection.exe $(GNULIB)
        $(LINK) $(LINK_OUT)$(TEMACS_TMP) $(FULL_LINK_FLAGS) $(TOBJ) $(TRES) $(LIBS)
-       "../nt/$(BLD)/addsection" "$(TEMACS_TMP)" "$(TEMACS)" EMHEAP 21
+       "$(THISDIR)/../nt/$(BLD)/addsection" "$(TEMACS_TMP)" "$(TEMACS)" EMHEAP $(HEAPSIZE)
 
 # These omit firstfile.${O}, but there's no documentation in there
 # anyways.
@@ -222,7 +222,7 @@ GLOBAL_SOURCES =   dosfns.c msdos.c \
        process.c callproc.c unexw32.c \
        region-cache.c sound.c atimer.c \
        doprnt.c intervals.c textprop.c composite.c \
-       gnutls.c
+       gnutls.c xml.c
 SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
        xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o dbusbind.o
 obj = $(GLOBAL_SOURCES:.c=.o)
@@ -232,7 +232,7 @@ globals.h: gl-stamp
 
 gl-stamp: ../lib-src/$(BLD)/make-docfile.exe $(GLOBAL_SOURCES)
        - $(DEL) gl-tmp
-       "../lib-src/$(BLD)/make-docfile" -d . -g $(SOME_MACHINE_OBJECTS) $(obj) > gl-tmp
+       "$(THISDIR)/../lib-src/$(BLD)/make-docfile" -d . -g $(SOME_MACHINE_OBJECTS) $(obj) > gl-tmp
        cmd /c "fc /b gl-tmp globals.h >nul 2>&1 || $(CP) gl-tmp globals.h"
        - $(DEL) gl-tmp
        echo timestamp > $@
@@ -339,7 +339,7 @@ cleanall:   clean
 ##
 ## This works only with GNU Make.
 
-TAGS: $(OBJ0) $(OBJ1) $(OBJ2) $(CURDIR)/m/intel386.h $(CURDIR)/s/ms-w32.h
+TAGS: $(OBJ0) $(OBJ1) $(OBJ2) $(CURDIR)/../nt/inc/ms-w32.h
        $(MAKE) $(MFLAGS) TAGS-$(MAKETYPE)
 
 TAGS-LISP: $(OBJ0) $(OBJ1) $(OBJ2)
@@ -348,12 +348,12 @@ TAGS-LISP: $(OBJ0) $(OBJ1) $(OBJ2)
 TAGS-gmake:
        ../lib-src/$(BLD)/etags.exe --include=TAGS-LISP --include=../nt/TAGS \
          --regex=@../nt/emacs-src.tags \
-         $(patsubst $(BLD)%.$(O),$(CURDIR)%.c,$(OBJ0))
+         $(OBJ0_c)
        ../lib-src/$(BLD)/etags.exe -a --regex=@../nt/emacs-src.tags \
-         $(patsubst $(BLD)%.$(O),$(CURDIR)%.c,$(OBJ1))
+         $(OBJ1_c)
        ../lib-src/$(BLD)/etags.exe -a --regex=@../nt/emacs-src.tags \
-         $(patsubst $(BLD)%.$(O),$(CURDIR)%.c,$(OBJ2)) \
-         $(CURDIR)/*.h $(CURDIR)/m/intel386.h $(CURDIR)/s/ms-w32.h
+         $(OBJ2_c) \
+         $(CURDIR)/*.h $(CURDIR)/../nt/inc/ms-w32.h
 
 TAGS-nmake:
        echo This target is not supported with NMake
@@ -387,11 +387,14 @@ GNU_LIB = $(EMACS_ROOT)/lib
 NT_INC = $(EMACS_ROOT)/nt/inc
 
 SYSTIME_H      = $(SRC)/systime.h \
-                $(NT_INC)/sys/time.h
+                $(NT_INC)/sys/time.h \
+                $(GNU_LIB)/timespec.h
 ATIMER_H       = $(SRC)/atimer.h \
                 $(SYSTIME_H)
 BLOCKINPUT_H   = $(SRC)/blockinput.h \
                 $(ATIMER_H)
+BUFFER_H       = $(SRC)/buffer.h \
+                $(SYSTIME_H)
 CAREADLINKAT_H = $(GNU_LIB)/careadlinkat.h \
                 $(NT_INC)/unistd.h
 CHARACTER_H    = $(SRC)/character.h \
@@ -400,16 +403,19 @@ CHARSET_H      = $(SRC)/charset.h \
                 $(GNU_LIB)/verify.h
 CODING_H       = $(SRC)/coding.h \
                 $(SRC)/composite.h
-MS_W32_H       = $(SRC)/s/ms-w32.h \
+MS_W32_H       = $(NT_INC)/ms-w32.h \
                 $(NT_INC)/sys/stat.h
-CONFIG_H       = $(SRC)/config.h \
-                $(SRC)/m/intel386.h \
+CONF_POST_H    = $(SRC)/conf_post.h \
                 $(MS_W32_H)
+CONFIG_H       = $(SRC)/config.h \
+                $(CONF_POST_H)
 DIR_H          = $(NT_INC)/sys/dir.h \
                 $(SRC)/ndir.h
 W32GUI_H       = $(SRC)/w32gui.h \
                 $(SYSTIME_H)
 DISPEXTERN_H   = $(SRC)/dispextern.h \
+                $(GNU_LIB)/c-strcase.h \
+                $(SYSTIME_H) \
                 $(W32GUI_H)
 FILEMODE_H     = $(GNU_LIB)/filemode.h \
                 $(NT_INC)/sys/stat.h
@@ -434,7 +440,8 @@ LANGINFO_H     = $(NT_INC)/langinfo.h \
 LISP_H         = $(SRC)/lisp.h \
                 $(SRC)/globals.h \
                 $(GNU_LIB)/intprops.h \
-                $(INTTYPES_H)
+                $(INTTYPES_H) \
+                $(NT_INC)/stdalign.h
 MD5_H          = $(GNU_LIB)/md5.h \
                 $(NT_INC)/stdint.h
 MENU_H         = $(SRC)/menu.h \
@@ -452,6 +459,8 @@ SHA512_H       = $(GNU_LIB)/sha512.h \
                 $(U64_H)
 SOCKET_H       = $(NT_INC)/sys/socket.h \
                 $(SRC)/w32.h
+STAT_TIME_H    = $(GNU_LIB)/stat-time.h \
+                $(NT_INC)/sys/stat.h
 SYSTTY_H       = $(SRC)/systty.h \
                 $(NT_INC)/sys/ioctl.h \
                 $(NT_INC)/unistd.h
@@ -464,12 +473,13 @@ WINDOW_H       = $(SRC)/window.h \
 
 $(BLD)/alloc.$(O) : \
        $(SRC)/alloc.c \
-       $(SRC)/buffer.h \
        $(SRC)/puresize.h \
        $(SRC)/syssignal.h \
        $(SRC)/w32.h \
        $(NT_INC)/unistd.h \
+       $(GNU_LIB)/verify.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(FRAME_H) \
@@ -483,7 +493,6 @@ $(BLD)/alloc.$(O) : \
 $(BLD)/atimer.$(O) : \
        $(SRC)/atimer.c \
        $(SRC)/syssignal.h \
-       $(NT_INC)/sys/time.h \
        $(NT_INC)/unistd.h \
        $(ATIMER_H) \
        $(BLOCKINPUT_H) \
@@ -493,9 +502,7 @@ $(BLD)/atimer.$(O) : \
 
 $(BLD)/bidi.$(O) : \
        $(SRC)/bidi.c \
-       $(SRC)/bidimirror.h \
-       $(SRC)/biditype.h \
-       $(SRC)/buffer.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(DISPEXTERN_H) \
@@ -503,7 +510,6 @@ $(BLD)/bidi.$(O) : \
 
 $(BLD)/buffer.$(O) : \
        $(SRC)/buffer.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
        $(SRC)/indent.h \
        $(SRC)/keymap.h \
@@ -513,6 +519,7 @@ $(BLD)/buffer.$(O) : \
        $(NT_INC)/unistd.h \
        $(GNU_LIB)/verify.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(FRAME_H) \
@@ -523,8 +530,8 @@ $(BLD)/buffer.$(O) : \
 
 $(BLD)/bytecode.$(O) : \
        $(SRC)/bytecode.c \
-       $(SRC)/buffer.h \
        $(SRC)/syntax.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(LISP_H) \
@@ -532,9 +539,9 @@ $(BLD)/bytecode.$(O) : \
 
 $(BLD)/callint.$(O) : \
        $(SRC)/callint.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
        $(SRC)/keymap.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(KEYBOARD_H) \
@@ -543,7 +550,6 @@ $(BLD)/callint.$(O) : \
 
 $(BLD)/callproc.$(O) : \
        $(SRC)/callproc.c \
-       $(SRC)/buffer.h \
        $(SRC)/ccl.h \
        $(SRC)/commands.h \
        $(SRC)/composite.h \
@@ -553,6 +559,7 @@ $(BLD)/callproc.$(O) : \
        $(NT_INC)/sys/file.h \
        $(NT_INC)/unistd.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CODING_H) \
        $(CONFIG_H) \
@@ -564,27 +571,27 @@ $(BLD)/callproc.$(O) : \
 
 $(BLD)/casefiddle.$(O) : \
        $(SRC)/casefiddle.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
        $(SRC)/composite.h \
        $(SRC)/keymap.h \
        $(SRC)/syntax.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(LISP_H)
 
 $(BLD)/casetab.$(O) : \
        $(SRC)/casetab.c \
-       $(SRC)/buffer.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(LISP_H)
 
 $(BLD)/category.$(O) : \
        $(SRC)/category.c \
-       $(SRC)/buffer.h \
        $(SRC)/category.h \
        $(SRC)/keymap.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CHARSET_H) \
        $(CONFIG_H) \
@@ -601,10 +608,10 @@ $(BLD)/ccl.$(O) : \
 
 $(BLD)/character.$(O) : \
        $(SRC)/character.c \
-       $(SRC)/buffer.h \
        $(SRC)/composite.h \
        $(SRC)/disptab.h \
        $(GNU_LIB)/intprops.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CHARSET_H) \
        $(CONFIG_H) \
@@ -612,9 +619,9 @@ $(BLD)/character.$(O) : \
 
 $(BLD)/charset.$(O) : \
        $(SRC)/charset.c \
-       $(SRC)/buffer.h \
        $(SRC)/disptab.h \
        $(NT_INC)/unistd.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CHARSET_H) \
        $(CODING_H) \
@@ -631,10 +638,10 @@ $(BLD)/chartab.$(O) : \
 
 $(BLD)/cmds.$(O) : \
        $(SRC)/cmds.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
        $(SRC)/keymap.h \
        $(SRC)/syntax.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(DISPEXTERN_H) \
@@ -645,9 +652,9 @@ $(BLD)/cmds.$(O) : \
 
 $(BLD)/coding.$(O) : \
        $(SRC)/coding.c \
-       $(SRC)/buffer.h \
        $(SRC)/ccl.h \
        $(SRC)/composite.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CHARSET_H) \
        $(CODING_H) \
@@ -659,7 +666,7 @@ $(BLD)/coding.$(O) : \
 
 $(BLD)/composite.$(O) : \
        $(SRC)/composite.c \
-       $(SRC)/buffer.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CODING_H) \
        $(CONFIG_H) \
@@ -673,10 +680,11 @@ $(BLD)/composite.$(O) : \
 
 $(BLD)/data.$(O) : \
        $(SRC)/data.c \
-       $(SRC)/buffer.h \
+       $(SRC)/keymap.h \
        $(SRC)/puresize.h \
        $(SRC)/syssignal.h \
        $(GNU_LIB)/intprops.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(FONT_H) \
@@ -687,13 +695,13 @@ $(BLD)/data.$(O) : \
 
 $(BLD)/dired.$(O) : \
        $(SRC)/dired.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
        $(SRC)/regex.h \
        $(NT_INC)/pwd.h \
        $(NT_INC)/sys/stat.h \
        $(NT_INC)/unistd.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CHARSET_H) \
        $(CODING_H) \
@@ -702,11 +710,11 @@ $(BLD)/dired.$(O) : \
        $(FILEMODE_H) \
        $(GRP_H) \
        $(LISP_H) \
+       $(STAT_TIME_H) \
        $(SYSTIME_H)
 
 $(BLD)/dispnew.$(O) : \
        $(SRC)/dispnew.c \
-       $(SRC)/buffer.h \
        $(SRC)/cm.h \
        $(SRC)/commands.h \
        $(SRC)/disptab.h \
@@ -716,6 +724,7 @@ $(BLD)/dispnew.$(O) : \
        $(SRC)/termopts.h \
        $(NT_INC)/unistd.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(DISPEXTERN_H) \
@@ -731,11 +740,11 @@ $(BLD)/dispnew.$(O) : \
 
 $(BLD)/doc.$(O) : \
        $(SRC)/doc.c \
-       $(SRC)/buffer.h \
        $(SRC)/buildobj.h \
        $(SRC)/keymap.h \
        $(NT_INC)/sys/file.h \
        $(NT_INC)/unistd.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(KEYBOARD_H) \
@@ -750,13 +759,13 @@ $(BLD)/doprnt.$(O) : \
 
 $(BLD)/editfns.$(O) : \
        $(SRC)/editfns.c \
-       $(SRC)/buffer.h \
        $(NT_INC)/pwd.h \
        $(NT_INC)/unistd.h \
        $(GNU_LIB)/intprops.h \
        $(GNU_LIB)/strftime.h \
        $(GNU_LIB)/verify.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CODING_H) \
        $(CONFIG_H) \
@@ -768,7 +777,6 @@ $(BLD)/editfns.$(O) : \
 
 $(BLD)/emacs.$(O) : \
        $(SRC)/emacs.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
        $(SRC)/gnutls.h \
        $(SRC)/keymap.h \
@@ -779,6 +787,8 @@ $(BLD)/emacs.$(O) : \
        $(NT_INC)/sys/file.h \
        $(NT_INC)/unistd.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
+       $(CHARACTER_H) \
        $(CONFIG_H) \
        $(FRAME_H) \
        $(INTERVALS_H) \
@@ -801,12 +811,12 @@ $(BLD)/eval.$(O) : \
 
 $(BLD)/fileio.$(O) : \
        $(SRC)/fileio.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
        $(NT_INC)/pwd.h \
        $(NT_INC)/sys/stat.h \
        $(NT_INC)/unistd.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CODING_H) \
        $(CONFIG_H) \
@@ -814,16 +824,17 @@ $(BLD)/fileio.$(O) : \
        $(FRAME_H) \
        $(INTERVALS_H) \
        $(LISP_H) \
+       $(STAT_TIME_H) \
        $(SYSTIME_H) \
        $(WINDOW_H)
 
 $(BLD)/filelock.$(O) : \
        $(SRC)/filelock.c \
-       $(SRC)/buffer.h \
        $(NT_INC)/pwd.h \
        $(NT_INC)/sys/file.h \
        $(NT_INC)/sys/stat.h \
        $(NT_INC)/unistd.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CODING_H) \
        $(CONFIG_H) \
@@ -842,12 +853,12 @@ $(BLD)/floatfns.$(O) : \
 
 $(BLD)/fns.$(O) : \
        $(SRC)/fns.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
        $(SRC)/keymap.h \
        $(NT_INC)/unistd.h \
        $(GNU_LIB)/intprops.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CODING_H) \
        $(CONFIG_H) \
@@ -864,9 +875,9 @@ $(BLD)/fns.$(O) : \
 
 $(BLD)/font.$(O) : \
        $(SRC)/font.c \
-       $(SRC)/buffer.h \
        $(SRC)/composite.h \
        $(SRC)/fontset.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CHARSET_H) \
        $(CONFIG_H) \
@@ -879,10 +890,10 @@ $(BLD)/font.$(O) : \
 
 $(BLD)/fontset.$(O) : \
        $(SRC)/fontset.c \
-       $(SRC)/buffer.h \
        $(SRC)/ccl.h \
        $(SRC)/fontset.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CHARSET_H) \
        $(CONFIG_H) \
@@ -898,11 +909,11 @@ $(BLD)/fontset.$(O) : \
 
 $(BLD)/frame.$(O) : \
        $(SRC)/frame.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
        $(SRC)/fontset.h \
        $(SRC)/termchar.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(DISPEXTERN_H) \
@@ -916,8 +927,9 @@ $(BLD)/frame.$(O) : \
 
 $(BLD)/fringe.$(O) : \
        $(SRC)/fringe.c \
-       $(SRC)/buffer.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
+       $(CHARACTER_H) \
        $(CONFIG_H) \
        $(DISPEXTERN_H) \
        $(FRAME_H) \
@@ -927,7 +939,7 @@ $(BLD)/fringe.$(O) : \
 
 $(BLD)/gmalloc.$(O) : \
        $(SRC)/gmalloc.c \
-       $(SRC)/getpagesize.h \
+       $(NT_INC)/stdint.h \
        $(NT_INC)/unistd.h \
        $(CONFIG_H)
 
@@ -938,6 +950,14 @@ $(BLD)/gnutls.$(O) : \
        $(LISP_H) \
        $(PROCESS_H)
 
+$(BLD)/xml.$(O) : \
+       $(SRC)/xml.c \
+       $(SRC)/w32.h \
+       $(BUFFER_H) \
+       $(CHARACTER_H) \
+       $(CONFIG_H) \
+       $(LISP_H)
+
 $(BLD)/image.$(O) : \
        $(SRC)/image.c \
        $(SRC)/epaths.h \
@@ -958,7 +978,6 @@ $(BLD)/image.$(O) : \
 
 $(BLD)/indent.$(O) : \
        $(SRC)/indent.c \
-       $(SRC)/buffer.h \
        $(SRC)/category.h \
        $(SRC)/composite.h \
        $(SRC)/disptab.h \
@@ -966,6 +985,7 @@ $(BLD)/indent.$(O) : \
        $(SRC)/region-cache.h \
        $(SRC)/termchar.h \
        $(SRC)/termopts.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(DISPEXTERN_H) \
@@ -977,10 +997,10 @@ $(BLD)/indent.$(O) : \
 
 $(BLD)/insdel.$(O) : \
        $(SRC)/insdel.c \
-       $(SRC)/buffer.h \
        $(SRC)/region-cache.h \
        $(GNU_LIB)/intprops.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(INTERVALS_H) \
@@ -989,10 +1009,11 @@ $(BLD)/insdel.$(O) : \
 
 $(BLD)/intervals.$(O) : \
        $(SRC)/intervals.c \
-       $(SRC)/buffer.h \
        $(SRC)/keymap.h \
        $(SRC)/puresize.h \
        $(GNU_LIB)/intprops.h \
+       $(BUFFER_H) \
+       $(CHARACTER_H) \
        $(CONFIG_H) \
        $(INTERVALS_H) \
        $(KEYBOARD_H) \
@@ -1000,7 +1021,6 @@ $(BLD)/intervals.$(O) : \
 
 $(BLD)/keyboard.$(O) : \
        $(SRC)/keyboard.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
        $(SRC)/disptab.h \
        $(SRC)/keymap.h \
@@ -1014,6 +1034,7 @@ $(BLD)/keyboard.$(O) : \
        $(NT_INC)/unistd.h \
        $(ATIMER_H) \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(DISPEXTERN_H) \
@@ -1029,11 +1050,11 @@ $(BLD)/keyboard.$(O) : \
 
 $(BLD)/keymap.$(O) : \
        $(SRC)/keymap.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
        $(SRC)/keymap.h \
        $(SRC)/puresize.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CHARSET_H) \
        $(CONFIG_H) \
@@ -1050,13 +1071,13 @@ $(BLD)/lastfile.$(O) : \
 
 $(BLD)/lread.$(O) : \
        $(SRC)/lread.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
        $(SRC)/epaths.h \
        $(NT_INC)/sys/file.h \
        $(NT_INC)/sys/stat.h \
        $(NT_INC)/unistd.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CHARSET_H) \
        $(CODING_H) \
@@ -1065,13 +1086,15 @@ $(BLD)/lread.$(O) : \
        $(INTERVALS_H) \
        $(KEYBOARD_H) \
        $(LISP_H) \
+       $(STAT_TIME_H) \
        $(TERMHOOKS_H)
 
 $(BLD)/macros.$(O) : \
        $(SRC)/macros.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
        $(SRC)/macros.h \
+       $(BUFFER_H) \
+       $(CHARACTER_H) \
        $(CONFIG_H) \
        $(KEYBOARD_H) \
        $(LISP_H) \
@@ -1079,7 +1102,7 @@ $(BLD)/macros.$(O) : \
 
 $(BLD)/marker.$(O) : \
        $(SRC)/marker.c \
-       $(SRC)/buffer.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(LISP_H)
@@ -1100,10 +1123,11 @@ $(BLD)/menu.$(O) : \
 
 $(BLD)/minibuf.$(O) : \
        $(SRC)/minibuf.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
        $(SRC)/keymap.h \
        $(SRC)/syntax.h \
+       $(BUFFER_H) \
+       $(CHARACTER_H) \
        $(CONFIG_H) \
        $(DISPEXTERN_H) \
        $(FRAME_H) \
@@ -1140,7 +1164,9 @@ $(BLD)/w32heap.$(O) : \
 
 $(BLD)/w32inevt.$(O) : \
        $(SRC)/w32inevt.c \
+       $(SRC)/termchar.h \
        $(SRC)/w32heap.h \
+       $(SRC)/w32inevt.h \
        $(BLOCKINPUT_H) \
        $(CONFIG_H) \
        $(DISPEXTERN_H) \
@@ -1148,7 +1174,8 @@ $(BLD)/w32inevt.$(O) : \
        $(KEYBOARD_H) \
        $(LISP_H) \
        $(TERMHOOKS_H) \
-       $(W32TERM_H)
+       $(W32TERM_H) \
+       $(WINDOW_H)
 
 $(BLD)/w32proc.$(O) : \
        $(SRC)/w32proc.c \
@@ -1171,6 +1198,7 @@ $(BLD)/w32console.$(O) : \
        $(SRC)/w32console.c \
        $(SRC)/disptab.h \
        $(SRC)/termchar.h \
+       $(SRC)/w32heap.h \
        $(SRC)/w32inevt.h \
        $(CHARACTER_H) \
        $(CODING_H) \
@@ -1178,13 +1206,14 @@ $(BLD)/w32console.$(O) : \
        $(DISPEXTERN_H) \
        $(FRAME_H) \
        $(LISP_H) \
-       $(TERMHOOKS_H)
+       $(TERMHOOKS_H) \
+       $(WINDOW_H)
 
 $(BLD)/print.$(O) : \
        $(SRC)/print.c \
-       $(SRC)/buffer.h \
        $(SRC)/termchar.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CHARSET_H) \
        $(CONFIG_H) \
@@ -1201,7 +1230,6 @@ $(BLD)/print.$(O) : \
 
 $(BLD)/process.$(O) : \
        $(SRC)/process.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
        $(SRC)/composite.h \
        $(SRC)/gnutls.h \
@@ -1218,6 +1246,7 @@ $(BLD)/process.$(O) : \
        $(NT_INC)/unistd.h \
        $(ATIMER_H) \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CODING_H) \
        $(CONFIG_H) \
@@ -1242,19 +1271,19 @@ $(BLD)/ralloc.$(O) : \
 
 $(BLD)/regex.$(O) : \
        $(SRC)/regex.c \
-       $(SRC)/buffer.h \
        $(SRC)/category.h \
        $(SRC)/regex.h \
        $(SRC)/syntax.h \
-       $(NT_INC)/unistd.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(LISP_H)
 
 $(BLD)/region-cache.$(O) : \
        $(SRC)/region-cache.c \
-       $(SRC)/buffer.h \
        $(SRC)/region-cache.h \
+       $(BUFFER_H) \
+       $(CHARACTER_H) \
        $(CONFIG_H) \
        $(LISP_H)
 
@@ -1271,13 +1300,13 @@ $(BLD)/scroll.$(O) : \
 
 $(BLD)/search.$(O) : \
        $(SRC)/search.c \
-       $(SRC)/buffer.h \
        $(SRC)/category.h \
        $(SRC)/commands.h \
        $(SRC)/regex.h \
        $(SRC)/region-cache.h \
        $(SRC)/syntax.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CHARSET_H) \
        $(CONFIG_H) \
@@ -1295,12 +1324,12 @@ $(BLD)/sound.$(O) : \
 
 $(BLD)/syntax.$(O) : \
        $(SRC)/syntax.c \
-       $(SRC)/buffer.h \
        $(SRC)/category.h \
        $(SRC)/commands.h \
        $(SRC)/keymap.h \
        $(SRC)/regex.h \
        $(SRC)/syntax.h \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CONFIG_H) \
        $(INTERVALS_H) \
@@ -1321,6 +1350,7 @@ $(BLD)/sysdep.$(O) : \
        $(NT_INC)/unistd.h \
        $(GNU_LIB)/allocator.h \
        $(GNU_LIB)/ignore-value.h \
+       $(GNU_LIB)/utimens.h \
        $(BLOCKINPUT_H) \
        $(CAREADLINKAT_H) \
        $(CONFIG_H) \
@@ -1338,7 +1368,6 @@ $(BLD)/sysdep.$(O) : \
 
 $(BLD)/term.$(O) : \
        $(SRC)/term.c \
-       $(SRC)/buffer.h \
        $(SRC)/cm.h \
        $(SRC)/composite.h \
        $(SRC)/disptab.h \
@@ -1348,8 +1377,10 @@ $(BLD)/term.$(O) : \
        $(SRC)/termopts.h \
        $(SRC)/tparam.h \
        $(NT_INC)/sys/file.h \
+       $(NT_INC)/sys/time.h \
        $(NT_INC)/unistd.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CHARSET_H) \
        $(CODING_H) \
@@ -1376,7 +1407,8 @@ $(BLD)/terminal.$(O) : \
 
 $(BLD)/textprop.$(O) : \
        $(SRC)/textprop.c \
-       $(SRC)/buffer.h \
+       $(BUFFER_H) \
+       $(CHARACTER_H) \
        $(CONFIG_H) \
        $(INTERVALS_H) \
        $(LISP_H) \
@@ -1390,8 +1422,9 @@ $(BLD)/tparam.$(O) : \
 
 $(BLD)/undo.$(O) : \
        $(SRC)/undo.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
+       $(BUFFER_H) \
+       $(CHARACTER_H) \
        $(CONFIG_H) \
        $(LISP_H) \
        $(WINDOW_H)
@@ -1410,13 +1443,14 @@ $(BLD)/vm-limit.$(O) : \
 
 $(BLD)/window.$(O) : \
        $(SRC)/window.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
        $(SRC)/disptab.h \
        $(SRC)/indent.h \
        $(SRC)/keymap.h \
        $(SRC)/termchar.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
+       $(CHARACTER_H) \
        $(CONFIG_H) \
        $(DISPEXTERN_H) \
        $(FRAME_H) \
@@ -1429,7 +1463,6 @@ $(BLD)/window.$(O) : \
 
 $(BLD)/xdisp.$(O) : \
        $(SRC)/xdisp.c \
-       $(SRC)/buffer.h \
        $(SRC)/commands.h \
        $(SRC)/disptab.h \
        $(SRC)/fontset.h \
@@ -1440,6 +1473,7 @@ $(BLD)/xdisp.$(O) : \
        $(SRC)/termchar.h \
        $(SRC)/termopts.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CHARSET_H) \
        $(CODING_H) \
@@ -1457,11 +1491,11 @@ $(BLD)/xdisp.$(O) : \
 
 $(BLD)/xfaces.$(O) : \
        $(SRC)/xfaces.c \
-       $(SRC)/buffer.h \
        $(SRC)/fontset.h \
        $(SRC)/termchar.h \
        $(NT_INC)/sys/stat.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CHARSET_H) \
        $(CONFIG_H) \
@@ -1477,7 +1511,6 @@ $(BLD)/xfaces.$(O) : \
 
 $(BLD)/w32fns.$(O) : \
        $(SRC)/w32fns.c \
-       $(SRC)/buffer.h \
        $(SRC)/ccl.h \
        $(SRC)/epaths.h \
        $(SRC)/fontset.h \
@@ -1485,6 +1518,7 @@ $(BLD)/w32fns.$(O) : \
        $(SRC)/w32font.h \
        $(SRC)/w32heap.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CHARSET_H) \
        $(CODING_H) \
@@ -1502,9 +1536,11 @@ $(BLD)/w32fns.$(O) : \
 
 $(BLD)/w32menu.$(O) : \
        $(SRC)/w32menu.c \
-       $(SRC)/buffer.h \
        $(SRC)/keymap.h \
+       $(SRC)/w32heap.h \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
+       $(CHARACTER_H) \
        $(CHARSET_H) \
        $(CODING_H) \
        $(CONFIG_H) \
@@ -1519,7 +1555,6 @@ $(BLD)/w32menu.$(O) : \
 
 $(BLD)/w32term.$(O) : \
        $(SRC)/w32term.c \
-       $(SRC)/buffer.h \
        $(SRC)/ccl.h \
        $(SRC)/disptab.h \
        $(SRC)/fontset.h \
@@ -1531,6 +1566,7 @@ $(BLD)/w32term.$(O) : \
        $(NT_INC)/sys/stat.h \
        $(ATIMER_H) \
        $(BLOCKINPUT_H) \
+       $(BUFFER_H) \
        $(CHARACTER_H) \
        $(CHARSET_H) \
        $(CODING_H) \