view src/makefile.nt @ 22363:d00f146c3e9d

#include sys/file.h (sys_access): Provide our own implementation which recognizes D_OK. (is_exec): New function. (stat): Use it. (init_environment): Set TMPDIR to an existing directory. Abort if none of the usual places is available. (sys_rename): On Windows 95, choose a temp name that includes the original file's base name and use an explicit loop rather than calling mktemp. Only attempt to unlink the newname if the rename fails, rather than second-guessing whether the old and new names refer to the same file.
author Karl Heuer <kwzh@gnu.org>
date Fri, 05 Jun 1998 16:08:32 +0000
parents 7139cd22a2f7
children e283153313b6
line wrap: on
line source

#  Makefile for GNU Emacs on the Microsoft W32 API.
#  Copyright (c) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
#   Tim Fleehart (apollo@online.com)            17-Apr-92
#   Geoff Voelker (voelker@cs.washington.edu)   11-20-93
#
#  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

SUBSYSTEM=console

#
# HAVE_CONFIG_H is required by some generic gnu sources stuck into
# the emacs source tree.
#
LOCAL_FLAGS     = -Demacs=1 -DWINDOWSNT -DDOS_NT -DHAVE_CONFIG_H -I..\nt\inc
!ifdef NTGUI
LOCAL_FLAGS     = $(LOCAL_FLAGS) -DHAVE_NTGUI=1
!endif

EMACS           = $(BLD)\emacs.exe
TEMACS          = $(BLD)\temacs.exe
TLIB0           = $(BLD)\temacs0.lib
TLIB1           = $(BLD)\temacs1.lib
TLIB2           = $(BLD)\temacs2.lib
!IFDEF NTGUI
TLIBW32         = $(BLD)\temacw32.lib
!ELSE
TLIBW32		=
!ENDIF
TOBJ            = $(BLD)\firstfile.obj
!if $(MSVCNT11)
TRES		= $(BLD)\emacs.res
!else
TRES		= $(BLD)\emacs.rbj
!endif
TLASTLIB	= $(BLD)\lastfile.lib

# see comments in allocate_heap in w32heap.c before changing any of the
# -stack, -heap, or -base settings.
!if "$(BUILD_TYPE)" == "spd"
LINK_FLAGS      = $(ARCH_LDFLAGS) -stack:0x00800000 -heap:0x00100000 -base:0x01000000 -debug:full -pdb:$(BLD)\temacs.pdb -machine:$(ARCH) -subsystem:$(SUBSYSTEM) -entry:_start -map:$(BLD)\temacs.map
!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
!endif

#
# Split up the objects into two sets so that we don't run out of
# command line space when we link them into a library.
#
# Put emacs.obj in a separate lib, since we need to have firstfile.obj
# as the "main" object file when linking.
#
OBJ0 =  $(BLD)\emacs.obj

OBJ1 =  $(BLD)\abbrev.obj       \
	$(BLD)\alloc.obj        \
	$(BLD)\alloca.obj       \
	$(BLD)\buffer.obj       \
	$(BLD)\bytecode.obj     \
	$(BLD)\callint.obj      \
	$(BLD)\callproc.obj     \
	$(BLD)\casefiddle.obj	\
	$(BLD)\cm.obj           \
	$(BLD)\cmds.obj         \
	$(BLD)\data.obj         \
	$(BLD)\dired.obj        \
	$(BLD)\dispnew.obj      \
	$(BLD)\doc.obj          \
	$(BLD)\doprnt.obj       \
	$(BLD)\editfns.obj      \
	$(BLD)\eval.obj         \
	$(BLD)\fileio.obj       \
	$(BLD)\filelock.obj     \
	$(BLD)\filemode.obj     \
	$(BLD)\fns.obj          \
	$(BLD)\indent.obj       \
	$(BLD)\insdel.obj       \
	$(BLD)\keyboard.obj     \
	$(BLD)\keymap.obj       \
	$(BLD)\lread.obj        \
	$(BLD)\macros.obj       \
	$(BLD)\marker.obj       \
	$(BLD)\minibuf.obj      \
	$(BLD)\mocklisp.obj

