# -*- Makefile -*- definition file for building GNU Emacs on Windows NT.\r
-# Copyright (C) 2000-2012 Free Software Foundation, Inc.\r
+# Copyright (C) 2000-2014 Free Software Foundation, Inc.\r
\r
# This file is part of GNU Emacs.\r
\r
\r
THE_SHELL = $(COMSPEC)\r
SHELLTYPE=CMD\r
+SWITCHCHAR=/\r
\r
MAKETYPE=nmake\r
\r
! if "$(PROCESSOR_ARCHITECTURE)" == "PPC"\r
ARCH = ppc\r
! else\r
-! error Unknown architecture type "$(PROCESSOR_ARCHITECTURE)"\r
+! if "$(PROCESSOR_ARCHITECTURE)" == "AMD64"\r
+ARCH = AMD64\r
+! else\r
+! error Unknown architecture type "$(PROCESSOR_ARCHITECTURE)"\r
+! endif\r
! endif\r
! endif\r
! endif\r
CC_OUT = -Fo\r
LINK = link\r
LINK_OUT = -out:\r
-RC = rc\r
+RC = rc $(ARCH_RCFLAGS)\r
RC_OUT = -Fo\r
RC_INCLUDE = -i\r
\r
USE_CRT_DLL = 1\r
\r
-!ifdef USE_CRT_DLL\r
+!if $(USE_CRT_DLL)\r
libc = msvcrt$(D).lib\r
EMACS_EXTRA_C_FLAGS= -D_DLL -D_MT -DUSE_CRT_DLL=1\r
!else\r
\r
MWINDOWS = -subsystem:windows -entry:mainCRTStartup\r
\r
-CFLAGS = -I. $(ARCH_CFLAGS) \\r
+CFLAGS = -I. $(ARCH_CFLAGS) -D_CRT_SECURE_NO_WARNINGS \\r
$(DEBUG_CFLAGS) $(USER_CFLAGS) $(LOCAL_FLAGS)\r
-ESC_CFLAGS = -I. $(ARCH_CFLAGS) \\r
+ESC_CFLAGS = -I. $(ARCH_CFLAGS) -D_CRT_SECURE_NO_WARNINGS \\r
$(DEBUG_CFLAGS) $(ESC_USER_CFLAGS) $(LOCAL_FLAGS)\r
\r
#SYS_LDFLAGS = -nologo -release -incremental:no -version:3.10 -swaprun:cd -swaprun:net setargv.obj\r
-!ifdef NOOPT\r
-SYS_LDFLAGS = -nologo -manifest -dynamicbase:no -debug -incremental:no -version:3.10 -swaprun:cd -swaprun:net setargv.obj\r
-!else\r
-SYS_LDFLAGS = -nologo -manifest -dynamicbase:no -release -incremental:no -version:3.10 -swaprun:cd -swaprun:net setargv.obj\r
-!endif\r
+SYS_LDFLAGS = -nologo -manifest -dynamicbase:no -incremental:no -version:3.10 -swaprun:cd -swaprun:net setargv.obj\r
\r
# see comments in allocate_heap in w32heap.c before changing any of the\r
# -stack, -heap, or -base settings.\r
-TEMACS_EXTRA_LINK = -stack:0x00800000 -heap:0x00100000 -base:0x01000000 -pdb:$(BLD)\temacs.pdb -machine:$(ARCH) $(SUBSYSTEM_CONSOLE) -entry:_start -map:$(BLD)\temacs.map $(EXTRA_LINK)\r
+!if "$(ARCH)" == "i386"\r
+TEMACS_EXTRA_LINK = -stack:0x00800000 -heap:0x00100000 -base:0x01000000 -pdb:$(BLD)\temacs.pdb -machine:x86 $(SUBSYSTEM_CONSOLE) -entry:_start -map:$(BLD)\temacs.map $(EXTRA_LINK)\r
+!elseif "$(ARCH)" == "AMD64"\r
+TEMACS_EXTRA_LINK = -stack:0x00800000 -heap:0x00100000 -base:0x400000000 -pdb:$(BLD)\temacs.pdb -machine:x64 $(SUBSYSTEM_CONSOLE) -entry:_start -map:$(BLD)\temacs.map $(EXTRA_LINK)\r
+!endif\r
\r
!ifdef NOOPT\r
OBJDIR = obj\r
ARCH_CFLAGS = -nologo -D_X86_=1 -c -Zl -Zp8 -W2 -Oi -Ot -Oy- -Ob2 -GF -Gy -Gd $(DEBUG_FLAG)\r
!endif\r
ARCH_LDFLAGS = $(SYS_LDFLAGS)\r
+EMACS_HEAPSIZE = 27\r
+EMACS_PURESIZE = 5000000\r
+EMACS_MANIFEST = emacs-x86.manifest\r
\r
!else\r
!if "$(ARCH)" == "mips"\r
ARCH_CFLAGS = -D_MIPS_=1 -c -W2 -Zi -Od -Gt0\r
ARCH_LDFLAGS = $(SYS_LDFLAGS)\r
+EMACS_HEAPSIZE = 27\r
+EMACS_PURESIZE = 5000000\r
+EMACS_MANIFEST = emacs-mips.manifest\r
\r
!else\r
!if "$(ARCH)" == "alpha"\r
ARCH_CFLAGS = -D_ALPHA_=1 -c -Ze -Zi -W2 -O1 -D__stdcall= -D__cdecl=\r
!endif\r
ARCH_LDFLAGS = $(SYS_LDFLAGS)\r
+EMACS_HEAPSIZE = 27\r
+EMACS_PURESIZE = 5000000\r
+EMACS_MANIFEST = emacs-alpha.manifest\r
\r
!else\r
!if "$(ARCH)" == "ppc"\r
# These flags are a guess...if they don't work, please send me mail.\r
-ARCH_CFLAGS = -D_PPC_=1 -c -Ze -Zi -W2 -Od\r
ARCH_LDFLAGS = $(SYS_LDFLAGS)\r
+EMACS_HEAPSIZE = 27\r
+EMACS_PURESIZE = 5000000\r
+EMACS_MANIFEST = emacs-ppc.manifest\r
+\r
+!else\r
+!if "$(ARCH)" == "AMD64"\r
+!ifdef NOOPT\r
+ARCH_CFLAGS = -nologo -D_AMD64_=1 -DWIN64 -D_WIN64 -DWIN32 -D_WIN32 -c -Zl -Zp8 -W2 -Od -Gd -Wp64 $(DEBUG_FLAG)\r
+!else\r
+ARCH_CFLAGS = -nologo -D_AMD64_=1 -DWIN64 -D_WIN64 -DWIN32 -D_WIN32 -c -Zl -Zp8 -W2 -O2x -GF -Gy -Gd $(DEBUG_FLAG)\r
+!endif\r
+ARCH_LDFLAGS = $(SYS_LDFLAGS) -machine:x64\r
+ARCH_RCFLAGS = -DWIN64\r
+EMACS_HEAPSIZE = 42\r
+EMACS_PURESIZE = 10000000\r
+EMACS_MANIFEST = emacs-x64.manifest\r
\r
!else\r
!ERROR Unknown architecture type "$(ARCH)".\r
!endif\r
!endif\r
!endif\r
+!endif\r
\r
LINK_FLAGS = $(ARCH_LDFLAGS) $(DEBUG_LINK) $(USER_LDFLAGS)\r
\r
.c{$(BLD)}.obj::\r
$(CC) $(CFLAGS) -Fo$(BLD)\ $<\r
!ENDIF\r
-\r