# Start of settings from configure.bat 
COMPILER=gcc
MCPU_FLAG=-mtune=pentium4
NODEBUG=1 
NOCYGWIN=1 
INSTALL_DIR=/usr/local/emacs/22.1.92
USER_CFLAGS=-DIME_CONTROL -DRECONVERSION -DCLIENTEDGE -I/home/A208752/src/emacs/cvs/DLL -DWINVER=0x0500
# End of settings from configure.bat
 
#  -*- Makefile -*- definition file for building GNU Emacs on Windows NT.
#  Copyright (C) 2000, 2001, 2002, 2003, 2004,
#    2005, 2006, 2007, 2008 Free Software Foundation, Inc.
#
#  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 3, 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., 51 Franklin Street, Fifth Floor,
#  Boston, MA 02110-1301, USA.

# Ensure 'all' is the default target
all:

# NOTES
#
# I tried to force gmake to use the native shell for simplicity, by
# setting SHELL as below, but this didn't work reliably because of
# various case sensitivity niggles.  Specifically, COMSPEC (which is in
# fact usually spelled ComSpec on NT, to make life difficult) typically
# references "cmd.exe" (on NT) when the file is actually called
# "CMD.EXE" on disk for hysterical raisons.  As a result, GNU make
# thinks it doesn't exist (unless compiled with a switch to ignore
# case), and so doesn't change which shell it will invoke to execute
# commands.
#
# It would be possible, though very tedious using just gmake facilities,
# to convert the COMSPEC value to uppercase to solve this problem, but
# it isn't worth it.  That is partly because, even when using the native
# shell, gmake tends to not be happy with backslashes in command
# strings.  The obvious solution is to use forward slashes as much as
# possible, which can be made to work most of the time (putting
# filenames in quotes often helps), but there are still some internal
# cmd.exe commands like `del' and `copy' that won't work with them.
# Although it is possible to convert slashes to backslashes when
# necessary, gmake requires explicitly calling its subst function, which
# nmake does not understand).  For this reason, it is simplest to
# mandate that rm and cp be available, so we can use Unix-format file
# names everywhere.  (Fortunately both MS and GNU make, and the
# respective compilers, are happy with Unix-format names.)
#
# Since we cannot easily force the choice of a particular shell, we must
# make the effort to cope with whichever shell is being used.
# Fortunately, the only command we need to use that is shell specific is
# the testing of a file's existence for the purpose of working out when
# we are copying files to their original location.  That particular
# requirement is abstracted easily enough.
#
# The only other problem area was the change of directory when running
# temacs to dump emacs.exe (where gmake doesn't support cd foo in any
# useful way), but that has been resolved by modifying the Windows
# unexec function slightly to not require the directory change while
# still allowing objects and binaries to be in subdirectories.

# This doesn't work.
#SHELL:=$(COMSPEC)

# Determine whether make is using sh or cmd/command as shell; cmd.exe
# will output "ECHO is on" when echo is given by itself, while sh will
# not produce any output.
sh_output := $(shell echo)
ifeq "$(findstring ECHO, $(sh_output))" "ECHO"
THE_SHELL = $(COMSPEC)$(ComSpec)
SHELLTYPE=CMD
else
USING_SH = 1
THE_SHELL = $(SHELL)
SHELLTYPE=SH
endif

MAKETYPE=gmake

# The following "ifeq" does not appear to DTRT, and therefore breaks
# the build on mingw32. Also the -m option does not exist in many
# (reasonably recent even) versions of Cygwin. These issues need to be
# remedied before putting this cygpath kludge back in.

# Convert CURDIR to native file name, if in Cygwin format
ifeq "$(shell cygpath $(CURDIR))" "$(CURDIR)"
CURDIR	        := $(shell cygpath -m $(CURDIR))
endif

THISDIR		= .