OBJ2 =  $(BLD)\w32.obj           \
	$(BLD)\w32heap.obj       \
	$(BLD)\w32inevt.obj      \
	$(BLD)\w32proc.obj       \
	$(BLD)\w32console.obj       \
	$(BLD)\print.obj        \
	$(BLD)\process.obj      \
	$(BLD)\regex.obj        \
	$(BLD)\scroll.obj       \
	$(BLD)\search.obj       \
	$(BLD)\syntax.obj       \
	$(BLD)\sysdep.obj       \
	$(BLD)\term.obj         \
	$(BLD)\termcap.obj      \
	$(BLD)\tparam.obj       \
	$(BLD)\undo.obj         \
	$(BLD)\unexw32.obj       \
	$(BLD)\window.obj       \
	$(BLD)\xdisp.obj        \
	$(BLD)\casetab.obj      \
	$(BLD)\floatfns.obj     \
	$(BLD)\frame.obj        \
	$(BLD)\gmalloc.obj      \
	$(BLD)\intervals.obj    \
	$(BLD)\ralloc.obj       \
	$(BLD)\textprop.obj     \
	$(BLD)\vm-limit.obj	\
	$(BLD)\region-cache.obj	\
	$(BLD)\strftime.obj	\
	$(BLD)\charset.obj	\
	$(BLD)\coding.obj	\
	$(BLD)\category.obj	\
	$(BLD)\ccl.obj		\
	$(BLD)\fontset.obj

WIN32OBJ = $(BLD)\w32term.obj	\
	   $(BLD)\w32xfns.obj	\
	   $(BLD)\w32fns.obj	\
	   $(BLD)\w32faces.obj	\
	   $(BLD)\w32select.obj	\
	   $(BLD)\w32menu.obj	\
	   $(BLD)\w32reg.obj

LIBS =  $(TLIB0)	\
	$(TLIB1)	\
	$(TLIB2)	\
!IFDEF NTGUI
	$(TLIBW32)      \
!ENDIF
	$(TLASTLIB)	\
!IFDEF NTGUI
	gdi32.lib       \
	comdlg32.lib    \
!ENDIF
#	libcmt.lib      \
	$(BASE_LIBS)	\
	$(ADVAPI32)	\
	user32.lib	\
	mpr.lib		\
	shell32.lib	\
	setargv.obj

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

#
# Headers we would preprocess if we could.
#
PREPARED_HEADERS = config.h paths.h
config.h:	..\nt\$(CONFIG_H)
		$(CP) $** $@
paths.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 
		- $(DEL) DOC-X
		$(MAKE) -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 ..\..

#
# The undumped executable
#
temacs:         $(BLD) $(TEMACS)
$(TEMACS):      $(TLIB0) $(TLIB1) $(TLIB2) $(TLIBW32) $(TLASTLIB) $(TOBJ) $(TRES)
		$(LINK) -out:$(TEMACS) $(LINK_FLAGS) $(TOBJ) $(TRES) $(LIBS)

#
# The resource file.  NT 3.10 requires the use of cvtres; even though
# it is not necessary on later versions, it is still ok to use it.
#
$(TRES):	..\nt\emacs.rc
		$(RC) -i..\nt -Fo$(BLD)\emacs.res $**
!if !$(MSVCNT11)
		$(CVTRES) -r -$(ARCH) -o $@ $(BLD)\emacs.res
!endif

#
# Build the library.  Split up the build into two phases...otherwise we 
# run out of command line space.
#
$(TLIB0):       $(OBJ0)
		@- $(AR) -out:$@ $**
$(TLIB1):       $(OBJ1)
		@- $(AR) -out:$@ $**
$(TLIB2):	$(OBJ2)
		@- $(AR) -out:$@ $**
!IFDEF NTGUI
$(TLIBW32):	$(WIN32OBJ)
		@- $(AR) -out:$@ $**
!ENDIF

