#
# You should have received a copy of the GNU General Public License
# along with GNU Emacs; see the file COPYING. If not, write to
-# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
#
# Geoff Voelker (voelker@cs.washington.edu) 9-6-94
# BEGIN CONFIGURATION
#
+# Define the following to build the GUI version
+#
+NTGUI=1
+
# Set INSTALL_DIR to be the directory into which you want emacs installed.
#
!ifndef INSTALL_DIR
INSTALL_DIR = C:\emacs
!endif
+# Define MSVCNT11 to be nonzero if you are using the MSVCNT 1.1 environment.
+# MSVCNT11 = 1
+!ifndef MSVCNT11
+MSVCNT11 = 0
+!endif
+
#
# END CONFIGURATION
#
# We're on Windows NT
CPU = $(PROCESSOR_ARCHITECTURE)
CONFIG_H = config.nt
-OS_TYPE = winnt
+OS_TYPE = windowsnt
! if "$(PROCESSOR_ARCHITECTURE)" == "x86"
ARCH = i386
CPU = i386
# We're on Windows 95
ARCH = i386
CPU = i386
-CONFIG_H = config.w95
-OS_TYPE = win95
+CONFIG_H = config.nt
+OS_TYPE = windows95
!endif
# Include ntwin32.mak. So far, this file seems to be supported by every
-# Microsoft compiler on NT and Win95 and properly defines the executable
+# Microsoft compiler on NT and Windows 95 and properly defines the executable
# names and libraries necessary to build Emacs. I do not have access
# to any other vendor compilers, so I do not know if they supply this
# file, too. For now I'll assume that they do.
# The base libraries for compiling Emacs on NT. With MSVC, this should
# include oldnames.lib.
-BASE_LIBS = $(libc) $(baselibs)
+!if $(MSVCNT11)
+BASE_LIBS = $(libc) $(baselibs) oldnames.lib
+!else
+BASE_LIBS = $(libc) $(baselibs) -nodefaultlib:oldnames.lib
+!endif
# We want any debugging info in the executable.
!if "$(LINK)" == "link32"
SYS_LDFLAGS =
!else
-SYS_LDFLAGS = -pdb:none -release -incremental:no
+SYS_LDFLAGS = -release -incremental:no -version:3.10
!endif
INC = -I.
-CFLAGS = -nologo $(INC) $(ARCH_CFLAGS) $(LOCAL_FLAGS) -DWIN32_LEAN_AND_MEAN -D$(ARCH)
+!if "$(BUILD_TYPE)" == "spd"
+CFLAGS_COMMON = -nologo $(INC) $(ARCH_CFLAGS) $(LOCAL_FLAGS) -DWIN32_LEAN_AND_MEAN -D$(ARCH) -Fd$(BLD)\vc.pdb
+!else
+CFLAGS_COMMON = -nologo $(INC) $(ARCH_CFLAGS) $(LOCAL_FLAGS) -DWIN32_LEAN_AND_MEAN -D$(ARCH) -Fd$(BLD)\vc.pdb -DEMACSDEBUG
+!endif
+!if $(MSVCNT11)
+CFLAGS = $(CFLAGS_COMMON) -D_CRTAPI1=_cdecl
+!else
+CFLAGS = $(CFLAGS_COMMON) -D_CRTAPI1=_cdecl
+!endif
+!ifdef NTGUI
+CFLAGS = $(CFLAGS) -DHAVE_NTGUI=1
+!endif
+!ifdef BUILD_TYPE
+OBJDIR = obj-$(BUILD_TYPE)
+!else
OBJDIR = obj
+!endif
$(OBJDIR):; -mkdir $(OBJDIR)
BLD = $(OBJDIR)\$(ARCH)
$(BLD): $(OBJDIR)
-mkdir $(BLD)
CP = copy
-CP_DIR = xcopy /fried
+CP_DIR = xcopy /f/r/i/e/d
+!if "$(OS_TYPE)" == "windows95"
+DEL = deltree /y
+DEL_TREE = deltree /y
+!else
+DEL = del
# This is completely braindamaged, but it's the only routine known to be there
DEL_TREE = echo y | rmdir /s
+!endif
+
+# The location of the icon file
+EMACS_ICON_PATH = ..\nt\emacs.ico
+
+# Lets us add icons to the GNU Emacs folder
+ADDPM = ..\nt\$(BLD)\addpm.exe
!if "$(ARCH)" == "i386"
+!if "$(BUILD_TYPE)" == "spd"
+ARCH_CFLAGS = -nologo -D_X86_=1 -c -Zel -W2 -H63 -Oxsb2 -G5dF -Zi
+!else
ARCH_CFLAGS = -nologo -D_X86_=1 -c -Zel -W2 -H63 -G3d -Zi -Od
+!endif
ARCH_LDFLAGS = -align:0x1000 $(SYS_LDFLAGS)
!else
!else
!if "$(ARCH)" == "alpha"
-ARCH_CFLAGS = -D_ALPHA_=1 -c -Ze -Zi -W2 -D__stdcall= -D__cdecl=
+!if "$(BUILD_TYPE)" == "spd"
+ARCH_CFLAGS = -D_ALPHA_=1 -c -Ze -Zi -W2 -Od -D__stdcall= -D__cdecl=
+!else
+ARCH_CFLAGS = -D_ALPHA_=1 -c -Ze -Zi -W2 -O1 -D__stdcall= -D__cdecl=
+!endif
ARCH_LDFLAGS = -align:0x2000 $(SYS_LDFLAGS)
!else