# Cygwin has changed quoting rules somewhat since b20, in a way that
# affects makefiles using sh as the command processor, so we need to
# detect which rules to use.
ifdef USING_SH
sh_output := $(shell echo [Please ignore a syntax error on the next line - it is intentional] 1>&2)
sh_output := $(shell echo foo")
ifeq "$(sh_output)" ""
NEW_CYGWIN = 1
endif

# By default, newer versions of Cygwin mess with NTFS ACLs in an
# attempt to emulate traditional posix file permissions. This can
# cause bad effects, such as .exe files that are missing the
# FILE_EXECUTE/FILE_GENERIC_EXECUTE permissions when they are created
# with Cygwin commands that don't expect to be creating executable
# files. Then when we later use a non-Cygwin program to create the
# real .exe, the previous Cygwin defined ACL sticks.
CYGWIN=nontsec
export CYGWIN
endif

ALL_DEPS	= $^
EMPTY =
SPACE = $(EMPTY) $(EMPTY)

SUBSYSTEM_WINDOWS=-Wl,-subsystem,windows
SUBSYSTEM_CONSOLE=-Wl,-subsystem,console

# INSTALL_DIR is the directory into which emacs will be installed.
#
ifndef INSTALL_DIR
INSTALL_DIR     = $(CURDIR)/..
endif

export EMACSLOADPATH

# Determine the architecture we're running on.
# Define ARCH for our purposes;
# Define CPU for use by ntwin32.mak;
# Define CONFIG_H to the appropriate config.h for the system;
#
ifdef PROCESSOR_ARCHITECTURE
# We're on Windows NT
CPU		= $(PROCESSOR_ARCHITECTURE)
CONFIG_H	= config.nt
OS_TYPE		= windowsnt
 ifeq "$(PROCESSOR_ARCHITECTURE)" "x86"
ARCH		= i386
CPU		= i386
 else
  ifeq "$(PROCESSOR_ARCHITECTURE)" "MIPS"
ARCH		= mips
  else
   ifeq "$(PROCESSOR_ARCHITECTURE)" "ALPHA"
ARCH		= alpha
   else
    ifeq "$(PROCESSOR_ARCHITECTURE)" "PPC"
ARCH		= ppc
    else
error Unknown architecture type "$(PROCESSOR_ARCHITECTURE)"
    endif
   endif
  endif
 endif
else
# We're on Windows 95
ARCH		= i386
CPU		= i386
CONFIG_H	= config.nt
OS_TYPE		= windows95
endif

AR		= ar -rsc
AR_OUT		=
CC		= gcc
CC_OUT		= -o$(SPACE)
LINK		= gcc
LINK_OUT	= -o$(SPACE)
RC		= windres -O coff
RC_OUT		= -o$(SPACE)
RC_INCLUDE	= --include-dir$(SPACE)

libc		=
baselibs	=
O		= o
A		= a

BASE_LIBS	= $(libc) $(baselibs)

ADVAPI32	= -ladvapi32
COMCTL32	= -lcomctl32
COMDLG32	= -lcomdlg32
GDI32		= -lgdi32
MPR		= -lmpr
SHELL32		= -lshell32
USER32		= -luser32
WSOCK32		= -lwsock32
WINMM		= -lwinmm
WINSPOOL	= -lwinspool
OLE32		= -lole32

ifdef NOOPT
DEBUG_CFLAGS	= -DEMACSDEBUG
else
DEBUG_CFLAGS	=
endif
CFLAGS          = -I. -DWIN32_LEAN_AND_MEAN $(ARCH_CFLAGS) -D$(ARCH) -D_CRTAPI1=_cdecl \
		  $(DEBUG_CFLAGS) $(USER_CFLAGS) $(LOCAL_FLAGS)
EMACS_EXTRA_C_FLAGS = -DUSE_CRT_DLL=1

# see comments in allocate_heap in w32heap.c before changing any of the
# -stack, -heap, or -image-base settings.
TEMACS_EXTRA_LINK = -Wl,-stack,0x00800000 -Wl,-heap,0x00100000 -Wl,-image-base,0x01000000 $(SUBSYSTEM_CONSOLE) -Wl,-entry,__start -Wl,-Map,$(BLD)/temacs.map

ifdef NOOPT
OBJDIR          = oo
else
OBJDIR          = oo-spd
endif
$(OBJDIR):;	-mkdir "$(OBJDIR)"
BLD             = $(OBJDIR)/$(ARCH)
stamp_BLD:      $(OBJDIR)
		-mkdir "$(BLD)"
		echo $(BLD) > $@

COMPILER_TEMP_FILES =

CP		= cp -f
CP_DIR		= cp -rf
DEL		= rm
DEL_TREE	= rm -r

ifdef USING_SH

IFNOTSAMEDIR	= if [ ! -s ../same-dir.tst ] ; then
FOREACH		= for f in
FORVAR		= $${f}
FORDO		= ; do
ENDFOR		= ; done
ENDIF		= ; fi
ARGQUOTE	= '
ifdef NEW_CYGWIN
DQUOTE		= "
else
DQUOTE		= ""
endif

else

IFNOTSAMEDIR	= if not exist ../same-dir.tst
FOREACH		= for %%f in (
FORVAR		= %%f
FORDO		= ) do
ENDFOR		=
ENDIF		=
ARGQUOTE	= "
DQUOTE		= \"

endif

ifdef NODEBUG
DEBUG_FLAG =
DEBUG_LINK =
else
DEBUG_FLAG = -gstabs+ -g3
DEBUG_LINK = -gstabs+ -g3
endif

ifdef NOCYGWIN
NOCYGWIN = -mno-cygwin
endif

ifeq "$(ARCH)" "i386"
ifdef NOOPT
ARCH_CFLAGS     = -D_X86_=1 -c $(DEBUG_FLAG) $(NOCYGWIN)
else
ARCH_CFLAGS     = -D_X86_=1 -c $(DEBUG_FLAG) $(NOCYGWIN) $(MCPU_FLAG) -O2 \
		  # -fbuiltin \
		  # -finline-functions \
		  # -fomit-frame-pointer
endif
ARCH_LDFLAGS	= $(SYS_LDFLAGS)
else
ERROR Unknown architecture type "$(ARCH)".
endif

LINK_FLAGS	= $(ARCH_LDFLAGS) $(DEBUG_LINK) $(NOCYGWIN) $(USER_LDFLAGS)

export XMFLAGS

.DEFAULT:

$(BLD)/%.o: %.c
		$(CC) $(CFLAGS) $(CC_OUT)$@ $<

# arch-tag: 35eb9662-8534-4bcf-b891-0730a09d657f
#  -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
#  Copyright (C) 2000, 2001, 2002, 2003, 2004,
#                2005, 2006, 2007, 2008 Free Software Foundation, Inc.
#
#  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 3, 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., 51 Franklin Street, Fifth Floor,
#  Boston, MA 02110-1301, USA.
#

ALL = emacs

.PHONY: $(ALL)

# 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 -DWINDOWSNT -DDOS_NT -DHAVE_CONFIG_H -I../nt/inc -D_UCHAR_T -DHAVE_NTGUI=1 $(EMACS_EXTRA_C_FLAGS)

EMACS           = $(BLD)/emacs.exe
TEMACS          = $(BLD)/temacs.exe
TEMACS_TMP      = $(BLD)/temacs.bin
TLIB0           = $(BLD)/temacs0.$(A)
TLIB1           = $(BLD)/temacs1.$(A)
TLIBW32         = $(BLD)/temacw32.$(A)
TOBJ            = $(BLD)/firstfile.$(O)
TRES		= $(BLD)/emacs.res
TLASTLIB	= $(BLD)/lastfile.$(A)

DOC		= $(OBJDIR)/etc/DOC-X

FULL_LINK_FLAGS      = $(LINK_FLAGS) $(TEMACS_EXTRA_LINK)

#
# 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.$(O) in a separate lib, since we need to have firstfile.$(O)
# as the "main" object file when linking.
#
OBJ0 =  $(BLD)/emacs.$(O)

OBJ1 =  $(BLD)/abbrev.$(O)			\
	$(BLD)/alloc.$(O)			\
	$(BLD)/atimer.$(O)			\
	$(BLD)/buffer.$(O)			\
	$(BLD)/bytecode.$(O)			\
	$(BLD)/callint.$(O)			\
	$(BLD)/callproc.$(O)			\
	$(BLD)/casefiddle.$(O)			\
	$(BLD)/cm.$(O)				\
	$(BLD)/cmds.$(O)			\
	$(BLD)/data.$(O)			\
	$(BLD)/dired.$(O)			\
	$(BLD)/dispnew.$(O)			\
	$(BLD)/doc.$(O)				\
	$(BLD)/doprnt.$(O)			\
	$(BLD)/editfns.$(O)			\
	$(BLD)/eval.$(O)			\
	$(BLD)/fileio.$(O)			\
	$(BLD)/filelock.$(O)			\
	$(BLD)/filemode.$(O)			\
	$(BLD)/fns.$(O)				\
	$(BLD)/indent.$(O)			\
	$(BLD)/insdel.$(O)			\
	$(BLD)/keyboard.$(O)			\
	$(BLD)/keymap.$(O)			\
	$(BLD)/lread.$(O)			\
	$(BLD)/macros.$(O)			\
	$(BLD)/marker.$(O)			\
	$(BLD)/md5.$(O)                         \
	$(BLD)/minibuf.$(O)			\
	$(BLD)/w32.$(O)				\
	$(BLD)/w32heap.$(O)			\
	$(BLD)/w32inevt.$(O)			\
	$(BLD)/w32proc.$(O)			\
	$(BLD)/w32console.$(O)			\
	$(BLD)/print.$(O)			\
	$(BLD)/process.$(O)			\
	$(BLD)/regex.$(O)			\
	$(BLD)/scroll.$(O)			\
	$(BLD)/search.$(O)			\
	$(BLD)/sound.$(O)			\
	$(BLD)/syntax.$(O)			\
	$(BLD)/sysdep.$(O)			\
	$(BLD)/term.$(O)			\
	$(BLD)/termcap.$(O)			\
	$(BLD)/tparam.$(O)			\
	$(BLD)/undo.$(O)			\
	$(BLD)/unexw32.$(O)			\
	$(BLD)/window.$(O)			\
	$(BLD)/xdisp.$(O)			\
	$(BLD)/casetab.$(O)			\
	$(BLD)/floatfns.$(O)			\
	$(BLD)/frame.$(O)			\
	$(BLD)/gmalloc.$(O)			\
	$(BLD)/intervals.$(O)			\
	$(BLD)/composite.$(O)			\
	$(BLD)/ralloc.$(O)			\
	$(BLD)/textprop.$(O)			\
	$(BLD)/vm-limit.$(O)			\
	$(BLD)/region-cache.$(O)		\
	$(BLD)/strftime.$(O)			\
	$(BLD)/charset.$(O)			\
	$(BLD)/coding.$(O)			\
	$(BLD)/category.$(O)			\
	$(BLD)/ccl.$(O)				\
	$(BLD)/fontset.$(O)			\
	$(BLD)/fringe.$(O)			\
	$(BLD)/image.$(O)

WIN32OBJ = $(BLD)/w32term.$(O)			\
	   $(BLD)/w32xfns.$(O)			\
	   $(BLD)/w32fns.$(O)			\
	   $(BLD)/xfaces.$(O)			\
	   $(BLD)/w32select.$(O)		\
	   $(BLD)/w32menu.$(O)			\
	   $(BLD)/w32reg.$(O)			\
	   $(BLD)/w32bdf.$(O)			\
	   $(BLD)/w32ime.$(O)

LIBS =  $(TLIB0)	\
	$(TLIB1)	\
	$(TLIBW32)	\
	$(TLASTLIB)	\
	$(WINMM)	\
	$(ADVAPI32)	\
	$(GDI32)	\
	$(COMDLG32)	\
	$(USER32)	\
	$(MPR)		\
	$(SHELL32)	\
	$(WINSPOOL)	\
	$(OLE32)	\
	$(COMCTL32)	\
	$(libc)

#
# Build the executable and dump it.
#
all:            $(ALL)

#
# The dumped executable
#
emacs:          stamp_BLD $(EMACS)
$(EMACS):       $(DOC) $(TEMACS)
	"$(THISDIR)/$(BLD)/temacs.exe" -batch -l loadup dump
	-"$(THISDIR)/$(BLD)/emacs.exe" -q -batch -f list-load-path-shadows

#
# 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:         stamp_BLD $(TEMACS)
$(TEMACS):      $(TLIB0) $(TLIB1) $(TLIBW32) $(TLASTLIB) $(TOBJ) $(TRES) \
		  ../nt/$(BLD)/addsection.exe
	$(LINK) $(LINK_OUT)$(TEMACS_TMP) $(FULL_LINK_FLAGS) $(TOBJ) $(TRES) $(LIBS)
	"../nt/$(BLD)/addsection" "$(TEMACS_TMP)" "$(TEMACS)" EMHEAP 16
	echo $(OBJ0) > $(BLD)/buildobj.lst
	echo $(OBJ1) >> $(BLD)/buildobj.lst
	echo $(WIN32OBJ) >> $(BLD)/buildobj.lst

bootstrap: bootstrap-emacs

#
# Build a temacs with a sufficiently large PURESIZE to load the
# Lisp files from loadup.el in source form.
#
# WARNING: Do NOT split the part inside $(ARGQUOTE)s into multiple lines as
#          this can break with GNU Make 3.81 and later if sh.exe is used.
bootstrap-temacs:
	$(MAKE) $(MFLAGS) $(XMFLAGS) temacs CFLAGS=$(ARGQUOTE)$(CFLAGS) -DPURESIZE=5000000$(ARGQUOTE)

#
# Dump an Emacs executable named bootstrap-emacs containing the
# files from loadup.el in source form.
#
bootstrap-emacs: bootstrap-temacs
	"$(THISDIR)/$(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.$(O)
	- $(DEL) $(BLD)/data.$(O)
	- $(DEL) $(BLD)/intervals.$(O)
	- $(DEL) $(BLD)/keyboard.$(O)
	- $(DEL) $(BLD)/keymap.$(O)

#
# 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 stamp_BLD
	$(RC) $(RC_INCLUDE)../nt $(RC_OUT)$@ ../nt/emacs.rc

#
# Build the library.  Split up the build into two phases...otherwise we
# run out of command line space.
#
$(TLIB0):       $(OBJ0)
	- $(DEL) $@
	$(AR) $(AR_OUT)$@ $(ALL_DEPS)
$(TLIB1):       $(OBJ1)
	- $(DEL) $@
	$(AR) $(AR_OUT)$@ $(ALL_DEPS)
$(TLIBW32):	$(WIN32OBJ)
	- $(DEL) $@
	$(AR) $(AR_OUT)$@ $(ALL_DEPS)

#
# Place lastfile.$(O) 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.$(O)
	- $(DEL) $@
	$(AR) $(AR_OUT)$@ $(ALL_DEPS)

#
# Assuming INSTALL_DIR is defined, build and install emacs in it.
#
install:        $(ALL)
	- mkdir "$(INSTALL_DIR)/bin"
	$(CP) $(EMACS) $(INSTALL_DIR)/bin

#
# Maintenance
#
# We used to delete *~, s/*~, m/*~ here, but that might inadvertently
# remove precious files if it happens to match their short 8+3 aliases.
clean:
	- $(DEL) "s/*.h~" "m/*.h~"
	- $(DEL) $(COMPILER_TEMP_FILES)
	- $(DEL_TREE) $(OBJDIR)
	- $(DEL) stamp_BLD

distclean:	clean
	- $(DEL) config.h epaths.h

cleanall:	clean
	- $(DEL_TREE) obj
	- $(DEL_TREE) obj-spd
	- $(DEL_TREE) oo
	- $(DEL_TREE) oo-spd

### DEPENDENCIES ###

EMACS_ROOT	= ..
SRC		= .

$(BLD)/abbrev.$(O) : \
	$(SRC)/abbrev.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/commands.h \
	$(SRC)/dispextern.h \
	$(SRC)/syntax.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/alloc.$(O) : \
	$(SRC)/alloc.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/frame.h \
	$(SRC)/intervals.h \
	$(SRC)/keyboard.h \
	$(SRC)/process.h \
	$(SRC)/puresize.h \
	$(SRC)/syssignal.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/atimer.$(O) : \
	$(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)/blockinput.h \
	$(SRC)/syssignal.h \
	$(SRC)/systime.h

$(BLD)/buffer.$(O) : \
	$(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)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/commands.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/frame.h \
	$(SRC)/indent.h \
	$(SRC)/intervals.h \
	$(SRC)/keyboard.h \
	$(SRC)/keymap.h \
	$(SRC)/region-cache.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/bytecode.$(O) : \
	$(SRC)/bytecode.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/syntax.h \
	$(SRC)/window.h

$(BLD)/callint.$(O) : \
	$(SRC)/callint.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/commands.h \
	$(SRC)/dispextern.h \
	$(SRC)/keyboard.h \
	$(SRC)/keymap.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/callproc.$(O) : \
	$(SRC)/callproc.c \
	$(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 \
	$(EMACS_ROOT)/nt/inc/sys/ioctl.h \
	$(EMACS_ROOT)/nt/inc/sys/file.h \
	$(SRC)/buffer.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h \
	$(SRC)/commands.h \
	$(SRC)/composite.h \
	$(SRC)/epaths.h \
	$(SRC)/process.h \
	$(SRC)/syssignal.h \
	$(SRC)/systty.h \
	$(SRC)/w32.h

$(BLD)/casefiddle.$(O) : \
	$(SRC)/casefiddle.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/commands.h \
	$(SRC)/composite.h \
	$(SRC)/keymap.h \
	$(SRC)/syntax.h

$(BLD)/casetab.$(O) : \
	$(SRC)/casetab.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h

$(BLD)/category.$(O) : \
	$(SRC)/category.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/category.h \
	$(SRC)/charset.h \
	$(SRC)/keymap.h

$(BLD)/ccl.$(O) : \
	$(SRC)/ccl.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h

$(BLD)/charset.$(O) : \
	$(SRC)/charset.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h \
	$(SRC)/composite.h \
	$(SRC)/disptab.h

$(BLD)/cm.$(O) : \
	$(SRC)/cm.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/cm.h \
	$(SRC)/termhooks.h

$(BLD)/cmds.$(O) : \
	$(SRC)/cmds.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/commands.h \
	$(SRC)/dispextern.h \
	$(SRC)/keyboard.h \
	$(SRC)/keymap.h \
	$(SRC)/syntax.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/coding.$(O) : \
	$(SRC)/coding.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/intervals.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/composite.$(O) : \
	$(SRC)/composite.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/intervals.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h

$(BLD)/data.$(O) : \
	$(SRC)/data.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/frame.h \
	$(SRC)/keyboard.h \
	$(SRC)/puresize.h \
	$(SRC)/syssignal.h

$(BLD)/dired.$(O) : \
	$(SRC)/dired.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h \
	$(SRC)/commands.h \
	$(SRC)/ndir.h \
	$(SRC)/regex.h \
	$(SRC)/systime.h

$(BLD)/dispnew.$(O) : \
	$(SRC)/dispnew.c \
	$(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 \
	$(EMACS_ROOT)/nt/inc/sys/file.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/cm.h \
	$(SRC)/commands.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/disptab.h \
	$(SRC)/frame.h \
	$(SRC)/indent.h \
	$(SRC)/intervals.h \
	$(SRC)/keyboard.h \
	$(SRC)/process.h \
	$(SRC)/syssignal.h \
	$(SRC)/systime.h \
	$(SRC)/termchar.h \
	$(SRC)/termhooks.h \
	$(SRC)/termopts.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32term.h \
	$(SRC)/window.h

$(BLD)/doc.$(O) : \
	$(SRC)/doc.c \
	$(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 \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/keyboard.h \
	$(SRC)/keymap.h

$(BLD)/doprnt.$(O) : \
	$(SRC)/doprnt.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/charset.c

$(BLD)/editfns.$(O) : \
	$(SRC)/editfns.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(EMACS_ROOT)/nt/inc/pwd.h \
	$(SRC)/buffer.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/frame.h \
	$(SRC)/intervals.h \
	$(SRC)/systime.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/emacs.$(O) : \
	$(SRC)/emacs.c \
	$(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 \
	$(EMACS_ROOT)/nt/inc/sys/file.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/commands.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/intervals.h \
	$(SRC)/keyboard.h \
	$(SRC)/keymap.h \
	$(SRC)/process.h \
	$(SRC)/syssignal.h \
	$(SRC)/systime.h \
	$(SRC)/systty.h \
	$(SRC)/termhooks.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32heap.h \
	$(SRC)/window.h

$(BLD)/eval.$(O) : \
	$(SRC)/eval.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/commands.h \
	$(SRC)/dispextern.h \
	$(SRC)/keyboard.h \
	$(SRC)/systime.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h

$(BLD)/fileio.$(O) : \
	$(SRC)/fileio.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(EMACS_ROOT)/nt/inc/pwd.h \
	$(EMACS_ROOT)/nt/inc/sys/param.h \
	$(EMACS_ROOT)/nt/inc/sys/file.h \
	$(SRC)/buffer.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h \
	$(SRC)/commands.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/intervals.h \
	$(SRC)/systime.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/filelock.$(O) : \
	$(SRC)/filelock.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(EMACS_ROOT)/nt/inc/pwd.h \
	$(EMACS_ROOT)/nt/inc/sys/file.h \
	$(EMACS_ROOT)/src/epaths.h \
	$(SRC)/buffer.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h \
	$(SRC)/systime.h

$(BLD)/filemode.$(O) : \
	$(SRC)/filemode.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

$(BLD)/firstfile.$(O) : \
	$(SRC)/firstfile.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h

$(BLD)/floatfns.$(O) : \
	$(SRC)/floatfns.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/syssignal.h

$(BLD)/fns.$(O) : \
	$(SRC)/fns.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(EMACS_ROOT)/nt/inc/langinfo.h \
	$(EMACS_ROOT)/nt/inc/nl_types.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h \
	$(SRC)/commands.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/frame.h \
	$(SRC)/intervals.h \
	$(SRC)/keyboard.h \
	$(SRC)/keymap.h \
	$(SRC)/md5.h \
	$(SRC)/systime.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/fontset.$(O) : \
	$(SRC)/fontset.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/dispextern.h \
	$(SRC)/fontset.h \
	$(SRC)/frame.h \
	$(SRC)/keyboard.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/frame.$(O) : \
	$(SRC)/frame.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/commands.h \
	$(SRC)/dispextern.h \
	$(SRC)/fontset.h \
	$(SRC)/frame.h \
	$(SRC)/keyboard.h \
	$(SRC)/systime.h \
	$(SRC)/termhooks.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32term.h \
	$(SRC)/window.h

$(BLD)/fringe.$(O) : \
	$(SRC)/fringe.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/dispextern.h \
	$(SRC)/frame.h \
	$(SRC)/systime.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/gmalloc.$(O) : \
	$(SRC)/gmalloc.c \
	$(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 \
	$(SRC)/getpagesize.h

$(BLD)/image.$(O): \
	$(SRC)/image.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/dispextern.h \
	$(SRC)/epaths.h \
	$(SRC)/frame.h \
	$(SRC)/systime.h \
	$(SRC)/termhooks.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32heap.h \
	$(SRC)/w32term.h \
	$(SRC)/window.h

$(BLD)/indent.$(O) : \
	$(SRC)/indent.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/category.h \
	$(SRC)/charset.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/disptab.h \
	$(SRC)/frame.h \
	$(SRC)/indent.h \
	$(SRC)/intervals.h \
	$(SRC)/keyboard.h \
	$(SRC)/region-cache.h \
	$(SRC)/termchar.h \
	$(SRC)/termopts.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/insdel.$(O) : \
	$(SRC)/insdel.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/intervals.h \
	$(SRC)/region-cache.h \
	$(SRC)/systime.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/intervals.$(O) : \
	$(SRC)/intervals.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/intervals.h \
	$(SRC)/keyboard.h \
	$(SRC)/keymap.h \
	$(SRC)/puresize.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h

$(BLD)/keyboard.$(O) : \
	$(SRC)/keyboard.c \
	$(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 \
	$(EMACS_ROOT)/nt/inc/sys/file.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/commands.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/disptab.h \
	$(SRC)/frame.h \
	$(SRC)/intervals.h \
	$(SRC)/keyboard.h \
	$(SRC)/keymap.h \
	$(SRC)/macros.h \
	$(SRC)/puresize.h \
	$(SRC)/syntax.h \
	$(SRC)/syssignal.h \
	$(SRC)/systime.h \
	$(SRC)/systty.h \
	$(SRC)/termchar.h \
	$(SRC)/termhooks.h \
	$(SRC)/termopts.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32term.h \
	$(SRC)/window.h

$(BLD)/keymap.$(O) : \
	$(SRC)/keymap.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/commands.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/intervals.h \
	$(SRC)/keyboard.h \
	$(SRC)/keymap.h \
	$(SRC)/puresize.h \
	$(SRC)/systime.h \
	$(SRC)/termhooks.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h

$(BLD)/lastfile.$(O) : \
	$(SRC)/lastfile.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h

$(BLD)/lread.$(O) : \
	$(SRC)/lread.c \
	$(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 \
	$(EMACS_ROOT)/src/epaths.h \
	$(SRC)/buffer.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h \
	$(SRC)/commands.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/intervals.h \
	$(SRC)/keyboard.h \
	$(SRC)/termhooks.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h

$(BLD)/macros.$(O) : \
	$(SRC)/macros.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/commands.h \
	$(SRC)/dispextern.h \
	$(SRC)/keyboard.h \
	$(SRC)/macros.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/marker.$(O) : \
	$(SRC)/marker.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h

$(BLD)/md5.$(O) : \
	$(SRC)/md5.c \
	$(SRC)/md5.h

$(BLD)/minibuf.$(O) : \
	$(SRC)/minibuf.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/commands.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/frame.h \
	$(SRC)/intervals.h \
	$(SRC)/keyboard.h \
	$(SRC)/keymap.h \
	$(SRC)/syntax.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/w32.$(O) : \
	$(SRC)/w32.c \
	$(EMACS_ROOT)/nt/inc/pwd.h \
	$(SRC)/s/ms-w32.h \
	$(SRC)/m/intel386.h \
	$(SRC)/config.h \
	$(SRC)/ndir.h \
	$(SRC)/systime.h \
	$(SRC)/w32.h \
	$(SRC)/w32heap.h

$(BLD)/w32heap.$(O) : \
	$(SRC)/w32heap.c \
	$(SRC)/s/ms-w32.h \
	$(SRC)/m/intel386.h \
	$(SRC)/config.h \
	$(SRC)/w32heap.h

$(BLD)/w32inevt.$(O) : \
	$(SRC)/w32inevt.c \
	$(SRC)/s/ms-w32.h \
	$(SRC)/m/intel386.h \
	$(SRC)/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/frame.h \
	$(SRC)/keyboard.h \
	$(SRC)/systime.h \
	$(SRC)/termhooks.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32heap.h \
	$(SRC)/w32term.h

$(BLD)/w32proc.$(O) : \
	$(SRC)/w32proc.c \
	$(SRC)/s/ms-w32.h \
	$(SRC)/m/intel386.h \
	$(EMACS_ROOT)/nt/inc/langinfo.h \
	$(EMACS_ROOT)/nt/inc/nl_types.h \
	$(SRC)/config.h \
	$(SRC)/process.h \
	$(SRC)/syssignal.h \
	$(SRC)/systime.h \
	$(SRC)/syswait.h \
	$(SRC)/w32.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32heap.h \
	$(SRC)/w32term.h

$(BLD)/w32console.$(O) : \
	$(SRC)/w32console.c \
	$(SRC)/s/ms-w32.h \
	$(SRC)/m/intel386.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h \
	$(SRC)/config.h \
	$(SRC)/dispextern.h \
	$(SRC)/disptab.h \
	$(SRC)/frame.h \
	$(SRC)/termhooks.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32inevt.h

$(BLD)/print.$(O) : \
	$(SRC)/print.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/frame.h \
	$(SRC)/intervals.h \
	$(SRC)/keyboard.h \
	$(SRC)/process.h \
	$(SRC)/termchar.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/process.$(O) : \
	$(SRC)/process.c \
	$(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 \
	$(EMACS_ROOT)/nt/inc/sys/file.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h \
	$(SRC)/commands.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/frame.h \
	$(SRC)/keyboard.h \
	$(SRC)/process.h \
	$(SRC)/sysselect.h \
	$(SRC)/syssignal.h \
	$(SRC)/systime.h \
	$(SRC)/systty.h \
	$(SRC)/syswait.h \
	$(SRC)/termhooks.h \
	$(SRC)/termopts.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/ralloc.$(O) : \
	$(SRC)/ralloc.c \
	$(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 \
	$(SRC)/s/ms-w32.h \
	$(SRC)/m/intel386.h \
	$(SRC)/config.h \
	$(SRC)/getpagesize.h

$(BLD)/regex.$(O) : \
	$(SRC)/regex.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)/buffer.h \
	$(SRC)/category.h \
	$(SRC)/charset.h \
	$(SRC)/config.h \
	$(SRC)/regex.h \
	$(SRC)/syntax.h

$(BLD)/region-cache.$(O) : \
	$(SRC)/region-cache.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/region-cache.h

$(BLD)/scroll.$(O) : \
	$(SRC)/scroll.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/dispextern.h \
	$(SRC)/frame.h \
	$(SRC)/keyboard.h \
	$(SRC)/termchar.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/search.$(O) : \
	$(SRC)/search.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/category.h \
	$(SRC)/charset.h \
	$(SRC)/commands.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/intervals.h \
	$(SRC)/regex.h \
	$(SRC)/region-cache.h \
	$(SRC)/syntax.h \
	$(SRC)/systime.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h

$(BLD)/sound.$(O) : \
	$(SRC)/sound.c \
	$(SRC)/lisp.h \
	$(SRC)/dispextern.h \
	$(SRC)/atimer.h \
	$(SRC)/syssignal.h

$(BLD)/strftime.$(O) : \
	$(SRC)/strftime.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h

$(BLD)/syntax.$(O) : \
	$(SRC)/syntax.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/category.h \
	$(SRC)/charset.h \
	$(SRC)/commands.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/intervals.h \
	$(SRC)/keymap.h \
	$(SRC)/syntax.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h

$(BLD)/sysdep.$(O) : \
	$(SRC)/sysdep.c \
	$(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 \
	$(EMACS_ROOT)/nt/inc/sys/file.h \
	$(EMACS_ROOT)/nt/inc/sys/ioctl.h \
	$(EMACS_ROOT)/nt/inc/sys/file.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/dispextern.h \
	$(SRC)/frame.h \
	$(SRC)/keyboard.h \
	$(SRC)/ndir.h \
	$(SRC)/process.h \
	$(SRC)/sysselect.h \
	$(SRC)/syssignal.h \
	$(SRC)/systime.h \
	$(SRC)/systty.h \
	$(SRC)/syswait.h \
	$(SRC)/termchar.h \
	$(SRC)/termhooks.h \
	$(SRC)/termopts.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/term.$(O) : \
	$(SRC)/term.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/cm.h \
	$(SRC)/coding.h \
	$(SRC)/dispextern.h \
	$(SRC)/disptab.h \
	$(SRC)/frame.h \
	$(SRC)/keyboard.h \
	$(SRC)/keymap.h \
	$(SRC)/termchar.h \
	$(SRC)/termhooks.h \
	$(SRC)/termopts.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/termcap.$(O) : \
	$(SRC)/termcap.c \
	$(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

$(BLD)/textprop.$(O) : \
	$(SRC)/textprop.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/intervals.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/window.h

$(BLD)/tparam.$(O) : \
	$(SRC)/tparam.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h

$(BLD)/undo.$(O) : \
	$(SRC)/undo.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/buffer.h \
	$(SRC)/commands.h

$(BLD)/unexw32.$(O) : \
	$(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.$(O) : \
	$(SRC)/vm-limit.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/mem-limits.h

$(BLD)/window.$(O) : \
	$(SRC)/window.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/commands.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/disptab.h \
	$(SRC)/frame.h \
	$(SRC)/indent.h \
	$(SRC)/intervals.h \
	$(SRC)/keyboard.h \
	$(SRC)/keymap.h \
	$(SRC)/systime.h \
	$(SRC)/termchar.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32term.h \
	$(SRC)/window.h

$(BLD)/xdisp.$(O) : \
	$(SRC)/xdisp.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h \
	$(SRC)/commands.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/disptab.h \
	$(SRC)/fontset.h \
	$(SRC)/frame.h \
	$(SRC)/indent.h \
	$(SRC)/intervals.h \
	$(SRC)/keyboard.h \
	$(SRC)/keymap.h \
	$(SRC)/macros.h \
	$(SRC)/process.h \
	$(SRC)/region-cache.h \
	$(SRC)/systime.h \
	$(SRC)/termchar.h \
	$(SRC)/termhooks.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32term.h \
	$(SRC)/window.h

$(BLD)/xfaces.$(O): \
	$(SRC)/xfaces.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/fontset.h \
	$(SRC)/frame.h \
	$(SRC)/intervals.h \
	$(SRC)/keyboard.h \
	$(SRC)/systime.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32term.h \
	$(SRC)/window.h

$(BLD)/w32fns.$(O): \
	$(SRC)/w32fns.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/epaths.h \
	$(SRC)/fontset.h \
	$(SRC)/frame.h \
	$(SRC)/intervals.h \
	$(SRC)/keyboard.h \
	$(SRC)/systime.h \
	$(SRC)/termhooks.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32heap.h \
	$(SRC)/w32term.h \
	$(SRC)/window.h

$(BLD)/w32menu.$(O): \
	$(SRC)/w32menu.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h \
	$(SRC)/dispextern.h \
	$(SRC)/frame.h \
	$(SRC)/keyboard.h \
	$(SRC)/keymap.h \
	$(SRC)/systime.h \
	$(SRC)/termhooks.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32term.h \
	$(SRC)/window.h

$(BLD)/w32term.$(O): \
	$(SRC)/w32term.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/disptab.h \
	$(SRC)/fontset.h \
	$(SRC)/frame.h \
	$(SRC)/gnu.h \
	$(SRC)/intervals.h \
	$(SRC)/keyboard.h \
	$(SRC)/keymap.h \
	$(SRC)/systime.h \
	$(SRC)/systty.h \
	$(SRC)/termchar.h \
	$(SRC)/termhooks.h \
	$(SRC)/termopts.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32heap.h \
	$(SRC)/w32term.h \
	$(SRC)/window.h

$(BLD)/w32select.$(O): \
	$(SRC)/w32select.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/buffer.h \
	$(SRC)/ccl.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h \
	$(SRC)/composite.h \
	$(SRC)/dispextern.h \
	$(SRC)/frame.h \
	$(SRC)/keyboard.h \
	$(SRC)/systime.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32heap.h \
	$(SRC)/w32term.h

$(BLD)/w32reg.$(O): \
	$(SRC)/w32reg.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/systime.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32term.h

$(BLD)/w32xfns.$(O): \
	$(SRC)/w32xfns.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/charset.h \
	$(SRC)/fontset.h \
	$(SRC)/frame.h \
	$(SRC)/keyboard.h \
	$(SRC)/systime.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32term.h

$(BLD)/w32bdf.$(O): \
	$(SRC)/w32bdf.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/atimer.h \
	$(SRC)/blockinput.h \
	$(SRC)/charset.h \
	$(SRC)/dispextern.h \
	$(SRC)/fontset.h \
	$(SRC)/frame.h \
	$(SRC)/keyboard.h \
	$(SRC)/systime.h \
	$(SRC)/w32bdf.h \
	$(SRC)/w32gui.h \
	$(SRC)/w32term.h

$(BLD)/w32ime.$(O): \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/w32ime.c \
	$(SRC)/frame.h \
	$(SRC)/window.h \
	$(SRC)/dispextern.h \
	$(SRC)/w32term.h \
	$(SRC)/buffer.h \
	$(SRC)/charset.h \
	$(SRC)/coding.h \
	$(SRC)/lisp.h

# Each object file depends on stamp_BLD, because in parallel builds we must
# make sure $(BLD) exists before starting compilations.
#
$(OBJ0) $(OBJ1) $(WIN32OBJ) $(BLD)/lastfile.$(O) $(BLD)/firstfile.$(O): stamp_BLD