#
# Place lastfile.obj in its own library so that it can be loaded after
# the source libraries but before any system libraries.  Doing so defines
# the end of Emacs' data section portably across compilers and systems.
#
$(TLASTLIB):	$(BLD)\lastfile.obj
  		@- $(AR) -out:$@ $**

#
# Object files.
#
.c{$(BLD)}.obj:
		$(CC) $(CFLAGS) -Fo$@ $<

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

#
# Maintenance
# 
clean:;         - $(DEL) *~ s\*~
		- $(DEL) *.pdb config.h paths.h
		- $(DEL) *.orig *.rej *.crlf
		- $(DEL) s\*.orig s\*.rej s\*.crlf
		- $(DEL_TREE) deleted
		- $(DEL_TREE) obj
		- $(DEL_TREE) obj-spd

#
# These files are the ones that compile conditionally on CANNOT_DUMP...
# this target is mostly used for debugging.
#
cleandump:;     cd $(BLD)
		- $(DEL) callproc.obj data.obj dispnew.obj doc.obj editfns.obj emacs.obj lread.obj process.obj sysdep.obj term.obj w32heap.obj unexw32.obj
		cd ..\..


### DEPENDENCIES ###

EMACS_ROOT	= ..
SRC		= .

$(BLD)\abbrev.obj : \
	$(SRC)\abbrev.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)\window.h

$(BLD)\alloc.obj : \
	$(SRC)\alloc.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)\intervals.h \
	$(SRC)\puresize.h \
	$(SRC)\buffer.h \
	$(SRC)\window.h \
	$(SRC)\frame.h \
	$(SRC)\blockinput.h \
	$(SRC)\syssignal.h

$(BLD)\alloca.obj : \
	$(SRC)\alloca.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)\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)\intervals.h \
	$(SRC)\window.h \
	$(SRC)\commands.h \
	$(SRC)\buffer.h \
	$(SRC)\indent.h \
	$(SRC)\blockinput.h \
	$(SRC)\region-cache.h

$(BLD)\bytecode.obj : \
	$(SRC)\bytecode.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\lisp.h \
	$(SRC)\buffer.h \
	$(SRC)\syntax.h

$(BLD)\callint.obj : \
	$(SRC)\callint.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\lisp.h \
	$(SRC)\buffer.h \
	$(SRC)\commands.h \
	$(SRC)\keyboard.h \
	$(SRC)\window.h \
	$(SRC)\mocklisp.h

