Mercurial > emacs
comparison nt/nmake.defs @ 31146:8779f864ca44
New file.
author | Andrew Innes <andrewi@gnu.org> |
---|---|
date | Thu, 24 Aug 2000 11:05:18 +0000 |
parents | |
children | cd1a81ef52d1 |
comparison
equal
deleted
inserted
replaced
31145:c69f489fd4d4 | 31146:8779f864ca44 |
---|---|
1 # | |
2 # Makefile definition file for building GNU Emacs on Windows NT | |
3 # | |
4 # GNU Emacs is free software; you can redistribute it and/or modify | |
5 # it under the terms of the GNU General Public License as published by | |
6 # the Free Software Foundation; either version 2, or (at your option) | |
7 # any later version. | |
8 # | |
9 # GNU Emacs is distributed in the hope that it will be useful, | |
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 # GNU General Public License for more details. | |
13 # | |
14 # You should have received a copy of the GNU General Public License | |
15 # along with GNU Emacs; see the file COPYING. If not, write to | |
16 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
17 # Boston, MA 02111-1307, USA. | |
18 | |
19 # Ensure 'all' is the default target | |
20 all: | |
21 | |
22 THE_SHELL = $(COMSPEC) | |
23 | |
24 ALL_DEPS = $** | |
25 | |
26 SUBSYSTEM_WINDOWS=-subsystem:windows | |
27 SUBSYSTEM_CONSOLE=-subsystem:console | |
28 | |
29 # INSTALL_DIR is the directory into which emacs will be installed. | |
30 # | |
31 !ifndef INSTALL_DIR | |
32 INSTALL_DIR = $(MAKEDIR)/.. | |
33 !endif | |
34 | |
35 # Allow detection of builds with MSVC 5 or later, so we can | |
36 # speed up compiles (see rule at end). | |
37 # | |
38 _NMAKE_VER_5=162 | |
39 _NMAKE_VER_4=0 | |
40 | |
41 !IFNDEF _NMAKE_VER | |
42 _NMAKE_VER=$(_NMAKE_VER_4) | |
43 !ENDIF | |
44 | |
45 # Check that the INCLUDE and LIB environment variables are set. | |
46 # | |
47 !ifndef INCLUDE | |
48 !error The INCLUDE environment variable needs to be set. | |
49 !endif | |
50 !ifndef LIB | |
51 !error The LIB environment variable needs to be set. | |
52 !endif | |
53 | |
54 # Determine the architecture we're running on. | |
55 # Define ARCH for our purposes; | |
56 # Define CPU for use by ntwin32.mak; | |
57 # Define CONFIG_H to the appropriate config.h for the system; | |
58 # | |
59 !ifdef PROCESSOR_ARCHITECTURE | |
60 # We're on Windows NT | |
61 CPU = $(PROCESSOR_ARCHITECTURE) | |
62 CONFIG_H = config.nt | |
63 OS_TYPE = windowsnt | |
64 ! if "$(PROCESSOR_ARCHITECTURE)" == "x86" | |
65 ARCH = i386 | |
66 CPU = i386 | |
67 ! else | |
68 ! if "$(PROCESSOR_ARCHITECTURE)" == "MIPS" | |
69 ARCH = mips | |
70 ! else | |
71 ! if "$(PROCESSOR_ARCHITECTURE)" == "ALPHA" | |
72 ARCH = alpha | |
73 ! else | |
74 ! if "$(PROCESSOR_ARCHITECTURE)" == "PPC" | |
75 ARCH = ppc | |
76 ! else | |
77 ! error Unknown architecture type "$(PROCESSOR_ARCHITECTURE)" | |
78 ! endif | |
79 ! endif | |
80 ! endif | |
81 ! endif | |
82 !else | |
83 # We're on Windows 95 | |
84 ARCH = i386 | |
85 CPU = i386 | |
86 CONFIG_H = config.nt | |
87 OS_TYPE = windows95 | |
88 !endif | |
89 | |
90 AR = lib | |
91 AR_OUT = -out: | |
92 CC = cl | |
93 CC_OUT = -Fo | |
94 LINK = link | |
95 LINK_OUT = -out: | |
96 RC = rc | |
97 RC_OUT = -Fo | |
98 RC_INCLUDE = -i | |
99 | |
100 libc = libc.lib | |
101 baselibs = | |
102 O = obj | |
103 A = lib | |
104 | |
105 BASE_LIBS = $(libc) $(baselibs) oldnames.lib | |
106 | |
107 ADVAPI32 = advapi32.lib | |
108 COMDLG32 = comdlg32.lib | |
109 GDI32 = gdi32.lib | |
110 MPR = mpr.lib | |
111 SHELL32 = shell32.lib | |
112 USER32 = user32.lib | |
113 WSOCK32 = wsock32.lib | |
114 | |
115 !ifdef NOOPT | |
116 DEBUG_CFLAGS = -DEMACSDEBUG | |
117 !else | |
118 DEBUG_CFLAGS = | |
119 !endif | |
120 CFLAGS = -I. -DWIN32_LEAN_AND_MEAN $(ARCH_CFLAGS) -D$(ARCH) \ | |
121 -D_CRTAPI1=_cdecl -D_ANONYMOUS_UNION -D_ANONYMOUS_STRUCT \ | |
122 $(DEBUG_CFLAGS) $(USER_CFLAGS) $(LOCAL_FLAGS) | |
123 EMACS_EXTRA_C_FLAGS = | |
124 | |
125 SYS_LDFLAGS = -release -incremental:no -version:3.10 -swaprun:cd -swaprun:net | |
126 | |
127 # see comments in allocate_heap in w32heap.c before changing any of the | |
128 # -stack, -heap, or -base settings. | |
129 TEMACS_EXTRA_LINK = -stack:0x00800000 -heap:0x00100000 -base:0x01000000 -debug:full -debugtype:both -pdb:$(BLD)\temacs.pdb -machine:$(ARCH) $(SUBSYSTEM_CONSOLE) -entry:_start -map:$(BLD)\temacs.map $(EXTRA_LINK) | |
130 | |
131 !ifdef NOOPT | |
132 OBJDIR = obj | |
133 !else | |
134 OBJDIR = obj-spd | |
135 !endif | |
136 $(OBJDIR):; -mkdir $(OBJDIR) | |
137 BLD = $(OBJDIR)/$(ARCH) | |
138 $(BLD): $(OBJDIR) | |
139 -mkdir "$(BLD)" | |
140 | |
141 CP = cp -f | |
142 CP_DIR = cp -rf | |
143 IFNOTSAMEDIR = if not exist ..\same-dir.tst | |
144 ENDIF = | |
145 DEL = rm | |
146 DEL_TREE = rm -r | |
147 | |
148 # The location of the icon file | |
149 EMACS_ICON_PATH = ../nt/emacs.ico | |
150 | |
151 !ifdef NODEBUG | |
152 DEBUG_FLAG = | |
153 !else | |
154 DEBUG_FLAG = -Zi | |
155 !endif | |
156 | |
157 !if "$(ARCH)" == "i386" | |
158 !ifdef NOOPT | |
159 ARCH_CFLAGS = -nologo -D_X86_=1 -c -Zel -W2 -H63 -Od -G3d -Zp8 $(DEBUG_FLAG) | |
160 !else | |
161 ARCH_CFLAGS = -nologo -D_X86_=1 -c -Zel -W2 -H63 -Oxsb2 -Oy- -G6dF -Zp8 $(DEBUG_FLAG) | |
162 !endif | |
163 ARCH_LDFLAGS = $(SYS_LDFLAGS) | |
164 | |
165 !else | |
166 !if "$(ARCH)" == "mips" | |
167 ARCH_CFLAGS = -D_MIPS_=1 -c -W2 -Zi -Od -Gt0 | |
168 ARCH_LDFLAGS = $(SYS_LDFLAGS) | |
169 | |
170 !else | |
171 !if "$(ARCH)" == "alpha" | |
172 !if "$(BUILD_TYPE)" == "spd" | |
173 ARCH_CFLAGS = -D_ALPHA_=1 -c -Ze -Zi -W2 -Od -D__stdcall= -D__cdecl= | |
174 !else | |
175 ARCH_CFLAGS = -D_ALPHA_=1 -c -Ze -Zi -W2 -O1 -D__stdcall= -D__cdecl= | |
176 !endif | |
177 ARCH_LDFLAGS = $(SYS_LDFLAGS) | |
178 | |
179 !else | |
180 !if "$(ARCH)" == "ppc" | |
181 # These flags are a guess...if they don't work, please send me mail. | |
182 ARCH_CFLAGS = -D_PPC_=1 -c -Ze -Zi -W2 -Od | |
183 ARCH_LDFLAGS = $(SYS_LDFLAGS) | |
184 | |
185 !else | |
186 !ERROR Unknown architecture type "$(ARCH)". | |
187 !endif | |
188 !endif | |
189 !endif | |
190 !endif | |
191 | |
192 LINK_FLAGS = $(ARCH_LDFLAGS) $(USER_LDFLAGS) | |
193 | |
194 # From MSVC 5.0 onwards, it seem base relocation information is not included, | |
195 # at least in release builds. We need to ensure the reloc info is included | |
196 # in order to use the MSVC profiler. | |
197 !IF ("$(_NMAKE_VER)" == "$(_NMAKE_VER_4)") | |
198 EXTRA_LINK = | |
199 !ELSE | |
200 EXTRA_LINK = -profile | |
201 !ENDIF | |
202 | |
203 # | |
204 # If the compiler supports compiling multiple .c files to .o files at | |
205 # one time, use this feature. | |
206 # | |
207 !IF ("$(_NMAKE_VER)" == "$(_NMAKE_VER_4)") | |
208 .c{$(BLD)}.obj: | |
209 $(CC) $(CFLAGS) -Fo$(BLD)\ $< | |
210 !ELSE | |
211 .c{$(BLD)}.obj:: | |
212 $(CC) $(CFLAGS) -Fo$(BLD)\ $< | |
213 !ENDIF |