$(BLD)\callproc.obj : \
	$(SRC)\callproc.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(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 \
	$(SRC)\syssignal.h \
	$(EMACS_ROOT)\nt\inc\sys\ioctl.h \
	$(EMACS_ROOT)\nt\inc\sys\file.h \
	$(SRC)\systty.h

$(BLD)\casefiddle.obj : \
	$(SRC)\casefiddle.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\lisp.h \
	$(SRC)\buffer.h \
	$(SRC)\commands.h \
	$(SRC)\syntax.h
	$(CC) $(CFLAGS) -Fo$@ casefiddle.c

$(BLD)\casetab.obj : \
	$(SRC)\casetab.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)\cm.obj : \
	$(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.obj : \
	$(SRC)\cmds.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

$(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

$(BLD)\dired.obj : \
	$(SRC)\dired.c \
	$(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

$(BLD)\dispnew.obj : \
	$(SRC)\dispnew.c \
	$(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 \
	$(SRC)\cm.h \
	$(SRC)\buffer.h \
	$(SRC)\frame.h \
	$(SRC)\window.h \
	$(SRC)\commands.h \
	$(SRC)\disptab.h \
	$(SRC)\indent.h \
	$(SRC)\dispextern.h \
	$(SRC)\intervals.h \
	$(EMACS_ROOT)\nt\inc\sys\ioctl.h \
	$(EMACS_ROOT)\nt\inc\sys\file.h \
	$(SRC)\systty.h \
	$(SRC)\w32term.h \
	$(SRC)\xterm.h \
	$(SRC)\vmstime.h \
	$(SRC)\systime.h

$(BLD)\doc.obj : \
	$(SRC)\doc.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(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

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

$(BLD)\dosfns.obj : \
	$(SRC)\dosfns.c \
	$(EMACS_ROOT)\src\s\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 \
	$(SRC)\frame.h \
	$(SRC)\dosfns.h \
	$(SRC)\msdos.h

$(BLD)\editfns.obj : \
	$(SRC)\editfns.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(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)\intervals.h \
	$(SRC)\buffer.h \
	$(SRC)\window.h \
	$(SRC)\vmstime.h \
	$(SRC)\systime.h

$(BLD)\emacs.obj : \
	$(SRC)\emacs.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)\dispextern.h \
	$(SRC)\intervals.h \
	$(EMACS_ROOT)\nt\inc\sys\ioctl.h \
	$(EMACS_ROOT)\nt\inc\sys\file.h \
	$(SRC)\systty.h \
	$(SRC)\syssignal.h \
	$(SRC)\process.h

$(BLD)\eval.obj : \
	$(SRC)\eval.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)\commands.h \
	$(SRC)\keyboard.h

$(BLD)\fileio.obj : \
	$(SRC)\fileio.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(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)\intervals.h \
	$(SRC)\buffer.h \
	$(SRC)\window.h \
	$(EMACS_ROOT)\nt\inc\sys\file.h \
	$(SRC)\vmstime.h \
	$(SRC)\systime.h

$(BLD)\filelock.obj : \
	$(SRC)\filelock.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(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 \
	$(SRC)\buffer.h \
	$(SRC)\vmsdir.h \
	$(SRC)\ndir.h

$(BLD)\filemode.obj : \
	$(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.obj : \
	$(SRC)\firstfile.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h

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

$(BLD)\fns.obj : \
	$(SRC)\fns.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 \
	$(SRC)\dispextern.h \
	$(SRC)\intervals.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 \
	$(SRC)\buffer.h \
	$(SRC)\commands.h \
	$(SRC)\keyboard.h

$(BLD)\getloadavg.obj : \
	$(SRC)\getloadavg.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)\s\ms-w32.h \
	$(SRC)\m\intel386.h \
	$(SRC)\config.h \
	$(EMACS_ROOT)\nt\inc\sys\file.h

$(BLD)\gmalloc.obj : \
	$(SRC)\gmalloc.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(EMACS_ROOT)\nt\inc\sys\param.h \
	$(SRC)\getpagesize.h
	$(CC) $(CFLAGS) -D__STDC__ -Fo$@ gmalloc.c

$(BLD)\hftctl.obj : \
	$(SRC)\hftctl.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

$(BLD)\indent.obj : \
	$(SRC)\indent.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\lisp.h \
	$(SRC)\buffer.h \
	$(SRC)\indent.h \
	$(SRC)\frame.h \
	$(SRC)\window.h \
	$(SRC)\termchar.h \
	$(SRC)\termopts.h \
	$(SRC)\disptab.h \
	$(SRC)\dispextern.h \
	$(SRC)\intervals.h \
	$(SRC)\region-cache.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)\intervals.h \
	$(SRC)\buffer.h \
	$(SRC)\window.h \
	$(SRC)\blockinput.h

$(BLD)\intervals.obj : \
	$(SRC)\intervals.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)\intervals.h \
	$(SRC)\buffer.h \
	$(SRC)\puresize.h
	$(CC) $(CFLAGS) -Fo$@ intervals.c

$(BLD)\keyboard.obj : \
	$(SRC)\keyboard.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\termchar.h \
	$(SRC)\termopts.h \
	$(SRC)\lisp.h \
	$(SRC)\termhooks.h \
	$(SRC)\macros.h \
	$(SRC)\frame.h \
	$(SRC)\window.h \
	$(SRC)\commands.h \
	$(SRC)\buffer.h \
	$(SRC)\disptab.h \
	$(SRC)\keyboard.h \
	$(SRC)\dispextern.h \
	$(SRC)\intervals.h \
	$(SRC)\blockinput.h \
	$(SRC)\msdos.h \
	$(SRC)\syssignal.h \
	$(EMACS_ROOT)\nt\inc\sys\ioctl.h \
	$(EMACS_ROOT)\nt\inc\sys\file.h \
	$(SRC)\systty.h \
	$(SRC)\w32term.h \
	$(SRC)\xterm.h \
	$(SRC)\vmstime.h \
	$(SRC)\systime.h

$(BLD)\keymap.obj : \
	$(SRC)\keymap.c \
	$(EMACS_ROOT)\src\s\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)\termhooks.h \
	$(SRC)\blockinput.h

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

$(BLD)\lread.obj : \
	$(SRC)\lread.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(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 \
	$(SRC)\commands.h \
	$(SRC)\keyboard.h \
	$(SRC)\termhooks.h \
	$(SRC)\msdos.h

$(BLD)\macros.obj : \
	$(SRC)\macros.c \
	$(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 \
	$(SRC)\window.h

$(BLD)\marker.obj : \
	$(SRC)\marker.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)\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)\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

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

$(BLD)\w32inevt.obj : \
	$(SRC)\w32inevt.c \
	$(SRC)\s\ms-w32.h \
	$(SRC)\m\intel386.h \
	$(SRC)\config.h \
	$(SRC)\lisp.h \
	$(SRC)\frame.h \
	$(SRC)\blockinput.h \
	$(SRC)\termhooks.h

$(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 : \
	$(SRC)\w32console.c \
	$(SRC)\s\ms-w32.h \
	$(SRC)\m\intel386.h \
	$(SRC)\config.h \
	$(SRC)\lisp.h \
	$(SRC)\frame.h \
	$(SRC)\disptab.h \
	$(SRC)\termhooks.h \
	$(SRC)\w32inevt.h

$(BLD)\prefix-args.obj : \
	$(SRC)\prefix-args.c

$(BLD)\print.obj : \
	$(SRC)\print.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\lisp.h \
	$(SRC)\buffer.h \
	$(SRC)\frame.h \
	$(SRC)\window.h \
	$(SRC)\process.h \
	$(SRC)\termchar.h \
	$(SRC)\dispextern.h \
	$(SRC)\intervals.h

$(BLD)\process.obj : \
	$(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)\systty.h \
	$(SRC)\window.h \
	$(SRC)\buffer.h \
	$(SRC)\process.h \
	$(SRC)\termhooks.h \
	$(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

$(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 \
	$(EMACS_ROOT)\nt\inc\sys\param.h \
	$(SRC)\getpagesize.h

$(BLD)\regex.obj : \
	$(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)\config.h \
	$(SRC)\lisp.h \
	$(SRC)\buffer.h \
	$(SRC)\syntax.h \
	$(SRC)\regex.h

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

$(BLD)\scroll.obj : \
	$(SRC)\scroll.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\termchar.h \
	$(SRC)\lisp.h \
	$(SRC)\dispextern.h \
	$(SRC)\frame.h

$(BLD)\search.obj : \
	$(SRC)\search.c \
	$(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

$(BLD)\strftime.obj : \
	$(SRC)\strftime.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(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

$(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 \
	$(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)\systty.h \
	$(SRC)\vmsproc.h \
	$(SRC)\syswait.h \
	$(SRC)\frame.h \
	$(SRC)\window.h \
	$(SRC)\termhooks.h \
	$(SRC)\termchar.h \
	$(SRC)\termopts.h \
	$(SRC)\dispextern.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

$(BLD)\term.obj : \
	$(SRC)\term.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\termchar.h \
	$(SRC)\termopts.h \
	$(SRC)\cm.h \
	$(SRC)\lisp.h \
	$(SRC)\frame.h \
	$(SRC)\disptab.h \
	$(SRC)\termhooks.h \
	$(SRC)\keyboard.h

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

$(BLD)\textprop.obj : \
	$(SRC)\textprop.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)\intervals.h \
	$(SRC)\buffer.h \
	$(SRC)\window.h

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

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

$(BLD)\unexw32.obj : \
	$(SRC)\unexw32.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\w32heap.h

$(BLD)\vm-limit.obj : \
	$(SRC)\vm-limit.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\mem-limits.h	

$(BLD)\widget.obj : \
	$(SRC)\widget.c \
	$(EMACS_ROOT)\src\s\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)\widget.h \
	$(SRC)\widgetprv.h

$(BLD)\window.obj : \
	$(SRC)\window.c \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\lisp.h \
	$(SRC)\buffer.h \
	$(SRC)\frame.h \
	$(SRC)\window.h \
	$(SRC)\commands.h \
	$(SRC)\indent.h \
	$(SRC)\termchar.h \
	$(SRC)\disptab.h \
	$(SRC)\keyboard.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 \
	$(SRC)\buffer.h \
	$(SRC)\indent.h \
	$(SRC)\commands.h \
	$(SRC)\macros.h \
	$(SRC)\disptab.h \
	$(SRC)\termhooks.h \
	$(SRC)\dispextern.h \
	$(SRC)\intervals.h

$(BLD)\w32faces.obj: \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\w32faces.c \
	$(SRC)\lisp.h \
	$(SRC)\w32term.h \
	$(SRC)\w32gui.h \
	$(SRC)\buffer.h \
	$(SRC)\dispextern.h \
	$(SRC)\frame.h \
	$(SRC)\blockinput.h \
  	$(SRC)\window.h \
	$(SRC)\intervals.h

$(BLD)\w32fns.obj: \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\w32fns.c \
	$(SRC)\lisp.h \
	$(SRC)\w32term.h \
	$(SRC)\w32gui.h \
	$(SRC)\frame.h \
  	$(SRC)\window.h \
	$(SRC)\buffer.h \
	$(SRC)\dispextern.h \
	$(SRC)\keyboard.h \
	$(SRC)\blockinput.h \
	$(SRC)\paths.h \
	$(SRC)\w32heap.h \
	$(SRC)\termhooks.h

$(BLD)\w32menu.obj: \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\w32menu.c \
	$(SRC)\lisp.h \
	$(SRC)\termhooks.h \
	$(SRC)\frame.h \
  	$(SRC)\window.h \
	$(SRC)\keyboard.h \
	$(SRC)\blockinput.h \
	$(SRC)\buffer.h

$(BLD)\w32term.obj: \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\w32term.c \
	$(SRC)\lisp.h \
	$(SRC)\blockinput.h \
	$(SRC)\w32term.h \
	$(SRC)\w32gui.h \
	$(SRC)\systty.h \
	$(SRC)\systime.h \
	$(SRC)\frame.h \
	$(SRC)\dispextern.h \
	$(SRC)\termhooks.h \
	$(SRC)\termopts.h \
	$(SRC)\termchar.h \
	$(SRC)\gnu.h \
	$(SRC)\disptab.h \
	$(SRC)\buffer.h \
  	$(SRC)\window.h \
	$(SRC)\keyboard.h \
	$(SRC)\intervals.h

$(BLD)\w32select.obj: \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\w32select.c \
	$(SRC)\lisp.h \
	$(SRC)\w32term.h \
	$(SRC)\w32gui.h \
	$(SRC)\dispextern.h \
	$(SRC)\frame.h \
	$(SRC)\blockinput.h

$(BLD)\w32reg.obj: \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\w32reg.c \
	$(SRC)\lisp.h \
	$(SRC)\w32term.h \
	$(SRC)\w32gui.h \
	$(SRC)\blockinput.h

$(BLD)\w32xfns.obj: \
	$(EMACS_ROOT)\src\s\ms-w32.h \
	$(EMACS_ROOT)\src\m\intel386.h \
	$(EMACS_ROOT)\src\config.h \
	$(SRC)\w32xfns.c \
	$(SRC)\lisp.h \
	$(SRC)\w32term.h \
	$(SRC)\w32.h \
	$(SRC)\frame.h \
	$(SRC)\blockinput.h