Commit | Line | Data |
---|---|---|
6fa3eb70 S |
1 | !if 0 |
2 | Copyright (c) Microsoft Corporation. All rights reserved. | |
3 | !endif | |
4 | !if 0 | |
5 | Use of this source code is subject to the terms of the Microsoft end-user | |
6 | license agreement (EULA) under which you licensed this SOFTWARE PRODUCT. | |
7 | If you did not accept the terms of the EULA, you are not authorized to use | |
8 | this source code. For a copy of the EULA, please see the LICENSE.RTF on your | |
9 | install media. | |
10 | !endif | |
11 | !IF 0 | |
12 | ||
13 | ||
14 | Module Name: | |
15 | ||
16 | makefile.def | |
17 | ||
18 | Abstract: | |
19 | ||
20 | This is the standard makefile for the components of the WINCE project. | |
21 | It includes the following files: | |
22 | ||
23 | .\sources. - developer supplies this file. It defines required and | |
24 | optional macros that control the compiler and linker. | |
25 | ||
26 | $(_OBJDIR)\_objects.mac - built by BUILD.EXE from .\sources. | |
27 | ||
28 | Targets: | |
29 | ||
30 | all - Builds all targets in this make file | |
31 | ||
32 | clean - Erase all targets that can be produced by this make | |
33 | file, ignoring errors. Also rebuilds the depend target. | |
34 | ||
35 | !ENDIF | |
36 | ||
37 | ##<?xml version='1.0' standalone='yes' ?> | |
38 | ##<!DOCTYPE MakefileXml [ | |
39 | ##<!ELEMENT MakefileXml ( Variable* ) > | |
40 | ##<!ELEMENT Variable ( VariableName, FriendlyName, Settings) > | |
41 | ##<!ATTLIST Variable PlatformBuilderSettingsPage ( None | General | Cpp | Managed | Link | Resources ) #REQUIRED> | |
42 | ##<!ATTLIST Variable SettingsPageItemNumber CDATA #REQUIRED> | |
43 | ##<!ELEMENT VariableName ( #PCDATA ) > | |
44 | ##<!ELEMENT FriendlyName ( #PCDATA ) > | |
45 | ##<!ELEMENT Settings ( Setting, Setting* ) > | |
46 | ##<!ELEMENT Setting ( SettingValue, FriendlyName ) > | |
47 | ##<!ELEMENT SettingValue ( #PCDATA ) > | |
48 | ##<!ATTLIST SettingValue Default CDATA #IMPLIED> | |
49 | ##]> | |
50 | ##<MakefileXml> | |
51 | ||
52 | # In addition to regular compiles, makefile.def is used to generate | |
53 | # executables and dll's during sysgen. Some variables are preset | |
54 | # when makefile.def is loaded in this case. It's useful to know | |
55 | # these variables for debugging and general tracking. | |
56 | !IFDEF TARGETTYPE | |
57 | ! MESSAGE makefile.def: Invoked with predefined settings: | |
58 | ! MESSAGE TARGETNAME: $(TARGETNAME) | |
59 | ! MESSAGE TARGETTYPE: $(TARGETTYPE) | |
60 | ! MESSAGE RELEASETYPE: $(RELEASETYPE) | |
61 | ! MESSAGE TARGETLIBS: $(TARGETLIBS) | |
62 | ! MESSAGE SOURCELIBS: $(SOURCELIBS) | |
63 | ||
64 | ! IFDEF DEFFILE | |
65 | ! MESSAGE DEFFILE: $(DEFFILE) | |
66 | ! ENDIF | |
67 | ||
68 | ! IFDEF EXEENTRY | |
69 | ! MESSAGE EXEENTRY: $(EXEENTRY) | |
70 | ! ENDIF | |
71 | ||
72 | ! IFDEF DLLENTRY | |
73 | ! MESSAGE DLLENTRY: $(DLLENTRY) | |
74 | ! ENDIF | |
75 | ||
76 | !ENDIF | |
77 | ||
78 | ||
79 | !INCLUDE $(_MAKEENVROOT)\Sources.default | |
80 | ||
81 | ||
82 | ##<Variable PlatformBuilderSettingsPage="None" SettingsPageItemNumber="0"> | |
83 | ##<VariableName>WINCEDEBUG</VariableName> | |
84 | ##<FriendlyName>Debug Setting</FriendlyName> | |
85 | ##<Description>Indicates if build is debug or retail.</Description> | |
86 | ##<Settings> | |
87 | ##<Setting> | |
88 | ##<SettingValue>debug</SettingValue> | |
89 | ##<FriendlyName>Debug</FriendlyName> | |
90 | ##</Setting> | |
91 | ##<Setting> | |
92 | ##<SettingValue>retail</SettingValue> | |
93 | ##<FriendlyName>Retail</FriendlyName> | |
94 | ##</Setting> | |
95 | ##</Settings> | |
96 | ##</Variable> | |
97 | # validate WINCEDEBUG since it's used for paths | |
98 | !IF (("$(WINCEDEBUG)" != "retail") && ("$(WINCEDEBUG)" != "debug")) | |
99 | ! ERROR You must set WINCEDEBUG to retail or debug | |
100 | !ENDIF | |
101 | ||
102 | !IF (("$(WINCEDEBUG)" == "debug") || ("$(COMPILE_DEBUG)" == "1")) | |
103 | WINCEDEBUG_COMPILE=debug | |
104 | !ELSE | |
105 | WINCEDEBUG_COMPILE=retail | |
106 | !ENDIF | |
107 | ||
108 | !IF "$(WINCEDEBUG_COMPILE)" == "debug" | |
109 | CSC_DEBUG_CMD_LINE=/debug+ /debug:full | |
110 | CSC_DEBUG_DEFINE_CMD_LINE=/define:DEBUG | |
111 | !ELSE | |
112 | CSC_DEBUG_CMD_LINE=/debug+ /debug:full | |
113 | CSC_OPTIMIZE_CMD_LINE=/optimize+ | |
114 | !ENDIF | |
115 | ||
116 | ||
117 | # | |
118 | # Pick a copy command to use | |
119 | # | |
120 | !IF "$(BUILDREL_USE_COPY)"=="1" | |
121 | #use real copy command | |
122 | __COPYCMD=copy | |
123 | !ELSE | |
124 | # use copylink instead | |
125 | __COPYCMD=copylink /S:a /D:f /E:a /R:n | |
126 | !ENDIF | |
127 | ||
128 | # Miscellaneous defaults go here for now. | |
129 | OPTIMIZE_FAVOR=SPACE | |
130 | EXCEPTION_CPP=NONE | |
131 | EXCEPTION_EXTERN_C=THROW | |
132 | ||
133 | # | |
134 | # Include the developer supplied file that defines the TARGETNAME, | |
135 | # TARGETTYPE and SOURCES macros. | |
136 | # | |
137 | ||
138 | # Local variable which gets set to the tree being built currently | |
139 | WINCETREE=$(_CURSLMTREE) | |
140 | ||
141 | !IF "$(BUILDROOT)"=="" | |
142 | ! ERROR BUILDROOT must be defined | |
143 | !ENDIF | |
144 | !MESSAGE makefile.def: BUILDROOT is $(BUILDROOT) | |
145 | ||
146 | !IF EXIST($(BUILDROOT)\sources.cmn) | |
147 | ! MESSAGE makefile.def: Including $(BUILDROOT)\sources.cmn | |
148 | ! INCLUDE $(BUILDROOT)\sources.cmn | |
149 | !ENDIF | |
150 | ||
151 | # Figure out the appropriate directory for public common. Do this before | |
152 | # including the sources file so they can be used in there. Note there are | |
153 | # OS & non-OS projects. OS projects are those that have WINCETREE explicitly | |
154 | # set in sources.cmn and where public\WINCETREE\cesysgen\makefile exists, | |
155 | # | |
156 | # There are 4 cases: | |
157 | # (1) OS projects during sysgen (2) OS projects during compile | |
158 | # (3) WINCEPROJ projects (4) Other projects. | |
159 | ||
160 | !if "$(_IN_CESYSGEN)" != "" | |
161 | # OS projects during SYSGEN (which get unsysgened input libs & build into projectroot\cesysgen) | |
162 | ! IFNDEF _COMMONPUBROOT | |
163 | ! MESSAGE 0 Please add _COMMONPUBROOT and __PROJROOT to your tree's cesysgen\sources file. | |
164 | ! ENDIF | |
165 | _COMMONPUBROOT=$(_PUBLICROOT)\common | |
166 | __PROJROOT = $(_PROJECTROOT)\cesysgen | |
167 | !else if ("$(WINCETREE)" == "winceos") || EXIST($(_PUBLICROOT)\$(WINCETREE)\cesysgen\makefile) | |
168 | # OS projects during compile (which always get the full unfiltered headers & build into their own public tree) | |
169 | ! IFNDEF _COMMONPUBROOT | |
170 | ! MESSAGE 1 Please add _COMMONPUBROOT and __PROJROOT to your $(BUILDROOT)\sources.cmn file. | |
171 | ! ENDIF | |
172 | _COMMONPUBROOT=$(_PUBLICROOT)\common | |
173 | __PROJROOT = $(_PUBLICROOT)\$(WINCEPROJ) | |
174 | !else if "$(WINCEPROJ)" != "" | |
175 | # WINCEPROJ projects (which want sysgened headers & libs, but want to build into their *own* public trees) | |
176 | ! IFNDEF _COMMONPUBROOT | |
177 | ! MESSAGE 2 Please add _COMMONPUBROOT and __PROJROOT to your $(BUILDROOT)\sources.cmn file. | |
178 | ! ENDIF | |
179 | _COMMONPUBROOT=$(_PROJECTROOT)\cesysgen | |
180 | __PROJROOT = $(_PUBLICROOT)\$(WINCEPROJ) | |
181 | !else | |
182 | # regular user projects (which get sysgened headers & libs & build into the final project public tree) | |
183 | ! IFNDEF _COMMONPUBROOT | |
184 | ! MESSAGE 3 Please add _COMMONPUBROOT and __PROJROOT to your $(BUILDROOT)\sources.cmn file. | |
185 | ! ENDIF | |
186 | _COMMONPUBROOT=$(_PROJECTROOT)\cesysgen | |
187 | __PROJROOT = $(_PROJECTROOT) | |
188 | !endif | |
189 | ||
190 | # Construct the CPU's qualified instruction set architecture name (e.g., ARMV4) | |
191 | TGTCPUISANAME=$(_TGTCPUFAMILY)$(_TGTCPUISA) | |
192 | ||
193 | # Make sure these don't get redefined | |
194 | _COMMONPUBROOT_ORIGINAL=$(_COMMONPUBROOT) | |
195 | __PROJROOT_ORIGINAL=$(__PROJROOT) | |
196 | ||
197 | ||
198 | ||
199 | ||
200 | !INCLUDE .\sources. | |
201 | ||
202 | !IF EXIST($(_PROJECTROOT)\oak\misc\makefile.inc) | |
203 | ! MESSAGE makefile.def: Including $(_PROJECTROOT)\oak\misc\makefile.inc | |
204 | ! INCLUDE $(_PROJECTROOT)\oak\misc\makefile.inc | |
205 | !ENDIF | |
206 | ||
207 | ##<Variable PlatformBuilderSettingsPage="General" SettingsPageItemNumber="0"> | |
208 | ##<VariableName>TARGETNAME</VariableName> | |
209 | ##<FriendlyName>Target Name</FriendlyName> | |
210 | ##<Description>Specifies the file name of the executable or library files being built.</Description> | |
211 | ##</Variable> | |
212 | !IFNDEF TARGETNAME | |
213 | ! ERROR Your .\sources. file must define the TARGETNAME= macro | |
214 | !ENDIF | |
215 | !MESSAGE Directory: $(MAKEDIR) | |
216 | !MESSAGE TARGETNAME: $(TARGETNAME) | |
217 | ||
218 | ##<Variable PlatformBuilderSettingsPage="General" SettingsPageItemNumber="1"> | |
219 | ##<VariableName>TARGETTYPE</VariableName> | |
220 | ##<FriendlyName>Target Type</FriendlyName> | |
221 | ##<Description>Specifies the type of file you want to build.</Description> | |
222 | ##<Settings> | |
223 | ##<Setting> | |
224 | ##<SettingValue>LIBRARY</SettingValue> | |
225 | ##<FriendlyName>Static Library</FriendlyName> | |
226 | ##</Setting> | |
227 | ##<Setting> | |
228 | ##<SettingValue>DYNLINK</SettingValue> | |
229 | ##<FriendlyName>Dynamic-Link Library</FriendlyName> | |
230 | ##</Setting> | |
231 | ##<Setting> | |
232 | ##<SettingValue>PROGRAM</SettingValue> | |
233 | ##<FriendlyName>Executable Application</FriendlyName> | |
234 | ##</Setting> | |
235 | ##<Setting> | |
236 | ##<SettingValue>MANAGED_EXE</SettingValue> | |
237 | ##<FriendlyName>Managed Executable</FriendlyName> | |
238 | ##</Setting> | |
239 | ##<Setting> | |
240 | ##<SettingValue>MANAGED_DLL</SettingValue> | |
241 | ##<FriendlyName>Managed Dynamic Link Library (DLL)</FriendlyName> | |
242 | ##</Setting> | |
243 | ##<Setting> | |
244 | ##<SettingValue>MANAGED_WINEXE</SettingValue> | |
245 | ##<FriendlyName>Managed Windows Executable</FriendlyName> | |
246 | ##</Setting> | |
247 | ##<Setting> | |
248 | ##<SettingValue>MANAGED_MODULE</SettingValue> | |
249 | ##<FriendlyName>Managed Module</FriendlyName> | |
250 | ##</Setting> | |
251 | ##<Setting> | |
252 | ##<SettingValue>NOTARGET</SettingValue> | |
253 | ##<FriendlyName>Null Project</FriendlyName> | |
254 | ##</Setting> | |
255 | ||
256 | ##</Settings> | |
257 | ##</Variable> | |
258 | !IFNDEF TARGETTYPE | |
259 | ! ERROR Your .\sources. file must define the TARGETTYPE= macro | |
260 | !ENDIF | |
261 | ||
262 | !IFNDEF SOURCES | |
263 | ! ERROR Your .\sources. file must define the SOURCES= macro | |
264 | !ENDIF | |
265 | ||
266 | ||
267 | # Make sure they didn't try to redefine anything important. | |
268 | !IF "$(_COMMONPUBROOT)" != "$(_COMMONPUBROOT_ORIGINAL)" | |
269 | ! ERROR Cannot redefine _COMMONPUBROOT | |
270 | !ENDIF | |
271 | ||
272 | !IF "$(__PROJROOT)" != "$(__PROJROOT_ORIGINAL)" | |
273 | ! ERROR Cannot redefine __PROJROOT | |
274 | !ENDIF | |
275 | ||
276 | ||
277 | #!ERROR Paths are commonpubroot=$(_COMMONPUBROOT) and projroot=$(__PROJROOT) | |
278 | ||
279 | # | |
280 | # Set up the release directories. | |
281 | # | |
282 | _SRCDIR = $(_TGTCPUFAMILY) | |
283 | ||
284 | ||
285 | ##<Variable PlatformBuilderSettingsPage="General" SettingsPageItemNumber="0"> | |
286 | ##<VariableName>RELEASETYPE</VariableName> | |
287 | ##<FriendlyName>Release Type</FriendlyName> | |
288 | ##<Description>Specifies the final location of binaries and libraries after they are built.</Description> | |
289 | ##<Settings> | |
290 | ##<Setting> | |
291 | ##<SettingValue Default="Y"></SettingValue> | |
292 | ##<FriendlyName>Default</FriendlyName> | |
293 | ##</Setting> | |
294 | ##<Setting> | |
295 | ##<SettingValue>SDK</SettingValue> | |
296 | ##<FriendlyName>SDK</FriendlyName> | |
297 | ##</Setting> | |
298 | ##<Setting> | |
299 | ##<SettingValue>OAK</SettingValue> | |
300 | ##<FriendlyName>OAK</FriendlyName> | |
301 | ##</Setting> | |
302 | ##<Setting> | |
303 | ##<SettingValue>DDK</SettingValue> | |
304 | ##<FriendlyName>DDK</FriendlyName> | |
305 | ##</Setting> | |
306 | ##<Setting> | |
307 | ##<SettingValue>MANAGED</SettingValue> | |
308 | ##<FriendlyName>Managed</FriendlyName> | |
309 | ##</Setting> | |
310 | ##<Setting> | |
311 | ##<SettingValue>PLATFORM</SettingValue> | |
312 | ##<FriendlyName>Platform</FriendlyName> | |
313 | ##</Setting> | |
314 | ##<Setting> | |
315 | ##<SettingValue>LOCAL</SettingValue> | |
316 | ##<FriendlyName>Local</FriendlyName> | |
317 | ##</Setting> | |
318 | ##<Setting> | |
319 | ##<SettingValue>CETK</SettingValue> | |
320 | ##<FriendlyName>CETK</FriendlyName> | |
321 | ##</Setting> | |
322 | ##<Setting> | |
323 | ##<SettingValue>CUSTOM</SettingValue> | |
324 | ##<FriendlyName>Custom</FriendlyName> | |
325 | ##</Setting> | |
326 | ##</Settings> | |
327 | ##</Variable> | |
328 | ||
329 | !IFNDEF RELEASETYPE | |
330 | ! MESSAGE RELEASETYPE is not defined. Using DEFAULT. | |
331 | RELEASETYPE=DEFAULT | |
332 | !ELSEIF "$(RELEASETYPE)" == "SDK" | |
333 | !ELSEIF "$(RELEASETYPE)" == "OAK" | |
334 | !ELSEIF "$(RELEASETYPE)" == "DDK" | |
335 | !ELSEIF "$(RELEASETYPE)" == "MANAGED" | |
336 | !ELSEIF "$(RELEASETYPE)" == "PLATFORM" | |
337 | !ELSEIF "$(RELEASETYPE)" == "LOCAL" | |
338 | !ELSEIF "$(RELEASETYPE)" == "CETK" | |
339 | !ELSEIF "$(RELEASETYPE)" == "CUSTOM" | |
340 | !ELSE | |
341 | ! MESSAGE RELEASETYPE "$(RELEASETYPE)" is not defined. Using DEFAULT. | |
342 | RELEASETYPE=DEFAULT | |
343 | !ENDIF | |
344 | ||
345 | ||
346 | !MESSAGE makefile.def: Including $(_MAKEENVROOT)\sources.ReleaseType_$(RELEASETYPE) | |
347 | !INCLUDE $(_MAKEENVROOT)\sources.ReleaseType_$(RELEASETYPE) | |
348 | ||
349 | ||
350 | #_RELEASEDIR=$(__PROJROOT)\oak\target\$(__CPUDIR) | |
351 | #_RELEASELIBDIR=$(__PROJROOT)\oak\lib\$(__CPUDIR) | |
352 | ||
353 | # | |
354 | # Include the list of object files (defined as the OBJECTS macro) that was | |
355 | # built by BUILD program, using the SOURCES= macro defined in the sources. | |
356 | # file. Use macro substitution to build the supported target objects. | |
357 | # | |
358 | ||
359 | !IFNDEF NOINCLUDEOBJMAC | |
360 | ! INCLUDE $(_OBJDIR)\_objects.mac | |
361 | !ENDIF | |
362 | ||
363 | !IF "$(_TGTOS)"=="CE" | |
364 | ! IFNDEF LINKER_SUBSYSTEM | |
365 | LINKER_SUBSYSTEM=-subsystem:windowsce,5.00 | |
366 | ! ENDIF | |
367 | !ENDIF | |
368 | ||
369 | !IFDEF RCADDNULL | |
370 | RCFLAGS=-n | |
371 | !ELSE | |
372 | RCFLAGS= | |
373 | !ENDIF | |
374 | ||
375 | !IFDEF DLLENTRY | |
376 | DLLENTRYOPTION=-entry:$(DLLENTRY) | |
377 | !ELSE | |
378 | # Default DLLENTRY for CE is broken. Provide a correct default entry | |
379 | ! IF "$(_TGTOS)"=="CE" | |
380 | DLLENTRYOPTION=-entry:_DllMainCRTStartup | |
381 | ! ELSE | |
382 | DLLENTRYOPTION= | |
383 | ! ENDIF | |
384 | !ENDIF | |
385 | ||
386 | ##<Variable PlatformBuilderSettingsPage="Cpp" SettingsPageItemNumber="0"> | |
387 | ##<VariableName>EXEENTRY</VariableName> | |
388 | ##<FriendlyName>Executable Entry Point</FriendlyName> | |
389 | ##<Description>Specifies the initial entry point for executable files. By default, the initial entry point is WinMainCRTStartup.</Description> | |
390 | ##</Variable> | |
391 | ||
392 | ##<Variable PlatformBuilderSettingsPage="Cpp" SettingsPageItemNumber="0"> | |
393 | ##<VariableName>DLLENTRY</VariableName> | |
394 | ##<FriendlyName>DLL Entry Point</FriendlyName> | |
395 | ##<Description>Specifies the initial entry point for dynamic-link library (.dll) files. By default, the initial entry point is _DllMainCRTStartup.</Description> | |
396 | ##</Variable> | |
397 | ||
398 | !IFDEF EXEENTRY | |
399 | EXEENTRYOPTION=-entry:$(EXEENTRY) | |
400 | !ELSE | |
401 | # Default EXEENTRY for CE is broken. Provide a correct default entry | |
402 | ! IF "$(_TGTOS)"=="CE" | |
403 | EXEENTRYOPTION=-entry:WinMainCRTStartup | |
404 | ! ELSE | |
405 | EXEENTRYOPTION= | |
406 | ! ENDIF | |
407 | !ENDIF | |
408 | ||
409 | !IFDEF NODLLENTRY | |
410 | DLLENTRYOPTION=-NOENTRY | |
411 | !ENDIF | |
412 | ||
413 | TARGETOBJFILES=$(OBJECTS) | |
414 | ||
415 | ##<Variable PlatformBuilderSettingsPage="Link" SettingsPageItemNumber="0"> | |
416 | ##<VariableName>FIXED_BASE_ADDRESS</VariableName> | |
417 | ##<FriendlyName>Fixed Base Address</FriendlyName> | |
418 | ##<Description>Specifies a fixed base address in memory for a file, which is sent to the linker. By default, this setting is not enabled for DLLs and is enabled for other project types.</Description> | |
419 | ##<Settings> | |
420 | ##<Setting> | |
421 | ##<SettingValue Default="Y"></SettingValue> | |
422 | ##<FriendlyName>Default</FriendlyName> | |
423 | ##</Setting> | |
424 | ##<Setting> | |
425 | ##<SettingValue>0</SettingValue> | |
426 | ##<FriendlyName>No</FriendlyName> | |
427 | ##</Setting> | |
428 | ##<Setting> | |
429 | ##<SettingValue>1</SettingValue> | |
430 | ##<FriendlyName>Yes</FriendlyName> | |
431 | ##</Setting> | |
432 | ##</Settings> | |
433 | ##</Variable> | |
434 | !IF "$(FIXED_BASE_ADDRESS)"=="1" | |
435 | FIXED_BASE_LINK_CMD_LINE=-FIXED | |
436 | !ELSE IF "$(FIXED_BASE_ADDRESS)"=="0" | |
437 | FIXED_BASE_LINK_CMD_LINE=-FIXED:NO | |
438 | !ELSE IF "$(FIXED_BASE_ADDRESS)"!="" | |
439 | ! ERROR Unknown FIXED_BASE_ADDRESS setting: $(FIXED_BASE_ADDRESS) | |
440 | !ENDIF | |
441 | ||
442 | !IF ("$(TARGETTYPE)" == "LIBRARY") || ("$(TARGETTYPE)" == "DYNLINK") | |
443 | TARGETLIBFILES=$(_RELEASELIBDIR)\$(TARGETNAME).lib | |
444 | !ENDIF | |
445 | ||
446 | MANAGED_EXE_TARGET_DIRECTORY=$(_RELEASEDIR) | |
447 | MANAGED_WINEXE_TARGET_DIRECTORY=$(_RELEASEDIR) | |
448 | MANAGED_DLL_TARGET_DIRECTORY=$(_RELEASEDIR) | |
449 | MANAGED_MODULE_TARGET_DIRECTORY=$(_RELEASEDIR) | |
450 | ||
451 | ||
452 | !IF "$(TARGETTYPE)"=="MANAGED_EXE" | |
453 | MANAGED_TARGET_DIRECTORY=$(MANAGED_EXE_TARGET_DIRECTORY) | |
454 | MANAGED_TARGET_EXTENSION=exe | |
455 | MANAGED_TARGET=$(MANAGED_TARGET_DIRECTORY)\$(TARGETNAME).$(MANAGED_TARGET_EXTENSION) | |
456 | MANAGED_TARGET_TYPE_CMD_LINE=/target:exe | |
457 | !ENDIF | |
458 | ||
459 | !IF "$(TARGETTYPE)"=="MANAGED_WINEXE" | |
460 | MANAGED_TARGET_DIRECTORY=$(MANAGED_WINEXE_TARGET_DIRECTORY) | |
461 | MANAGED_TARGET_EXTENSION=exe | |
462 | MANAGED_TARGET=$(MANAGED_TARGET_DIRECTORY)\$(TARGETNAME).$(MANAGED_TARGET_EXTENSION) | |
463 | MANAGED_TARGET_TYPE_CMD_LINE=/target:winexe | |
464 | !ENDIF | |
465 | ||
466 | ||
467 | !IF "$(TARGETTYPE)"=="MANAGED_DLL" | |
468 | MANAGED_TARGET_DIRECTORY=$(MANAGED_DLL_TARGET_DIRECTORY) | |
469 | MANAGED_TARGET_EXTENSION=dll | |
470 | MANAGED_TARGET=$(MANAGED_TARGET_DIRECTORY)\$(TARGETNAME).$(MANAGED_TARGET_EXTENSION) | |
471 | MANAGED_TARGET_TYPE_CMD_LINE=/target:library | |
472 | !ENDIF | |
473 | ||
474 | !IF "$(TARGETTYPE)"=="MANAGED_MODULE" | |
475 | MANAGED_TARGET_DIRECTORY=$(MANAGED_MODULE_TARGET_DIRECTORY) | |
476 | MANAGED_TARGET_EXTENSION=netmodule | |
477 | MANAGED_TARGET=$(MANAGED_TARGET_DIRECTORY)\$(TARGETNAME).$(MANAGED_TARGET_EXTENSION) | |
478 | MANAGED_TARGET_TYPE_CMD_LINE=/target:module | |
479 | !ENDIF | |
480 | ||
481 | MANAGED_TARGET_PDB=$(MANAGED_TARGET_DIRECTORY)\$(TARGETNAME).pdb | |
482 | ||
483 | ||
484 | TARGETEXEFILES= | |
485 | !IF "$(NOLINK)" == "" | |
486 | ! IF "$(TARGETTYPE)" == "DYNLINK" | |
487 | TARGETEXEFILES=$(_RELEASEDIR)\$(TARGETNAME).dll | |
488 | ! ELSE | |
489 | ! IF "$(TARGETTYPE)" == "PROGRAM" | |
490 | TARGETEXEFILES=$(_RELEASEDIR)\$(TARGETNAME).exe | |
491 | ! ENDIF | |
492 | ! ENDIF | |
493 | !ENDIF | |
494 | ||
495 | # | |
496 | # Standard inference rules for C files that produce object files. | |
497 | # | |
498 | .SUFFIXES: .cxx .cpp .c .asm .s .src .rc .obj .ire .res .h .odl .tlb .i .cs | |
499 | ||
500 | !IFDEF PASS0ONLY | |
501 | # Clear the suffixes list so we can ensure only pass zero stuff will be built | |
502 | .SUFFIXES: | |
503 | !ENDIF | |
504 | ||
505 | !IFNDEF NOPASS0 | |
506 | # Pass Zero Inference Rules: IDL files (MIDL) and MC files | |
507 | .SUFFIXES: .idl .mc .odl .tdl .asn .thk | |
508 | ||
509 | !ENDIF # IFNDEF NOPASS0 | |
510 | ||
511 | !IFDEF USE_OLE_MC | |
512 | MESSAGE_COMPILER=mc -o | |
513 | !ELSE | |
514 | MESSAGE_COMPILER=mc | |
515 | !ENDIF | |
516 | ||
517 | ##<Variable PlatformBuilderSettingsPage="Cpp" SettingsPageItemNumber="0"> | |
518 | ##<VariableName>PRECOMPILED_OPTION</VariableName> | |
519 | ##<FriendlyName>Precompiled Header Options</FriendlyName> | |
520 | ##<Description>Specifies the command-line options for the compiler when compiling precompiled header files. Overrides all other settings.</Description> | |
521 | ##</Variable> | |
522 | ||
523 | ##<Variable PlatformBuilderSettingsPage="Cpp" SettingsPageItemNumber="0"> | |
524 | ##<VariableName>PRECOMPILED_INCLUDE</VariableName> | |
525 | ##<FriendlyName>Precompiled Header Source File Name</FriendlyName> | |
526 | ##<Description>Specifies a file name for the precompiled header source file.</Description> | |
527 | ##</Variable> | |
528 | ||
529 | ##<Variable PlatformBuilderSettingsPage="Cpp" SettingsPageItemNumber="0"> | |
530 | ##<VariableName>PRECOMPILED_PCH</VariableName> | |
531 | ##<FriendlyName>Precompiled Header File Name</FriendlyName> | |
532 | ##<Description>Specifies the name of the precompiled header file that is created, using the .pch file extension.</Description> | |
533 | ##</Variable> | |
534 | ||
535 | ##<Variable PlatformBuilderSettingsPage="Cpp" SettingsPageItemNumber="0"> | |
536 | ##<VariableName>PRECOMPILED_OBJ</VariableName> | |
537 | ##<FriendlyName>Precompiled Header Object File Name</FriendlyName> | |
538 | ##<Description>Specifies a file name for the precompiled header object file that is created, using the .obj file extension.</Description> | |
539 | ##</Variable> | |
540 | ||
541 | ##<Variable PlatformBuilderSettingsPage="Cpp" SettingsPageItemNumber="0"> | |
542 | ##<VariableName>PRECOMPILED_CXX</VariableName> | |
543 | ##<FriendlyName>Precompiled files</FriendlyName> | |
544 | ##<Description>Treat precompiled files as C++. By default, PRECOMPILED_INCLUDE files that end in .c and .h are treated as C files and are used only when compiling files with a .c extension. PRECOMPILED_INCLUDE files with a .cpp, .hpp, .cxx or .hxx extension are treated as C++ files and are used only when compiling C++ files. If set, PRECOMPILED_CXX forces the precompiled files to be treated as C++ files regardless of the extension of the PRECOMPILED_INCLUDE file name. Default is based on the extension of the PRECOMPILED_INCLUDE file name.</Description> | |
545 | ##<Settings> | |
546 | ##<Setting> | |
547 | ##<SettingValue Default="Y"></SettingValue> | |
548 | ##<FriendlyName>No</FriendlyName> | |
549 | ##</Setting> | |
550 | ##<Setting> | |
551 | ##<SettingValue>1</SettingValue> | |
552 | ##<FriendlyName>Yes</FriendlyName> | |
553 | ##</Setting> | |
554 | ##</Settings> | |
555 | ##</Variable> | |
556 | ||
557 | !IF "$(PRECOMPILED_OPTION)" == "" | |
558 | ! IF "$(PRECOMPILED_INCLUDE)" != "" | |
559 | ! IF "$(PRECOMPILED_INCLUDE)" != "$(PRECOMPILED_INCLUDE:.hxx=)" | |
560 | PRECOMPILED_CXX=1 | |
561 | ! ENDIF | |
562 | ! IF "$(PRECOMPILED_INCLUDE)" != "$(PRECOMPILED_INCLUDE:.cxx=)" | |
563 | PRECOMPILED_CXX=1 | |
564 | ! ENDIF | |
565 | ! IF "$(PRECOMPILED_INCLUDE)" != "$(PRECOMPILED_INCLUDE:.cpp=)" | |
566 | PRECOMPILED_CXX=1 | |
567 | ! ENDIF | |
568 | ! IF "$(PRECOMPILED_PCH)" == "" | |
569 | PRECOMPILED_PCH=$(PRECOMPILED_INCLUDE:.hxx=.pch) | |
570 | PRECOMPILED_PCH=$(PRECOMPILED_PCH:.h=.pch) | |
571 | PRECOMPILED_PCH=$(PRECOMPILED_PCH:.cxx=.pch) | |
572 | PRECOMPILED_PCH=$(PRECOMPILED_PCH:.cpp=.pch) | |
573 | PRECOMPILED_PCH=$(PRECOMPILED_PCH:.c=.pch) | |
574 | PRECOMPILED_PCH=$(PRECOMPILED_PCH:..\=) | |
575 | ! ENDIF | |
576 | ! IF "$(PRECOMPILED_OBJ)" == "" | |
577 | PRECOMPILED_OBJ=$(PRECOMPILED_PCH:.pch=.obj) | |
578 | ! ENDIF | |
579 | ! ENDIF | |
580 | !ENDIF | |
581 | ||
582 | ||
583 | PRECOMPILED_C_ONLY_CMD_LINE= | |
584 | PRECOMPILED_CPP_ONLY_CMD_LINE= | |
585 | ||
586 | !IF "$(PRECOMPILED_OPTION)" == "" | |
587 | ! IF "$(PRECOMPILED_INCLUDE)" != "" | |
588 | ! IF "$(PRECOMPILED_PCH)" != "" | |
589 | HEADERFILE=/Fp$(MAKEDIR)\$(_OBJDIR)\$(PRECOMPILED_PCH) | |
590 | ! ENDIF | |
591 | ! IF "$(PRECOMPILED_OBJ)" != "" | |
592 | PRECOMPILED_HEADEROBJNAME=$(_OBJDIR)\$(PRECOMPILED_OBJ) | |
593 | HEADEROBJ=/Fo$(MAKEDIR)\$(PRECOMPILED_HEADEROBJNAME) | |
594 | ! ENDIF | |
595 | ! IF "$(PRECOMPILED_CXX)" == "" | |
596 | PRECOMPILED_C_ONLY_CMD_LINE=/Yu$(PRECOMPILED_INCLUDE:..\=) $(HEADERFILE) | |
597 | ! ELSE | |
598 | PRECOMPILED_CPP_ONLY_CMD_LINE=/Yu$(PRECOMPILED_INCLUDE:..\=) $(HEADERFILE) | |
599 | ! ENDIF | |
600 | PRECOMPILED_TARGET=$(MAKEDIR)\$(_OBJDIR)\$(PRECOMPILED_PCH) | |
601 | ! ELSE | |
602 | ! IF "$(PRECOMPILED_INCLUDE)" != "" | |
603 | ! IF "$(PRECOMPILED_CXX)" == "" | |
604 | PRECOMPILED_C_ONLY_CMD_LINE=/Yu$(PRECOMPILED_INCLUDE) | |
605 | ! ELSE | |
606 | PRECOMPILED_CPP_ONLY_CMD_LINE=/Yu$(PRECOMPILED_INCLUDE) | |
607 | ! ENDIF | |
608 | ! ENDIF | |
609 | ! ENDIF | |
610 | !ELSE | |
611 | ! IF "$(PRECOMPILED_CXX)" == "" | |
612 | PRECOMPILED_C_ONLY_CMD_LINE=$(PRECOMPILED_OPTION) | |
613 | ! ELSE | |
614 | PRECOMPILED_CPP_ONLY_CMD_LINE=$(PRECOMPILED_OPTION) | |
615 | ! ENDIF | |
616 | PRECOMPILED_TARGET=$(PRECOMPILED_TARGET) | |
617 | ! IF "$(PRECOMPILED_TARGET)" != "" | |
618 | HEADERFILE=/Fp$(PRECOMPILED_TARGET) | |
619 | ! ENDIF | |
620 | ! IF "$(PRECOMPILED_OBJ)" != "" | |
621 | PRECOMPILED_HEADEROBJNAME=$(PRECOMPILED_OBJ) | |
622 | HEADEROBJ=/Fo$(PRECOMPILED_HEADEROBJNAME) | |
623 | ! ENDIF | |
624 | !ENDIF | |
625 | ||
626 | !IF ("$(PRECOMPILED_CXX)" == "") && ("$(USECXX_FLAG)" == "") | |
627 | PRECOMPILED_GENERATE_CMD_LINE=/Tc | |
628 | !ELSE | |
629 | PRECOMPILED_GENERATE_CMD_LINE=/Tp | |
630 | !ENDIF | |
631 | ||
632 | !IF "$(NTNOPCH)" != "" | |
633 | PRECOMPILED_C_ONLY_CMD_LINE= | |
634 | PRECOMPILED_CPP_ONLY_CMD_LINE= | |
635 | !ENDIF | |
636 | ||
637 | # make sure we include the precompiled object if we have one | |
638 | TARGETOBJFILES=$(TARGETOBJFILES) $(PRECOMPILED_HEADEROBJNAME) | |
639 | ||
640 | # | |
641 | # Standard list of targets: all, clean and loc. all is the default target. | |
642 | # | |
643 | ||
644 | ||
645 | !IF "$(SKIPBUILD)" != "" | |
646 | ||
647 | #empty all: target to not build anything for the current subdir | |
648 | all: | |
649 | ||
650 | ||
651 | !ELSE IFDEF PASS0ONLY | |
652 | all: \ | |
653 | WinceTargetFile0 \ | |
654 | Pass0Objects | |
655 | -@echo $(BUILDMSG) | |
656 | !ELSE | |
657 | all: \ | |
658 | WinceTargetFile0 \ | |
659 | ! IFNDEF NOPASS0 | |
660 | Pass0Objects \ | |
661 | ! ENDIF | |
662 | PrecompiledTarget \ | |
663 | PrecompiledHeaderObjName \ | |
664 | ! IFNDEF MANAGED_TARGET | |
665 | TargetObjFiles \ | |
666 | ! ENDIF | |
667 | TargetLibFiles \ | |
668 | TargetExeFiles \ | |
669 | ! IFDEF MANAGED_TARGET | |
670 | ManagedTarget \ | |
671 | ! ENDIF | |
672 | WinceTargetFiles | |
673 | -@echo $(BUILDMSG) | |
674 | !ENDIF # PASS0ONLY | |
675 | ||
676 | ||
677 | WinceTargetFile0: $(WINCETARGETFILE0) | |
678 | ||
679 | Pass0Objects: $(PASS0_OBJECTS) | |
680 | ||
681 | PrecompiledTarget: $(PRECOMPILED_TARGET) | |
682 | ||
683 | PrecompiledHeaderObjName: $(PRECOMPILED_HEADEROBJNAME) | |
684 | ||
685 | TargetObjFiles: $(TARGETOBJFILES) | |
686 | ||
687 | TargetLibFiles: $(TARGETLIBFILES) | |
688 | ||
689 | TargetExeFiles: $(TARGETEXEFILES) | |
690 | ||
691 | ManagedTarget: $(MANAGED_TARGET) | |
692 | ||
693 | WinceTargetFiles: $(WINCETARGETFILES) | |
694 | ||
695 | ||
696 | null: | |
697 | ||
698 | dummy: | |
699 | -@echo . | |
700 | ||
701 | expunge: cleantgt | |
702 | delnode /q obj | |
703 | -@echo $(BUILDMSG) | |
704 | ||
705 | clean: cleantgt cleanobj | |
706 | -@echo $(BUILDMSG) | |
707 | ||
708 | cleanobj: | |
709 | -@del /q $(_OBJDIR)\*.obj | |
710 | -@del /q $(_OBJDIR)\*.cod | |
711 | ||
712 | cleantgt: | |
713 | !IF "$(TARGETTYPE)" == "DYNLINK" | |
714 | -@del $(_RELEASELIBDIR)\$(TARGETNAME).lib | |
715 | -@del $(_RELEASELIBDIR)\$(TARGETNAME).exp | |
716 | -@del $(_RELEASEDIR)\$(TARGETNAME).map | |
717 | -@del $(_RELEASEDIR)\$(TARGETNAME).dll | |
718 | !ELSEIF "$(TARGETTYPE)" == "PROGRAM" | |
719 | -@del $(_RELEASEDIR)\$(TARGETNAME).map | |
720 | -@del $(_RELEASEDIR)\$(TARGETNAME).exe | |
721 | !ELSEIF "$(TARGETTYPE)" == "LIBRARY" | |
722 | -@del $(_RELEASELIBDIR)\$(TARGETNAME).lib | |
723 | !ENDIF | |
724 | ||
725 | # | |
726 | # Added for internationalization | |
727 | # | |
728 | !IF "$(IRC_DEPENDENT)" != "0" && "$(IRC_DEPENDENT)" != "" | |
729 | ! IF "$(LOCALE)" != "0411" | |
730 | $(_CPUINDPATH)\$(TARGETNAME).ire : resource\0409\internl.irc | |
731 | echo > $(_CPUINDPATH)\$(TARGETNAME).ire | |
732 | ! ELSE | |
733 | ||
734 | $(_CPUINDPATH)\$(TARGETNAME).ire : resource\0411\internl.irc | |
735 | echo > $(_CPUINDPATH)\$(TARGETNAME).ire | |
736 | ! ENDIF | |
737 | !ENDIF | |
738 | ||
739 | # | |
740 | # Figure out the include path | |
741 | # | |
742 | ||
743 | ##<Variable PlatformBuilderSettingsPage="General" SettingsPageItemNumber="0"> | |
744 | ##<VariableName>_TGTOS</VariableName> | |
745 | ##<FriendlyName>Target OS</FriendlyName> | |
746 | ##<Description>Specifies the target OS for the run-time image.</Description> | |
747 | ##<Settings> | |
748 | ##<Setting> | |
749 | ##<SettingValue Default="Y">CE</SettingValue> | |
750 | ##<FriendlyName>Windows CE</FriendlyName> | |
751 | ##</Setting> | |
752 | ##</Settings> | |
753 | ##</Variable> | |
754 | # Get default sdk library and include path | |
755 | !IF "$(_TGTOS)" == "NTANSI" || "$(_TGTOS)" == "NT" | |
756 | ! IF "$(USE_VC_MFC)" == "1" | |
757 | INCLUDEPATH=$(_SDKROOT)\NT\inc;$(_SDKROOT)\VC\inc;$(_SDKROOT)\vc\atlmfc\include | |
758 | LIBPATH=$(_SDKROOT)\NT\lib;$(_SDKROOT)\VC\lib;$(_SDKROOT)\vc\atlmfc\lib\x86 | |
759 | ! ELSE | |
760 | INCLUDEPATH=$(_SDKROOT)\NT\inc;$(_SDKROOT)\VC\inc;$(_SDKROOT)\MFC\include | |
761 | LIBPATH=$(_SDKROOT)\NT\lib;$(_SDKROOT)\VC\lib;$(_SDKROOT)\MFC\lib | |
762 | ! ENDIF | |
763 | # Add MFC if required | |
764 | ! IF "$(USE_MFC_HEADERS)"=="1" | |
765 | CDEFINES=$(CDEFINES) -D_AFXDLL | |
766 | ! IF "$(TARGETTYPE)"=="DYNLINK" | |
767 | CDEFINES=$(CDEFINES) -D_USRDLL | |
768 | ! ENDIF | |
769 | ! ENDIF | |
770 | !ELSE | |
771 | INCLUDEPATH=$(_SDKROOT)\$(_TGTOS)\inc | |
772 | LIBPATH=$(_SDKROOT)\$(_TGTOS)\lib | |
773 | !ENDIF | |
774 | ||
775 | # Add ATL 3.0 if user asked for it | |
776 | !IF "$(WINCEATL30)" == "1" | |
777 | INCLUDEPATH=$(_WINCEROOT)\others\atl\include;$(INCLUDEPATH) | |
778 | !ENDIF | |
779 | ||
780 | # Add MFC if user asked for it | |
781 | !IF "$(WINCEMFC)" == "1" | |
782 | INCLUDEPATH=$(_WINCEROOT)\others\mfc\include;$(INCLUDEPATH) | |
783 | !ENDIF | |
784 | ||
785 | # Add in any specific additions in the sources file | |
786 | !IF "$(EXT_INCLUDES)" != "" | |
787 | EXT_INCLUDES = $(EXT_INCLUDES: =) | |
788 | INCLUDEPATH=$(EXT_INCLUDES);$(INCLUDEPATH) | |
789 | !ENDIF | |
790 | ||
791 | # Add in the dependent tree based includes from sources.gen | |
792 | !IF "$(_TGTOS)"=="CE" | |
793 | ! IF "$(WINCEOEM)" == "1" | |
794 | ! IF "$(_OEMINCPATH)" != "" | |
795 | INCLUDEPATH=$(_OEMINCPATH);$(INCLUDEPATH) | |
796 | ! ENDIF | |
797 | ! ELSE | |
798 | ! IF "$(_ISVINCPATH)" != "" | |
799 | INCLUDEPATH=$(_ISVINCPATH);$(INCLUDEPATH) | |
800 | ! ENDIF | |
801 | ! ENDIF | |
802 | !ENDIF | |
803 | ||
804 | ||
805 | ##<Variable PlatformBuilderSettingsPage="Cpp" SettingsPageItemNumber="0"> | |
806 | ##<VariableName>CDEFINES</VariableName> | |
807 | ##<FriendlyName>Additional Macro Definitions</FriendlyName> | |
808 | ##<Description>Specifies additional macro definitions to add to C/C++ compiler commands by using the compiler syntax for specifying macro definitions from a command-line prompt.</Description> | |
809 | ##</Variable> | |
810 | ||
811 | ##<Variable PlatformBuilderSettingsPage="Cpp" SettingsPageItemNumber="0"> | |
812 | ##<VariableName>INCLUDES</VariableName> | |
813 | ##<FriendlyName>Include Directories</FriendlyName> | |
814 | ##<Description>Specifies additional directories that contain header files by listing directory names that do not contain spaces, separated by semicolons. Do not include a trailing semicolon.</Description> | |
815 | ##</Variable> | |
816 | ||
817 | # Add in any specific additions in the sources file | |
818 | !IF "$(INCLUDES)" != "" | |
819 | INCLUDES = $(INCLUDES: =) | |
820 | INCLUDEPATH=$(INCLUDES);$(INCLUDEPATH) | |
821 | !ENDIF | |
822 | ||
823 | INCLUDEPATH=$(INCLUDEPATH:;;=;) | |
824 | ||
825 | ##<Variable PlatformBuilderSettingsPage="Cpp" SettingsPageItemNumber="0"> | |
826 | ##<VariableName>OPTIMIZE_FAVOR</VariableName> | |
827 | ##<FriendlyName>Optimization Preference</FriendlyName> | |
828 | ##<Description>Specifies whether code is optimized for faster performance or smaller size.</Description> | |
829 | ##<Settings> | |
830 | ##<Setting> | |
831 | ##<SettingValue>SPEED</SettingValue> | |
832 | ##<FriendlyName>Speed</FriendlyName> | |
833 | ##</Setting> | |
834 | ##<Setting> | |
835 | ##<SettingValue Default="Y">SPACE</SettingValue> | |
836 | ##<FriendlyName>Size</FriendlyName> | |
837 | ##</Setting> | |
838 | ||
839 | ##</Settings> | |
840 | ##</Variable> | |
841 | !IF "$(OPTIMIZE_FAVOR)"=="SPEED" | |
842 | OPTIMIZE_FAVOR_FLAG=-Ot | |
843 | !ELSE IF "$(OPTIMIZE_FAVOR)"=="SPACE" | |
844 | OPTIMIZE_FAVOR_FLAG=-Os | |
845 | !ELSE | |
846 | ! ERROR Unknown OPTIMIZE_FAVOR setting: $(OPTIMIZE_FAVOR) | |
847 | !ENDIF | |
848 | ||
849 | ##<Variable PlatformBuilderSettingsPage="Cpp" SettingsPageItemNumber="0"> | |
850 | ##<VariableName>EXCEPTION_CPP</VariableName> | |
851 | ##<FriendlyName>Exception Handling</FriendlyName> | |
852 | ##<Description>Specifies whether to use C++ structured exception handling (SEH) and how to handle C exceptions.</Description> | |
853 | ##<Settings> | |
854 | ##<Setting> | |
855 | ##<SettingValue Default="Y">NONE</SettingValue> | |
856 | ##<FriendlyName>Not enabled</FriendlyName> | |
857 | ##</Setting> | |
858 | ##<Setting> | |
859 | ##<SettingValue>NO_SEH_NO_C_THROW</SettingValue> | |
860 | ##<FriendlyName>Enabled, without SEH or C exception handling</FriendlyName> | |
861 | ##</Setting> | |
862 | ##<Setting> | |
863 | ##<SettingValue>ENABLE_WITH_SEH</SettingValue> | |
864 | ##<FriendlyName>Enabled, with SEH</FriendlyName> | |
865 | ##</Setting> | |
866 | ##<Setting> | |
867 | ##<SettingValue>ENABLE_WITHOUT_SEH</SettingValue> | |
868 | ##<FriendlyName>Enabled, without SEH</FriendlyName> | |
869 | ##</Setting> | |
870 | ##</Settings> | |
871 | ##</Variable> | |
872 | ||
873 | !IF "$(EXCEPTION_CPP)" == "NO_SEH_NO_C_THROW" | |
874 | EXCEPTION_CPP=ENABLE_WITHOUT_SEH | |
875 | EXCEPTION_EXTERN_C=NO_THROW | |
876 | !ENDIF | |
877 | ||
878 | ||
879 | !IF "$(EXCEPTION_CPP)" == "NONE" | |
880 | # Default setting | |
881 | !ELSE IF "$(EXCEPTION_CPP)" == "ENABLE_WITH_SEH" | |
882 | EXCEPTION_CPP_CMD_LINE=/EHa | |
883 | !ELSE IF "$(EXCEPTION_CPP)" == "ENABLE_WITHOUT_SEH" | |
884 | EXCEPTION_CPP_CMD_LINE=/EHs | |
885 | !ELSE | |
886 | ! ERROR Invalid EXCEPTION_CPP setting: $(EXCEPTION_CPP) | |
887 | !ENDIF | |
888 | ||
889 | ##<Variable PlatformBuilderSettingsPage="Cpp" SettingsPageItemNumber="0"> | |
890 | ##<VariableName>EXCEPTION_EXTERN_C</VariableName> | |
891 | ##<FriendlyName>External C Exceptions</FriendlyName> | |
892 | ##<Description>Specifies the exception settings for external C code.</Description> | |
893 | ##<Settings> | |
894 | ##<Setting> | |
895 | ##<SettingValue Default="Y">THROW</SettingValue> | |
896 | ##<FriendlyName>Enabled</FriendlyName> | |
897 | ##</Setting> | |
898 | ##<Setting> | |
899 | ##<SettingValue>NO_THROW</SettingValue> | |
900 | ##<FriendlyName>Not enabled</FriendlyName> | |
901 | ##</Setting> | |
902 | ##</Settings> | |
903 | ##</Variable> | |
904 | !IF "$(EXCEPTION_EXTERN_C)" == "THROW" | |
905 | # Default setting | |
906 | !ELSE IF "$(EXCEPTION_EXTERN_C)" == "NO_THROW" | |
907 | EXCEPTION_EXTERN_C_CMD_LINE=/EHc | |
908 | !ELSE | |
909 | ! ERROR Invalid EXCEPTION_EXTERN_C setting: $(EXCEPTION_EXTERN_C) | |
910 | !ENDIF | |
911 | ||
912 | ||
913 | !IF ("$(WINCEDEBUG_COMPILE)" == "retail") | |
914 | ! IFDEF DISABLE_OPTIMIZER | |
915 | CDEBUG_FLAGS=-Od | |
916 | ! ELSE | |
917 | CDEBUG_DEFINES= | |
918 | CDEBUG_FLAGS=-Ox $(OPTIMIZE_FAVOR_FLAG) | |
919 | ! ENDIF | |
920 | !ELSE | |
921 | CDEBUG_DEFINES=-DDEBUG=1 | |
922 | ! IF "$(_TGTOS)" == "NT" || "$(_TGTOS)" == "NTANSI" | |
923 | CDEBUG_DEFINES=$(CDEBUG_DEFINES) -D_DEBUG=1 | |
924 | ! ENDIF | |
925 | CDEBUG_FLAGS=-Od | |
926 | !ENDIF | |
927 | ||
928 | ##<Variable PlatformBuilderSettingsPage="Cpp" SettingsPageItemNumber="0"> | |
929 | ##<VariableName>SECURITY_CHECKS</VariableName> | |
930 | ##<FriendlyName>Security Checks</FriendlyName> | |
931 | ##<Description>Specifies that the -gs compiler flag is turned on and enables stack security checks.</Description> | |
932 | ##<Settings> | |
933 | ##<Setting> | |
934 | ##<SettingValue Default="Y"></SettingValue> | |
935 | ##<FriendlyName>No</FriendlyName> | |
936 | ##</Setting> | |
937 | ##<Setting> | |
938 | ##<SettingValue>1</SettingValue> | |
939 | ##<FriendlyName>Yes</FriendlyName> | |
940 | ##</Setting> | |
941 | ##</Settings> | |
942 | ##</Variable> | |
943 | !IF ("$(SECURITY_CHECKS)" != "") | |
944 | ! IF ("$(NO_SECURITY_CHECKS)" == "") | |
945 | CDEBUG_FLAGS=$(CDEBUG_FLAGS) -GS | |
946 | ! ENDIF | |
947 | !ENDIF | |
948 | ||
949 | !IF ("$(WINCELTCG)" != "" && "$(NOLTCG)" == "") | |
950 | CDEBUG_FLAGS=$(CDEBUG_FLAGS) -GL | |
951 | !ENDIF | |
952 | ||
953 | ##<Variable PlatformBuilderSettingsPage="General" SettingsPageItemNumber="0"> | |
954 | ##<VariableName>WINCE_LMEM_DEBUG</VariableName> | |
955 | ##<FriendlyName>Local Memory Debugging</FriendlyName> | |
956 | ##<Description>Specifies whether to enable memory allocation debugging for heap memory.</Description> | |
957 | ##<Settings> | |
958 | ##<Setting> | |
959 | ##<SettingValue Default="Y"></SettingValue> | |
960 | ##<FriendlyName>No</FriendlyName> | |
961 | ##</Setting> | |
962 | ##<Setting> | |
963 | ##<SettingValue>1</SettingValue> | |
964 | ##<FriendlyName>Yes</FriendlyName> | |
965 | ##</Setting> | |
966 | ##</Settings> | |
967 | ##</Variable> | |
968 | !IF "$(WINCE_LMEM_DEBUG)" != "" | |
969 | CDEBUG_DEFINES=$(CDEBUG_DEFINES) -DLMEM_DEBUG=1 | |
970 | !ENDIF | |
971 | ||
972 | ##<Variable PlatformBuilderSettingsPage="General" SettingsPageItemNumber="0"> | |
973 | ##<VariableName>TARGET_PDB_NAME</VariableName> | |
974 | ##<FriendlyName>Target .pdb Name</FriendlyName> | |
975 | ##<Description>Specifies the path, file name, and file type of the target program database (.pdb) file. By default, .pdb files are placed in the release directory.</Description> | |
976 | ##</Variable> | |
977 | !IF "$(TARGET_PDB_NAME)" == "" | |
978 | ! IF "$(TARGETTYPE)" == "LIBRARY" | |
979 | TARGET_PDB_NAME = $(_RELEASELIBDIR)\$(TARGETNAME).pdb | |
980 | ! ELSE | |
981 | TARGET_PDB_NAME = $(_RELEASEDIR)\$(TARGETNAME).pdb | |
982 | ! ENDIF | |
983 | !ENDIF | |
984 | ||
985 | # Pass name of PDB file to both compiler and linker | |
986 | CDEBUG_FLAGS=$(CDEBUG_FLAGS) -GF -Zi -Fd$(TARGET_PDB_NAME) | |
987 | ||
988 | ##<Variable PlatformBuilderSettingsPage="Cpp" SettingsPageItemNumber="0"> | |
989 | ##<VariableName>RESOURCEONLYDLL</VariableName> | |
990 | ##<FriendlyName>DLL Contains Resources Only</FriendlyName> | |
991 | ##<Description>Specifies that a dynamic-link library (.dll) file contains only resources, which reduces the file size by removing debugging information that is not needed.</Description> | |
992 | ##<Settings> | |
993 | ##<Setting> | |
994 | ##<SettingValue Default="Y"></SettingValue> | |
995 | ##<FriendlyName>No</FriendlyName> | |
996 | ##</Setting> | |
997 | ##<Setting> | |
998 | ##<SettingValue>1</SettingValue> | |
999 | ##<FriendlyName>Yes</FriendlyName> | |
1000 | ##</Setting> | |
1001 | ##</Settings> | |
1002 | ##</Variable> | |
1003 | ||
1004 | !IF "$(RESOURCEONLYDLL)" == "1" | |
1005 | DEBUG_LINK_CMD_LINE= | |
1006 | !ELSEIF "$(WINCEPROFILE)" == "1" | |
1007 | DEBUG_LINK_CMD_LINE=-debug -debugtype:both -incremental:no | |
1008 | CDEBUG_DEFINES=$(CDEBUG_DEFINES) -DWINCEPROFILE | |
1009 | !ELSE | |
1010 | DEBUG_LINK_CMD_LINE=-debug -debugtype:cv -incremental:no | |
1011 | !ENDIF | |
1012 | ||
1013 | !IF "$(TGTCPUISANAME)"=="ARMV4" | |
1014 | LINKER_DEBUG=$(LINKER_DEBUG) /ARMPADCODE | |
1015 | !ENDIF | |
1016 | ||
1017 | !IF "$(WINCEMEMTRACK)" == "1" | |
1018 | CDEFINES=$(CDEFINES) -DMEMTRACKING=1 | |
1019 | !ENDIF | |
1020 | ||
1021 | ##<Variable PlatformBuilderSettingsPage="General" SettingsPageItemNumber="0"> | |
1022 | ##<VariableName>WINCESHIP</VariableName> | |
1023 | ##<FriendlyName>Ship Build</FriendlyName> | |
1024 | ##<Description>Specifies whether to remove debug messages and provide limited support for debugging. To enable a ship build, the environment variable WINCEDEBUG must also be set to RETAIL.</Description> | |
1025 | ##<Settings> | |
1026 | ##<Setting> | |
1027 | ##<SettingValue Default="Y"></SettingValue> | |
1028 | ##<FriendlyName>No</FriendlyName> | |
1029 | ##</Setting> | |
1030 | ##<Setting> | |
1031 | ##<SettingValue>1</SettingValue> | |
1032 | ##<FriendlyName>Yes</FriendlyName> | |
1033 | ##</Setting> | |
1034 | ##</Settings> | |
1035 | ##</Variable> | |
1036 | !IF "$(WINCESHIP)" != "" | |
1037 | CDEBUG_DEFINES=$(CDEBUG_DEFINES) -DSHIP_BUILD | |
1038 | !ENDIF | |
1039 | ||
1040 | !IF "$(WINCE_OVERRIDE_CFLAGS)" != "" | |
1041 | CDEBUG_FLAGS=$(WINCE_OVERRIDE_CFLAGS) | |
1042 | !ENDIF | |
1043 | ||
1044 | !IF "$(WINCE_LINKER_DEBUG)" != "" | |
1045 | LINKER_DEBUG=$(WINCE_LINKER_DEBUG) | |
1046 | !ENDIF | |
1047 | ||
1048 | ##<Variable PlatformBuilderSettingsPage="General" SettingsPageItemNumber="0"> | |
1049 | ##<VariableName>EXEBASE</VariableName> | |
1050 | ##<FriendlyName>Executable Base Address</FriendlyName> | |
1051 | ##<Description>Specifies the base address in memory for an executable (.exe) file, which is sent to the linker.</Description> | |
1052 | ##</Variable> | |
1053 | !IFNDEF EXEBASE | |
1054 | ! IF "$(_TGTOS)"=="CE" | |
1055 | EXEBASE=0x00010000 | |
1056 | ! ELSE | |
1057 | EXEBASE=0x01000000 | |
1058 | ! ENDIF | |
1059 | !ENDIF | |
1060 | ||
1061 | ||
1062 | ##<Variable PlatformBuilderSettingsPage="Cpp" SettingsPageItemNumber="0"> | |
1063 | ##<VariableName>CPPBROWSE</VariableName> | |
1064 | ##<FriendlyName>Generate Browse Information</FriendlyName> | |
1065 | ##<Description>Specifies whether browse information is generated. This enables you to view definitions and references to identifiers in the selected project.</Description> | |
1066 | ##<Settings> | |
1067 | ##<Setting> | |
1068 | ##<SettingValue Default="Y"></SettingValue> | |
1069 | ##<FriendlyName>No</FriendlyName> | |
1070 | ##</Setting> | |
1071 | ##<Setting> | |
1072 | ##<SettingValue>1</SettingValue> | |
1073 | ##<FriendlyName>Yes</FriendlyName> | |
1074 | ##</Setting> | |
1075 | ##</Settings> | |
1076 | ##</Variable> | |
1077 | ||
1078 | !IFDEF CPPBROWSE | |
1079 | #!IFNDEF NO_AUTOMATIC_BSC | |
1080 | ! message Build Browse Files | |
1081 | CDEBUG_FLAGS=$(CDEBUG_FLAGS) /FR$(TEMP)\$(@B).sbr | |
1082 | #!ENDIF | |
1083 | !ENDIF | |
1084 | ||
1085 | !IF "$(WINCE_ELIM_DEAD_CODE)" == "1" || "$(WINCEDEBUG_COMPILE)" == "retail" | |
1086 | CONLY_FLAGS=$(CONLY_FLAGS) /Gy | |
1087 | LINKER_DEBUG=$(LINKER_DEBUG) /opt:ref | |
1088 | !ENDIF | |
1089 | ||
1090 | !IF "$(WINCE_VERBOSE_LINK)" == "1" | |
1091 | LINKER_DEBUG=$(LINKER_DEBUG) /verbose | |
1092 | !ENDIF | |
1093 | ||
1094 | TGTCPUDEFINES=-D$(_TGTCPUFAMILY) | |
1095 | !IF "$(TGTCPUISANAME)" != "$(_TGTCPUFAMILY)" | |
1096 | TGTCPUDEFINES = $(TGTCPUDEFINES) -D$(TGTCPUISANAME) | |
1097 | !ENDIF | |
1098 | !IF "$(_TGTCPU)" != "$(TGTCPUISANAME)" | |
1099 | TGTCPUDEFINES=$(TGTCPUDEFINES) -D$(_TGTCPU) | |
1100 | !ENDIF | |
1101 | ||
1102 | # MIPS16 is also a MIPSII | |
1103 | !IF "$(_TGTCPU)" == "MIPS16" | |
1104 | TGTCPUDEFINES=$(TGTCPUDEFINES) -DMIPSII | |
1105 | !ENDIF | |
1106 | ||
1107 | !IF "$(_TGTCPUFAMILY)" == "x86" | |
1108 | TGTCPUDEFINES=$(TGTCPUDEFINES) -D_X86_ | |
1109 | ||
1110 | !ELSEIF "$(_TGTCPUFAMILY)" == "SH" | |
1111 | TGTCPUDEFINES=$(TGTCPUDEFINES) -D_SHX_ -DSHx | |
1112 | ||
1113 | !ELSEIF "$(_TGTCPUFAMILY)" == "ARM" | |
1114 | TGTCPUDEFINES=$(TGTCPUDEFINES) -D_ARM_ | |
1115 | ! IF "$(TGTCPUISANAME)"=="ARMV4T" | |
1116 | TGTCPUDEFINES=$(TGTCPUDEFINES) -D_THUMB_ | |
1117 | ! ENDIF | |
1118 | ||
1119 | !ELSEIF "$(_TGTCPUFAMILY)"=="MIPS" | |
1120 | TGTCPUDEFINES=$(TGTCPUDEFINES) -D_MIPS_ -DR4000 | |
1121 | ||
1122 | ! IF "$(_TGTCPUOPTIONS)" == "_FP" | |
1123 | MIPS_HAS_FPU=1 | |
1124 | ! ENDIF | |
1125 | ||
1126 | ! IFDEF MIPS_HAS_FPU | |
1127 | CDEFINES=$(CDEFINES) $(CFPUDEFINES) | |
1128 | ADEFINES=$(ADEFINES) $(AFPUDEFINES) | |
1129 | ! ENDIF | |
1130 | ||
1131 | !ENDIF # _TGTCPUFAMILY == MIPS | |
1132 | ||
1133 | #collect all the defines together | |
1134 | CDEFINES=-DWIN32 -DSTRICT $(TGTCPUDEFINES) $(CDEBUG_DEFINES) $(CDEFINES) | |
1135 | !IF "$(WINCEOEM)"=="1" | |
1136 | CDEFINES=-DWINCEOEM -DWINCEINTERNAL $(CDEFINES) | |
1137 | !ENDIF | |
1138 | !IF "$(TARGETTHREADMODEL)" == "MT" | |
1139 | CDEFINES=-D_MT $(CDEFINES) | |
1140 | !ELSEIF "$(TARGETTHREADMODEL)" == "MD" | |
1141 | CDEFINES=-D_MT -D_DLL $(CDEFINES) | |
1142 | !ENDIF | |
1143 | !IF "$(WINCEEMULATION)"=="1" | |
1144 | CDEFINES=-D_WIN32_WCE_EMULATION $(CDEFINES) | |
1145 | !ENDIF | |
1146 | !IF "$(_TGTOS)" == "NTANSI" | |
1147 | CDEFINES=-DUNDER_NT $(CDEFINES) | |
1148 | !ELSEIF "$(_TGTOS)" == "NT" | |
1149 | CDEFINES=-DUNDER_NT $(CDEFINES) | |
1150 | !ELSEIF "$(_TGTOS)" == "CE" | |
1151 | CDEFINES=-DUNDER_CE=500 -D_WIN32_WCE=500 $(CDEFINES) | |
1152 | !ENDIF | |
1153 | !IF "$(NOT_UNICODE)" != "1" && "$(_TGTOS)" != "NTANSI" | |
1154 | CDEFINES=-DUNICODE -D_UNICODE $(CDEFINES) | |
1155 | !ENDIF | |
1156 | ||
1157 | #collect all include paths together | |
1158 | !IF "$(INCLUDEPATH)" == "" || "$(INCLUDEPATH)" == " " | |
1159 | CINCLUDES=-I$(_TGTCPUFAMILY)\ -I. | |
1160 | !ELSE | |
1161 | CINCLUDES=-I$(_TGTCPUFAMILY)\ -I. -I$(INCLUDEPATH:;= -I) | |
1162 | !ENDIF | |
1163 | ||
1164 | ||
1165 | # -- Added for WINCE-INTERNATIONAL | |
1166 | # | |
1167 | # set some flags for INTERNATIONAL module | |
1168 | !IF "$(LOCALE)" != "" | |
1169 | # | |
1170 | # For LOCALE specific flag. Default code page is 437 | |
1171 | # | |
1172 | ! IF "$(LOCALE)" == "0411" | |
1173 | CODEPAGE=932 | |
1174 | ! ELSE | |
1175 | CODEPAGE=1252 | |
1176 | ! ENDIF | |
1177 | # | |
1178 | # set CFLAGS,CINLUDE and RDEFINES for INTERNATIONAL module | |
1179 | # | |
1180 | CDEFINES=$(CDEFINES) -DINTERNATIONAL -DL$(LOCALE) -DINTLMSG_CODEPAGE=$(CODEPAGE) | |
1181 | CINCLUDES=$(CINCLUDES) -I.\Resource\$(LOCALE) | |
1182 | RDEFINES=$(RDEFINES) -DINTERNATIONAL -DL$(LOCALE) -l 409 -c $(CODEPAGE) | |
1183 | !ENDIF | |
1184 | # | |
1185 | # End WINCE-INTERNATIONAL stuff | |
1186 | # | |
1187 | ||
1188 | ##<Variable PlatformBuilderSettingsPage="General" SettingsPageItemNumber="0"> | |
1189 | ##<VariableName>WARNLEVEL</VariableName> | |
1190 | ##<FriendlyName>Warning Level</FriendlyName> | |
1191 | ##<Description>Determines the level of warnings that the compiler displays.</Description> | |
1192 | ##<Settings> | |
1193 | ##<Setting> | |
1194 | ##<SettingValue>0</SettingValue> | |
1195 | ##<FriendlyName>None</FriendlyName> | |
1196 | ##</Setting> | |
1197 | ##<Setting> | |
1198 | ##<SettingValue>1</SettingValue> | |
1199 | ##<FriendlyName>Level 1</FriendlyName> | |
1200 | ##</Setting> | |
1201 | ##<Setting> | |
1202 | ##<SettingValue>2</SettingValue> | |
1203 | ##<FriendlyName>Level 2</FriendlyName> | |
1204 | ##</Setting> | |
1205 | ##<Setting> | |
1206 | ##<SettingValue Default="Y">3</SettingValue> | |
1207 | ##<FriendlyName>Level 3</FriendlyName> | |
1208 | ##</Setting> | |
1209 | ##<Setting> | |
1210 | ##<SettingValue>4</SettingValue> | |
1211 | ##<FriendlyName>Level 4</FriendlyName> | |
1212 | ##</Setting> | |
1213 | ##</Settings> | |
1214 | ##</Variable> | |
1215 | ||
1216 | !IF "$(WARNLEVEL)" == "0" | |
1217 | WARNLEVEL_CMD_LINE=-w | |
1218 | !ELSEIF "$(WARNLEVEL)" != "" | |
1219 | WARNLEVEL_CMD_LINE=-W$(WARNLEVEL) | |
1220 | !ELSE | |
1221 | WARNLEVEL_CMD_LINE=-W3 | |
1222 | !ENDIF | |
1223 | ||
1224 | ##<Variable PlatformBuilderSettingsPage="General" SettingsPageItemNumber="0"> | |
1225 | ##<VariableName>WARNISERROR</VariableName> | |
1226 | ##<FriendlyName>Warnings as Errors</FriendlyName> | |
1227 | ##<Description>Specifies that the compiler treats warnings as errors.</Description> | |
1228 | ##<Settings> | |
1229 | ##<Setting> | |
1230 | ##<SettingValue Default="Y"></SettingValue> | |
1231 | ##<FriendlyName>No</FriendlyName> | |
1232 | ##</Setting> | |
1233 | ##<Setting> | |
1234 | ##<SettingValue>1</SettingValue> | |
1235 | ##<FriendlyName>Yes</FriendlyName> | |
1236 | ##</Setting> | |
1237 | ##</Settings> | |
1238 | ##</Variable> | |
1239 | ||
1240 | ##<Variable PlatformBuilderSettingsPage="General" SettingsPageItemNumber="0"> | |
1241 | ##<VariableName>WINCECOD</VariableName> | |
1242 | ##<FriendlyName>Generate Code File</FriendlyName> | |
1243 | ##<Description>Uses the compiler to generate a code (.cod) file.</Description> | |
1244 | ##<Settings> | |
1245 | ##<Setting> | |
1246 | ##<SettingValue Default="Y"></SettingValue> | |
1247 | ##<FriendlyName>No</FriendlyName> | |
1248 | ##</Setting> | |
1249 | ##<Setting> | |
1250 | ##<SettingValue>1</SettingValue> | |
1251 | ##<FriendlyName>Yes</FriendlyName> | |
1252 | ##</Setting> | |
1253 | ##</Settings> | |
1254 | ##</Variable> | |
1255 | ||
1256 | # set CFLAGS | |
1257 | CFLAGS=-c $(CINCLUDES) $(CDEBUG_FLAGS) $(CDEFINES) | |
1258 | ||
1259 | !IF "$(WINCECOD)" != "" | |
1260 | CFLAGS=$(CFLAGS) -FAsc -Fa$(@R).cod | |
1261 | !ENDIF | |
1262 | !IF "$(WARNISERROR)"=="1" | |
1263 | # Turn off WX when running prefast, it throws some warnings. | |
1264 | ! IF "$(PREFAST_ADD_PATH)" == "" | |
1265 | CFLAGS=$(CFLAGS) -WX | |
1266 | ! ENDIF | |
1267 | !ENDIF | |
1268 | ||
1269 | # setup host compiler | |
1270 | HOSTCOMPILER=cl | |
1271 | ||
1272 | #resource compiler stuff | |
1273 | !IF "$(_TGTOS)" == "CE" | |
1274 | RDEFINES=$(_TGTCPUDEFINES) -DUNDER_CE=500 $(RDEFINES) | |
1275 | ! IF "$(WINCEDEBUG_COMPILE)"=="debug" | |
1276 | RDEFINES=$(RDEFINES) -DDEBUG | |
1277 | ! ENDIF | |
1278 | ! IF "$(WINCEOEM)"=="1" | |
1279 | RDEFINES=-DWINCEINTERNAL $(RDEFINES) | |
1280 | ! ENDIF | |
1281 | !ELSE | |
1282 | RDEFINES=$(_TGTCPUDEFINES) -DUNDER_NT $(RDEFINES) | |
1283 | !ENDIF | |
1284 | RCOMPILER=rc -r $(CINCLUDES) $(RDEFINES) | |
1285 | ||
1286 | #midl compiler stuff | |
1287 | MIDLCOMPILER=midl -nologo | |
1288 | MKTYPLIBFLAGS=/win32 /mktyplib203 | |
1289 | ||
1290 | # preprocessing is always done on the host | |
1291 | DEFPREPROCESS=$(HOSTCOMPILER) -EP $(CDEFINES) $(CINCLUDES) | |
1292 | ||
1293 | !IF "$(_TGTOS)" == "NT" || "$(_TGTOS)" == "NTANSI" | |
1294 | ! IF "$(TARGETTYPE)" == "PROGRAM" | |
1295 | ! IF "$(TARGETTHREADMODEL)" == "MT" | |
1296 | ! IF ("$(WINCEDEBUG_COMPILE)" == "retail") | |
1297 | STARTLIB=libcmt.lib | |
1298 | STCPPLIB=libcpmt.lib | |
1299 | ! ELSE | |
1300 | STARTLIB=libcmtd.lib | |
1301 | STCPPLIB=libcpmtd.lib | |
1302 | ! ENDIF | |
1303 | ! ELSEIF "$(TARGETTHREADMODEL)" == "MD" | |
1304 | ! IF ("$(WINCEDEBUG_COMPILE)" == "retail") | |
1305 | STARTLIB=msvcrt.lib | |
1306 | STCPPLIB=msvcprt.lib | |
1307 | ! ELSE | |
1308 | STARTLIB=msvcrtd.lib | |
1309 | STCPPLIB=msvcprtd.lib | |
1310 | ! ENDIF | |
1311 | ! ELSE | |
1312 | ! IF ("$(WINCEDEBUG_COMPILE)" == "retail") | |
1313 | STARTLIB=libc.lib | |
1314 | STCPPLIB=libcp.lib | |
1315 | ! ELSE | |
1316 | STARTLIB=libcd.lib | |
1317 | STCPPLIB=libcpd.lib | |
1318 | ! ENDIF | |
1319 | ! ENDIF | |
1320 | ! ELSE | |
1321 | ! IF "$(TARGETTHREADMODEL)" == "MT" | |
1322 | ! IF ("$(WINCEDEBUG_COMPILE)" == "retail") | |
1323 | STARTLIB=libcmt.lib | |
1324 | STCPPLIB=libcpmt.lib | |
1325 | ! ELSE | |
1326 | STARTLIB=libcmtd.lib | |
1327 | STCPPLIB=libcpmtd.lib | |
1328 | ! ENDIF | |
1329 | ! ELSE | |
1330 | ! IF ("$(WINCEDEBUG_COMPILE)" == "retail") | |
1331 | STARTLIB=msvcrt.lib | |
1332 | STCPPLIB=msvcprt.lib | |
1333 | ! ELSE | |
1334 | STARTLIB=msvcrtd.lib | |
1335 | STCPPLIB=msvcprtd.lib | |
1336 | ! ENDIF | |
1337 | ! ENDIF | |
1338 | ! ENDIF | |
1339 | ||
1340 | ##<Variable PlatformBuilderSettingsPage="Link" SettingsPageItemNumber="0"> | |
1341 | ##<VariableName>TARGETLIBS</VariableName> | |
1342 | ##<FriendlyName>Additional Libraries</FriendlyName> | |
1343 | ##<Description>Specifies additional libraries to link to your target executable, DLL, or static library.</Description> | |
1344 | ##</Variable> | |
1345 | ||
1346 | TARGETLIBS=$(TARGETLIBS) \ | |
1347 | $(_SDKROOT)\VC\lib\$(_TGTCPUFAMILY)\$(STARTLIB) \ | |
1348 | $(_SDKROOT)\VC\lib\$(_TGTCPUFAMILY)\$(STCPPLIB) \ | |
1349 | $(_SDKROOT)\VC\lib\$(_TGTCPUFAMILY)\oldnames.lib \ | |
1350 | $(_SDKROOT)\NT\lib\$(_TGTCPUFAMILY)\kernel32.lib \ | |
1351 | $(_SDKROOT)\NT\lib\$(_TGTCPUFAMILY)\advapi32.lib \ | |
1352 | $(_SDKROOT)\NT\lib\$(_TGTCPUFAMILY)\gdi32.lib \ | |
1353 | $(_SDKROOT)\NT\lib\$(_TGTCPUFAMILY)\user32.lib \ | |
1354 | $(_SDKROOT)\NT\lib\$(_TGTCPUFAMILY)\winmm.lib | |
1355 | !ELSE | |
1356 | ! IFNDEF NOLIBC | |
1357 | TARGETLIBS=$(TARGETLIBS) $(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\corelibc.lib | |
1358 | ! ENDIF | |
1359 | !ENDIF | |
1360 | ||
1361 | !IF "$(TGTCPUISANAME)"=="SH4" | |
1362 | MACHINEOPTION=-machine:SH4 | |
1363 | !ELSEIF "$(_TGTCPUFAMILY)"=="SH" | |
1364 | ! IF "$(ENABLEDSP)"=="1" || "$(_TGTCPUOPTIONS)"=="_DSP" | |
1365 | MACHINEOPTION=-machine:SH3DSP | |
1366 | ! ELSE | |
1367 | MACHINEOPTION=-machine:SH3 | |
1368 | ! ENDIF | |
1369 | !ELSEIF "$(TGTCPUISANAME)" == "MIPSII" | |
1370 | MACHINEOPTION=-machine:MIPS | |
1371 | !ELSEIF "$(TGTCPUISANAME)" == "MIPS16" | |
1372 | MACHINEOPTION=-machine:MIPS16 | |
1373 | !ELSEIF "$(TGTCPUISANAME)" == "MIPSIV" | |
1374 | MACHINEOPTION=-machine:MIPSFPU | |
1375 | !ELSEIF "$(TGTCPUISANAME)" == "ARMV4T" || "$(TGTCPUISANAME)" == "ARMV4I" | |
1376 | MACHINEOPTION=-machine:thumb | |
1377 | !ELSE | |
1378 | MACHINEOPTION=-machine:$(_TGTCPUFAMILY) | |
1379 | !ENDIF | |
1380 | ||
1381 | # Setup CeCAP | |
1382 | !IF "$(WINCECALLCAP)"!="" && "$(WINCEFASTCAP)"!="" | |
1383 | ! ERROR Error: WINCECALLCAP and WINCEFASTCAP are both defined. Please choose one. | |
1384 | !ENDIF | |
1385 | ||
1386 | !IF "$(WINCECALLCAP)"!="" | |
1387 | ! IF "$(_TGTCPUFAMILY)"=="x86" | |
1388 | CFLAGS=$(CFLAGS) /Gh | |
1389 | ! ELSE | |
1390 | CFLAGS=$(CFLAGS) /callcap | |
1391 | ! ENDIF | |
1392 | !ENDIF | |
1393 | ||
1394 | !IF "$(WINCEFASTCAP)"!="" | |
1395 | ! IF "$(_TGTCPUFAMILY)"=="x86" | |
1396 | ! ERROR Error: WINCEFASTCAP is currently not supported on x86. Please choose WINCECALLCAP. | |
1397 | ! ELSE | |
1398 | CFLAGS=$(CFLAGS) /fastcap | |
1399 | ! ENDIF | |
1400 | !ENDIF | |
1401 | ||
1402 | !IF "$(WINCECALLCAP)"!="" || "$(WINCEFASTCAP)"!="" | |
1403 | TARGETLIBS=$(TARGETLIBS) $(_COMMONOAKROOT)\lib\$(_TGTCPU)\$(WINCEDEBUG)\cecap.lib | |
1404 | !ENDIF | |
1405 | ||
1406 | # | |
1407 | # Now for special CPU dependent defines | |
1408 | # | |
1409 | !IF "$(_TGTCPUFAMILY)"=="x86" | |
1410 | CCOMPILER=cl -nologo | |
1411 | CXXCOMPILER=$(CCOMPILER) | |
1412 | ASSEMBLER=ml -nologo | |
1413 | CVTRES=cvtres -machine:iX86 | |
1414 | CFLAGS=$(CFLAGS) /QIfdiv- | |
1415 | AFLAGS=-c -coff -Cx $(ADEFINES) $(CINCLUDES) -Zm | |
1416 | ! IF "$(WINCECOD)" != "" | |
1417 | AFLAGS=$(AFLAGS) -Sn -Fl$(@R).lst | |
1418 | ! ENDIF | |
1419 | ||
1420 | !ELSEIF "$(_TGTCPUFAMILY)"=="SH" | |
1421 | CCOMPILER=cl -nologo | |
1422 | CXXCOMPILER=$(CCOMPILER) | |
1423 | ASSEMBLER=shasm | |
1424 | CFLAGS=$(CFLAGS) -DSH3_CACHE=1 | |
1425 | ALIGNMENT=4096 | |
1426 | ! IF "$(TGTCPUISANAME)"=="SH4" | |
1427 | AFLAGS=$(ADEFINES) -Qsh4r5 | |
1428 | CFLAGS=$(CFLAGS) -Qsh4r5 | |
1429 | CVTRES=cvtres -machine:sh4 | |
1430 | ! ELSE | |
1431 | AFLAGS=$(ADEFINES) -Qsh3 -Qdsp | |
1432 | CVTRES=cvtres -machine:sh3 | |
1433 | ! IF "$(ENABLEDSP)"=="1" || "$(_TGTCPUOPTIONS)"=="_DSP" | |
1434 | CFLAGS=$(CFLAGS) -Qdsp | |
1435 | ! ENDIF | |
1436 | ! ENDIF | |
1437 | ! IF "$(WINCEPROFILE)" == "1" | |
1438 | ADEFINES=$(ADEFINES) -DPROFILE=1 | |
1439 | ! ELSE | |
1440 | ADEFINES=$(ADEFINES) -DPROFILE=0 | |
1441 | ! ENDIF | |
1442 | ! IFDEF WINCECOD | |
1443 | AFLAGS=$(AFLAGS) -LIST=$(@R).lst | |
1444 | ! ENDIF | |
1445 | ||
1446 | !ELSEIF "$(_TGTCPUFAMILY)"=="MIPS" | |
1447 | ||
1448 | ASSEMBLER=mipsasm | |
1449 | CCOMPILER=cl -nologo | |
1450 | ALIGNMENT=4096 | |
1451 | ! IF "$(TGTCPU)"=="MIPSII" | |
1452 | CFLAGS=$(CFLAGS) -QMmips2 -D_M_MRX000=4000 -QMFPE | |
1453 | ! ELSEIF "$(_TGTCPU)"=="MIPSII_FP" | |
1454 | CFLAGS=$(CFLAGS) -QMmips2 -D_M_MRX000=4000 -QMFPE- | |
1455 | ! ELSEIF "$(_TGTCPU)"=="MIPS16" | |
1456 | CFLAGS=$(CFLAGS) -DMIPS16SUPPORT | |
1457 | LDEFINES=-merge:.text16=.text $(LDEFINES) | |
1458 | ! IF "$(NOMIPS16CODE)"=="1" | |
1459 | CONLY_FLAGS=-QMmips2 -D_M_MRX000=4000 -DNOMIPS16CODE | |
1460 | ! ELSE | |
1461 | CONLY_FLAGS=-ase16 | |
1462 | ! ENDIF | |
1463 | ADEFINES=-QMmips2 -D_M_MRX000=4000 $(ADEFINES) | |
1464 | ! ELSEIF "$(_TGTCPU)" == "MIPSIV" | |
1465 | CFLAGS=$(CFLAGS) -D_MIPS64 -QMmips4 -QMn32 -QMFPE | |
1466 | CCOMPILER=cl -nologo | |
1467 | ASSEMBLER=mipsasm -QMmips4 | |
1468 | ! ELSEIF "$(_TGTCPU)" == "MIPSIV_FP" | |
1469 | CFLAGS=$(CFLAGS) -D_MIPS64 -QMmips4 -QMn32 -QMFPE- | |
1470 | CCOMPILER=cl -nologo | |
1471 | ASSEMBLER=mipsasm -QMmips4 | |
1472 | ! ENDIF | |
1473 | CXXCOMPILER=$(CCOMPILER) | |
1474 | ! IF "$(_TGTCPU)" == "MIPSIV_FP" | |
1475 | CVTRES=cvtres -machine:mipsfpu | |
1476 | ! ELSE | |
1477 | CVTRES=cvtres -machine:mips | |
1478 | ! ENDIF | |
1479 | AFLAGS=$(CFLAGS) $(ADEFINES) | |
1480 | ||
1481 | !ELSEIF "$(_TGTCPUFAMILY)"=="ARM" | |
1482 | ||
1483 | CCOMPILER=cl -nologo | |
1484 | CXXCOMPILER=$(CCOMPILER) | |
1485 | ASSEMBLER=armasm -coff | |
1486 | CVTRES=cvtres -machine:arm | |
1487 | ||
1488 | ! IF "$(NOMIPS16CODE)"=="1" | |
1489 | CFLAGS=$(CFLAGS) -QRimplicit-import- | |
1490 | ! ENDIF | |
1491 | ||
1492 | ! IF "$(WINCEPROFILE)" == "1" | |
1493 | ADEFINES=$(ADEFINES) -pd "PROFILE SETA 1" | |
1494 | ! ENDIF | |
1495 | ||
1496 | ! IF ("$(WINCEDEBUG_COMPILE)" == "debug") | |
1497 | AFLAGS=$(AFLAGS) -pd "DEBUG SETA 1" | |
1498 | ! ENDIF | |
1499 | ||
1500 | ! IFDEF WINCECOD | |
1501 | AFLAGS=$(AFLAGS) -list $(@R).lst -wi 150 -l 0 | |
1502 | ! ENDIF | |
1503 | ||
1504 | AFLAGS=$(AFLAGS) -cr $(ADEFINES) -i $(INCLUDEPATH:;=,) -i arm | |
1505 | LDEFINES=-merge:.astart=.text $(LDEFINES) | |
1506 | ALIGNMENT=4096 | |
1507 | ||
1508 | ! IF "$(TGTCPUISANAME)"=="ARMV4T" | |
1509 | ! IFNDEF BUILDASARM | |
1510 | CCOMPILER=cl -nologo -QRthumb | |
1511 | ! ENDIF | |
1512 | CVTRES=cvtres -machine:thumb | |
1513 | _SRCDIR=ARM | |
1514 | ||
1515 | ARM_ARCH_C_CMD_LINE=-QRarch4T | |
1516 | ARM_ARCH_ASSEMBLER_CMD_LINE=-arch 4t | |
1517 | THUMB_C_CMD_LINE=-DTHUMBSUPPORT | |
1518 | THUMB_ASSEMBLER_CMD_LINE=-pd "Thumbing SETL {TRUE}" | |
1519 | INTERWORK_C_CMD_LINE=-QRinterwork-return | |
1520 | INTERWORK_ASSEMBLER_CMD_LINE=-pd "Interworking SETL {TRUE}" | |
1521 | ||
1522 | ! ELSEIF "$(TGTCPUISANAME)"=="ARMV4I" | |
1523 | ARM_ARCH_C_CMD_LINE=-QRarch4T | |
1524 | ARM_ARCH_ASSEMBLER_CMD_LINE=-arch 4t | |
1525 | INTERWORK_C_CMD_LINE=-QRinterwork-return | |
1526 | INTERWORK_ASSEMBLER_CMD_LINE=-pd "Interworking SETL {TRUE}" | |
1527 | THUMB_C_CMD_LINE=-DTHUMBSUPPORT | |
1528 | THUMB_ASSEMBLER_CMD_LINE=-pd "Thumbing SETL {FALSE}" | |
1529 | ||
1530 | ! ELSEIF "$(TGTCPUISANAME)"=="ARMV4" | |
1531 | ARM_ARCH_ASSEMBLER_CMD_LINE=-arch 4 | |
1532 | THUMB_ASSEMBLER_CMD_LINE=-pd "Thumbing SETL {FALSE}" | |
1533 | INTERWORK_ASSEMBLER_CMD_LINE=-pd "Interworking SETL {FALSE}" | |
1534 | ! ENDIF | |
1535 | ||
1536 | ##<Variable PlatformBuilderSettingsPage="Cpp" SettingsPageItemNumber="0"> | |
1537 | ##<VariableName>ARM_COMPILE_XSCALE</VariableName> | |
1538 | ##<FriendlyName>Compile for XScale</FriendlyName> | |
1539 | ##<Description>Sets the command-line switch for the compiler to target XScale processors.</Description> | |
1540 | ##<Settings> | |
1541 | ##<Setting> | |
1542 | ##<SettingValue Default="Y"></SettingValue> | |
1543 | ##<FriendlyName>No</FriendlyName> | |
1544 | ##</Setting> | |
1545 | ##<Setting> | |
1546 | ##<SettingValue>1</SettingValue> | |
1547 | ##<FriendlyName>Yes</FriendlyName> | |
1548 | ##</Setting> | |
1549 | ##</Settings> | |
1550 | ##</Variable> | |
1551 | ! IF "$(ARM_COMPILE_XSCALE)"=="1" | |
1552 | ARM_ARCH_C_CMD_LINE= | |
1553 | ARM_XSCALE_C_CMD_LINE=-QRxscale | |
1554 | ARM_ARCH_ASSEMBLER_CMD_LINE= | |
1555 | ARM_XSCALE_ASSEMBLER_CMD_LINE=-cpu XSCALE | |
1556 | ! ENDIF | |
1557 | ||
1558 | !ENDIF | |
1559 | ||
1560 | !IF "$(OACR)"=="Yes" | |
1561 | ! IF "$(TGTCPUISANAME)"=="ARMV4T" | |
1562 | ! IFNDEF BUILDASARM | |
1563 | CCOMPILER=oacrcl -nologo -QRthumb | |
1564 | ! ENDIF | |
1565 | ! ELSE | |
1566 | CCOMPILER=oacrcl -nologo | |
1567 | ! ENDIF | |
1568 | !ENDIF | |
1569 | ||
1570 | # Warn user about potential license violation building private sources | |
1571 | !IF !DEFINED(SKIPBUILD) && !DEFINED(PASS0ONLY) && EXIST($(_SDKROOT)\bin\i386\SrcCheck.exe) | |
1572 | ! IF [$(_SDKROOT)\bin\i386\SrcCheck -nodlg] == 1 | |
1573 | CFLAGS=$(CFLAGS) -FI$(_COMMONOAKROOT)\inc\PrivateBuild.h | |
1574 | ! ENDIF | |
1575 | !ENDIF | |
1576 | ||
1577 | # tweak prefast for non-x86 builds | |
1578 | !IF "$(UNDER_PREFAST)"=="1" | |
1579 | ! IF "$(_TGTCPUFAMILY)"!="x86" | |
1580 | # need to add a few defines for the prefast intercepter | |
1581 | ! IF "$(_TGTCPUFAMILY)"=="ARM" | |
1582 | CDEFINES=$(CDEFINES) -D_M_ARM | |
1583 | ! ELSEIF "$(_TGTCPUFAMILY)"=="MIPS" | |
1584 | CDEFINES=$(CDEFINES) -D_M_MRX000 | |
1585 | ! ELSEIF "$(_TGTCPUFAMILY)"=="SH" | |
1586 | CDEFINES=$(CDEFINES) -D_M_SH=4 | |
1587 | ! ENDIF | |
1588 | ||
1589 | # use prefastpriv.h to add or remove defines | |
1590 | CDEFINES=$(CDEFINES) -FI$(PREFAST_ROOT)prefastpriv.h | |
1591 | CCOMPILER=$(PREFAST_ROOT)scripts\interceptcl\cl386.exe | |
1592 | ||
1593 | ! ENDIF | |
1594 | !ENDIF # end UNDER_PREFAST | |
1595 | ||
1596 | ||
1597 | LINKER=link /LARGEADDRESSAWARE | |
1598 | LIBRARIAN=link -lib | |
1599 | ||
1600 | !IF ("$(WINCELTCG)" != "" && "$(NOLTCG)" == "") | |
1601 | LINKER=$(LINKER) /LTCG | |
1602 | LIBRARIAN=$(LIBRARIAN) /LTCG | |
1603 | !ENDIF | |
1604 | ||
1605 | !IF "$(_TGTOS)" == "CE" | |
1606 | CVTRES=$(CVTRES) /WINDOWSCE | |
1607 | !ENDIF | |
1608 | ||
1609 | !IFDEF ALIGNMENT | |
1610 | LDEFINES=$(LDEFINES) -align:$(ALIGNMENT) | |
1611 | !ENDIF | |
1612 | ||
1613 | LDEFINES=$(LDEFINES) -ignore:4001,4070,4078,4086,4089,4096,4099,4108,4229 | |
1614 | !IFNDEF NORDATAMERGE | |
1615 | LDEFINES=-MERGE:.rdata=.text $(LDEFINES) | |
1616 | !ENDIF | |
1617 | !IF "$(_TGTOS)" == "CE" | |
1618 | ! IFNDEF LDEFSTACK | |
1619 | LDEFSTACK=/STACK:65536,4096 | |
1620 | ! ENDIF | |
1621 | !ENDIF | |
1622 | ||
1623 | !IFDEF LDEFSTACK | |
1624 | LDEFINES=$(LDEFINES) $(LDEFSTACK) | |
1625 | !ENDIF | |
1626 | ||
1627 | ||
1628 | ##<Variable PlatformBuilderSettingsPage="General" SettingsPageItemNumber="0"> | |
1629 | ##<VariableName>DEFFILE</VariableName> | |
1630 | ##<FriendlyName>.def File</FriendlyName> | |
1631 | ##<Description>Specifies a name for the module-definition (.def) file that overrides the default path, file name, and file name extension.</Description> | |
1632 | ##</Variable> | |
1633 | !IFNDEF DEFFILE | |
1634 | DEFFILE=$(TARGETNAME).def | |
1635 | !ENDIF | |
1636 | ||
1637 | ##<Variable PlatformBuilderSettingsPage="General" SettingsPageItemNumber="0"> | |
1638 | ##<VariableName>TARGETDEFNAME</VariableName> | |
1639 | ##<FriendlyName>Target .def Name</FriendlyName> | |
1640 | ##<Description>Specifies the file name used when a module-definition (.def) file is preprocessed and then placed in the release directory.</Description> | |
1641 | ##</Variable> | |
1642 | !IFNDEF TARGETDEFNAME | |
1643 | TARGETDEFNAME=$(TARGETNAME) | |
1644 | !ENDIF | |
1645 | ||
1646 | ||
1647 | ||
1648 | !IFDEF PREPROCESSDEFFILE | |
1649 | ! IF "$(_TGTOS)"=="CE" | |
1650 | DEFPREPROCINC=-FI$(_COMMONOAKROOT)\inc\deffile.inc | |
1651 | ! ELSE | |
1652 | DEFPREPROCINC= | |
1653 | ! ENDIF | |
1654 | !ENDIF | |
1655 | ||
1656 | !IF "$(WINCECOVER)" == "1" | |
1657 | ! IF "$(_TGTCPUFAMILY)"!="x86" | |
1658 | ! ERROR You cannot define WINCECOVER on non x86 builds | |
1659 | ! ENDIF | |
1660 | CFLAGS=$(CFLAGS) -Zi | |
1661 | AFLAGS=$(AFLAGS) -Zi | |
1662 | LDEFINES=$(LDEFINES) -debug:full -debugtype:cv,fixup -incremental:no | |
1663 | !ENDIF | |
1664 | ||
1665 | ||
1666 | # | |
1667 | # All the implicit rules | |
1668 | # | |
1669 | ||
1670 | !IFDEF MANAGED_TARGET | |
1671 | ||
1672 | !IF "$(MANAGED_DELAYSIGN)" == "1" | |
1673 | ! IF "$(LAB_SIGN_ENVIRONMENT)" == "1" | |
1674 | ! MESSAGE This file should be signed at http:\\codesign. Talk to your lab. | |
1675 | MANAGED_DELAYSIGN_COMMAND=@echo Not signing $(MANAGED_TARGET) | |
1676 | ! ELSE | |
1677 | MANAGED_DELAYSIGN_COMMAND=$(SN) -R $(MANAGED_TARGET) $(DEV_SN_KEYPAIR) | |
1678 | ! ENDIF | |
1679 | !ELSE | |
1680 | MANAGED_DELAYSIGN= | |
1681 | !ENDIF | |
1682 | ||
1683 | ||
1684 | ||
1685 | ||
1686 | ||
1687 | !IF "$(_TGTOS)" == "CE" | |
1688 | CSC_UNDER_OS_DEFINE_CMD_LINE=/define:UNDER_WINDOWS_CE | |
1689 | !ELSE IF ( "$(_TGTOS)" == "NT" ) || ( "$(_TGTOS)" == "NTANSI" ) | |
1690 | CSC_UNDER_OS_DEFINE_CMD_LINE=/define:UNDER_WINDOWS_NT | |
1691 | !ENDIF | |
1692 | ||
1693 | ||
1694 | ##<Variable PlatformBuilderSettingsPage="Managed" SettingsPageItemNumber="0"> | |
1695 | ##<VariableName>BUILD_GENERATE_DOC</VariableName> | |
1696 | ##<FriendlyName>Generate Documentation</FriendlyName> | |
1697 | ##<Description>Specifies whether comments embedded in source code files are extracted to an XML file created in the same directory.</Description> | |
1698 | ##<Settings> | |
1699 | ##<Setting> | |
1700 | ##<SettingValue Default="Y"></SettingValue> | |
1701 | ##<FriendlyName>No</FriendlyName> | |
1702 | ##</Setting> | |
1703 | ##<Setting> | |
1704 | ##<SettingValue>1</SettingValue> | |
1705 | ##<FriendlyName>Yes</FriendlyName> | |
1706 | ##</Setting> | |
1707 | ##</Settings> | |
1708 | ##</Variable> | |
1709 | ! IF "$(BUILD_GENERATE_DOC)"=="1" | |
1710 | DOC_CMD_LINE=/doc:$(MANAGED_TARGET_DIRECTORY)\$(TARGETNAME).xml | |
1711 | ! ENDIF | |
1712 | ||
1713 | ||
1714 | ##<Variable PlatformBuilderSettingsPage="Managed" SettingsPageItemNumber="0"> | |
1715 | ##<VariableName>UNSAFE_CODE</VariableName> | |
1716 | ##<FriendlyName>Compile Unsafe Code</FriendlyName> | |
1717 | ##<Description>Specifies whether to compile source code containing operations that use pointers.</Description> | |
1718 | ##<Settings> | |
1719 | ##<Setting> | |
1720 | ##<SettingValue Default="Y"></SettingValue> | |
1721 | ##<FriendlyName>No</FriendlyName> | |
1722 | ##</Setting> | |
1723 | ##<Setting> | |
1724 | ##<SettingValue>ALLOWED</SettingValue> | |
1725 | ##<FriendlyName>Yes</FriendlyName> | |
1726 | ##</Setting> | |
1727 | ##</Settings> | |
1728 | ##</Variable> | |
1729 | ! IF "$(UNSAFE_CODE)"=="" | |
1730 | # OK if not set. Default is not to allow unsafe code. | |
1731 | ! ELSEIF "$(UNSAFE_CODE)"=="ALLOWED" | |
1732 | UNSAFE_CMD_LINE=/unsafe+ | |
1733 | ! ELSE | |
1734 | ! ERROR Invalid UNSAFE_CODE setting: $(UNSAFE_CODE) | |
1735 | ! ENDIF | |
1736 | ||
1737 | ||
1738 | ##<Variable PlatformBuilderSettingsPage="Managed" SettingsPageItemNumber="0"> | |
1739 | ##<VariableName>MANAGED_REFERENCES</VariableName> | |
1740 | ##<FriendlyName>Managed References</FriendlyName> | |
1741 | ##<Description>Specifies additional references that contain managed code by listing reference file names, separated by semicolons. Do not include a trailing semicolon.</Description> | |
1742 | ##</Variable> | |
1743 | ! IFDEF MANAGED_REFERENCES | |
1744 | # Add semi-colon to the front; Get rid of double semi-colons; convert semi-colons to command line arg. | |
1745 | MANAGED_REFERENCES_CMD_LINE=;$(MANAGED_REFERENCES) | |
1746 | MANAGED_REFERENCES_CMD_LINE=$(MANAGED_REFERENCES_CMD_LINE:;;=;) | |
1747 | MANAGED_REFERENCES_CMD_LINE=$(MANAGED_REFERENCES_CMD_LINE:;= /r:) | |
1748 | ! ENDIF | |
1749 | ||
1750 | ||
1751 | ##<Variable PlatformBuilderSettingsPage="Managed" SettingsPageItemNumber="0"> | |
1752 | ##<VariableName>MANAGED_ADDMODULES</VariableName> | |
1753 | ##<FriendlyName>Managed Add Modules</FriendlyName> | |
1754 | ##<Description>Specifies additional modules that contain managed code by listing module names, separated by semicolons. Do not include a trailing semicolon.</Description> | |
1755 | ##</Variable> | |
1756 | ! IFDEF MANAGED_ADDMODULES | |
1757 | # Add semi-colon to the front; Get rid of double semi-colons; convert semi-colons to command line arg. | |
1758 | MANAGED_ADDMODULES_CMD_LINE=;$(MANAGED_ADDMODULES) | |
1759 | MANAGED_ADDMODULES_CMD_LINE=$(MANAGED_ADDMODULES_CMD_LINE:;;=;) | |
1760 | MANAGED_ADDMODULES_CMD_LINE=$(MANAGED_ADDMODULES_CMD_LINE:;= /addmodule:) | |
1761 | ! ENDIF | |
1762 | ||
1763 | ||
1764 | ##<Variable PlatformBuilderSettingsPage="Managed" SettingsPageItemNumber="0"> | |
1765 | ##<VariableName>MANAGED_LINKRESOURCES</VariableName> | |
1766 | ##<FriendlyName>Managed Link Resources</FriendlyName> | |
1767 | ##<Description>Specifies additional link resources that contain managed code by listing file names, separated by semicolons. Do not include a trailing semicolon.</Description> | |
1768 | ##</Variable> | |
1769 | ! IFDEF MANAGED_LINKRESOURCES | |
1770 | # Add semi-colon to the front; Get rid of double semi-colons; convert semi-colons to command line arg. | |
1771 | MANAGED_LINKRESOURCES_CMD_LINE=;$(MANAGED_LINKRESOURCES) | |
1772 | MANAGED_LINKRESOURCES_CMD_LINE=$(MANAGED_LINKRESOURCES_CMD_LINE:;;=;) | |
1773 | MANAGED_LINKRESOURCES_CMD_LINE=$(MANAGED_LINKRESOURCES_CMD_LINE:;= /linkresource:) | |
1774 | ! ENDIF | |
1775 | ||
1776 | ##<Variable PlatformBuilderSettingsPage="Managed" SettingsPageItemNumber="0"> | |
1777 | ##<VariableName>MANAGED_RESOURCES</VariableName> | |
1778 | ##<FriendlyName>Managed Resources</FriendlyName> | |
1779 | ##<Description>Specifies additional resources that contain managed code by listing resource file names, separated by semicolons. Do not include a trailing semicolon.</Description> | |
1780 | ##</Variable> | |
1781 | ! IFDEF MANAGED_RESOURCES | |
1782 | # Add semi-colon to the front; Get rid of double semi-colons; convert semi-colons to command line arg. | |
1783 | MANAGED_RESOURCES_CMD_LINE=;$(MANAGED_RESOURCES) | |
1784 | MANAGED_RESOURCES_CMD_LINE=$(MANAGED_RESOURCES_CMD_LINE:;;=;) | |
1785 | MANAGED_RESOURCES_CMD_LINE=$(MANAGED_RESOURCES_CMD_LINE:;= /resource:) | |
1786 | ! ENDIF | |
1787 | ||
1788 | ||
1789 | ||
1790 | ##<Variable PlatformBuilderSettingsPage="Managed" SettingsPageItemNumber="0"> | |
1791 | ##<VariableName>MANAGED_WIN32ICONS</VariableName> | |
1792 | ##<FriendlyName>Managed Win32 Icons</FriendlyName> | |
1793 | ##<Description>Specifies additional Win32 icon files by listing file names, separated by semicolons. Do not include a trailing semicolon.</Description> | |
1794 | ##</Variable> | |
1795 | ! IFDEF MANAGED_WIN32ICONS | |
1796 | # Add semi-colon to the front; Get rid of double semi-colons; convert semi-colons to command line arg. | |
1797 | MANAGED_WIN32ICONS_CMD_LINE=;$(MANAGED_WIN32ICONS) | |
1798 | MANAGED_WIN32ICONS_CMD_LINE=$(MANAGED_WIN32ICONS_CMD_LINE:;;=;) | |
1799 | MANAGED_WIN32ICONS_CMD_LINE=$(MANAGED_WIN32ICONS_CMD_LINE:;= /win32icon:) | |
1800 | ! ENDIF | |
1801 | ||
1802 | ||
1803 | ||
1804 | ##<Variable PlatformBuilderSettingsPage="Managed" SettingsPageItemNumber="0"> | |
1805 | ##<VariableName>MANAGED_WIN32RESOURCES</VariableName> | |
1806 | ##<FriendlyName>Managed Win32 Resources</FriendlyName> | |
1807 | ##<Description>Specifies additional Win32 resources by listing file names, separated by semicolons. Do not include a trailing semicolon.</Description> | |
1808 | ##</Variable> | |
1809 | ! IFDEF MANAGED_WIN32RESOURCES | |
1810 | # Add semi-colon to the front; Get rid of double semi-colons; convert semi-colons to command line arg. | |
1811 | MANAGED_WIN32RESOURCES_CMD_LINE=;$(MANAGED_WIN32RESOURCES) | |
1812 | MANAGED_WIN32RESOURCES_CMD_LINE=$(MANAGED_WIN32RESOURCES_CMD_LINE:;;=;) | |
1813 | MANAGED_WIN32RESOURCES_CMD_LINE=$(MANAGED_WIN32RESOURCES_CMD_LINE:;= /win32res:) | |
1814 | ! ENDIF | |
1815 | ||
1816 | ! IFDEF CSC_DEFINES | |
1817 | # Add semi-colon to the front; Get rid of double semi-colons; convert semi-colons to command line arg. | |
1818 | CSC_DEFINES_CMD_LINE=;$(CSC_DEFINES) | |
1819 | CSC_DEFINES_CMD_LINE=$(CSC_DEFINES_CMD_LINE:;;=;) | |
1820 | CSC_DEFINES_CMD_LINE=$(CSC_DEFINES_CMD_LINE:;= /define:) | |
1821 | ! ENDIF | |
1822 | ||
1823 | ||
1824 | !IF "$(USE_OS_ASSEMBLY_VERSION)"!="" | |
1825 | MANAGED_OS_VERSION_CMD_LINE=$(_WINCEROOT)\public\common\sdk\inc\OsAssemblyVersion.cs | |
1826 | !ENDIF | |
1827 | ||
1828 | ||
1829 | $(MANAGED_TARGET): $(SOURCES) | |
1830 | @echo BUILD_MARKER:CSC_COMPILE_START Csharp Compile $(MANAGED_TARGET) | |
1831 | @echo /nostdlib+ | |
1832 | @echo /noconfig | |
1833 | @echo CSC_DEBUG_CMD_LINE: $(CSC_DEBUG_CMD_LINE) | |
1834 | @echo CSC_DEBUG_DEFINE_CMD_LINE: $(CSC_DEBUG_DEFINE_CMD_LINE) | |
1835 | @echo CSC_UNDER_OS_DEFINE_CMD_LINE: $(CSC_UNDER_OS_DEFINE_CMD_LINE) | |
1836 | @echo CSC_OPTIMIZE_CMD_LINE: $(CSC_OPTIMIZE_CMD_LINE) | |
1837 | @echo UNSAFE_CMD_LINE: $(UNSAFE_CMD_LINE) | |
1838 | @echo DOC_CMD_LINE: $(DOC_CMD_LINE) | |
1839 | @echo MANAGED_TARGET_TYPE_CMD_LINE: $(MANAGED_TARGET_TYPE_CMD_LINE) | |
1840 | @echo CSC_DEFINES_CMD_LINE: $(CSC_DEFINES_CMD_LINE) | |
1841 | @echo MANAGED_REFERENCES_CMD_LINE: $(MANAGED_REFERENCES_CMD_LINE) | |
1842 | @echo MANAGED_ADDMODULES_CMD_LINE: $(MANAGED_ADDMODULES_CMD_LINE) | |
1843 | @echo MANAGED_LINKRESOURCES_CMD_LINE: $(MANAGED_LINKRESOURCES_CMD_LINE) | |
1844 | @echo MANAGED_RESOURCES_CMD_LINE: $(MANAGED_RESOURCES_CMD_LINE) | |
1845 | @echo MANAGED_WIN32ICONS_CMD_LINE: $(MANAGED_WIN32ICONS_CMD_LINE) | |
1846 | @echo MANAGED_WIN32RESOURCES_CMD_LINE: $(MANAGED_WIN32RESOURCES_CMD_LINE) | |
1847 | @echo MANAGED_RESX_RESOURCES_CMD_LINE: $(MANAGED_RESX_RESOURCES_CMD_LINE) | |
1848 | @echo MANAGED_RESX_LINKRESOURCES_CMD_LINE: $(MANAGED_RESX_LINKRESOURCES_CMD_LINE) | |
1849 | @echo MANAGED_OS_VERSION_CMD_LINE: $(MANAGED_OS_VERSION_CMD_LINE) | |
1850 | @echo /out:$(MANAGED_TARGET) $(SOURCES) | |
1851 | $(CSC) /noconfig @<< | |
1852 | /nostdlib+ | |
1853 | $(CSC_DEBUG_CMD_LINE) | |
1854 | $(CSC_DEBUG_DEFINE_CMD_LINE) | |
1855 | $(CSC_UNDER_OS_DEFINE_CMD_LINE) | |
1856 | $(CSC_OPTIMIZE_CMD_LINE) | |
1857 | $(UNSAFE_CMD_LINE) | |
1858 | $(DOC_CMD_LINE) | |
1859 | $(MANAGED_TARGET_TYPE_CMD_LINE) | |
1860 | $(CSC_DEFINES_CMD_LINE) | |
1861 | $(MANAGED_REFERENCES_CMD_LINE) | |
1862 | $(MANAGED_ADDMODULES_CMD_LINE) | |
1863 | $(MANAGED_LINKRESOURCES_CMD_LINE) | |
1864 | $(MANAGED_RESOURCES_CMD_LINE) | |
1865 | $(MANAGED_WIN32ICONS_CMD_LINE) | |
1866 | $(MANAGED_WIN32RESOURCES_CMD_LINE) | |
1867 | $(MANAGED_RESX_RESOURCES_CMD_LINE) | |
1868 | $(MANAGED_RESX_LINKRESOURCES_CMD_LINE) | |
1869 | /out:$(MANAGED_TARGET) $(SOURCES) $(MANAGED_OS_VERSION_CMD_LINE) | |
1870 | <<NOKEEP | |
1871 | ! IF "TARGETTYPE" != "MANAGED_MODULE" | |
1872 | ! IF "$(_TGTOS)" == "CE" | |
1873 | # Sign the assembly with a strong name if required. | |
1874 | $(MANAGED_DELAYSIGN_COMMAND) | |
1875 | ! ENDIF | |
1876 | ! ENDIF | |
1877 | ! IF "TARGETTYPE" != "MANAGED_MODULE" | |
1878 | ! IF "$(BUILD_SIGN)" == "1" | |
1879 | signbin $(MANAGED_TARGET) | |
1880 | ! ENDIF | |
1881 | ! ENDIF | |
1882 | ! IF "$(WINCEREL)" == "1" | |
1883 | -$(__COPYCMD) $(MANAGED_TARGET) $(_FLATRELEASEDIR) | |
1884 | -$(__COPYCMD) $(MANAGED_TARGET_PDB) $(_FLATRELEASEDIR) | |
1885 | ! ENDIF | |
1886 | @echo BUILD_MARKER:CSC_COMPILE_END | |
1887 | ||
1888 | !ENDIF | |
1889 | ||
1890 | ||
1891 | .SUFFIXES: .resx | |
1892 | ||
1893 | {}.resx{$(RESX_RESOURCE_TARGET_PATH)\}.resources: | |
1894 | @echo BUILD_MARKER:RESGEN_START Resgen $< $@ $(RESX_RESOURCE_TARGET_PATH)\$(TARGETNAME).$(@B).resources | |
1895 | $(RESGEN) $< $@ | |
1896 | copy $@ $(RESX_RESOURCE_TARGET_PATH)\$(TARGETNAME).$(@B).resources | |
1897 | @echo BUILD_MARKER:RESGEN_END | |
1898 | ||
1899 | {..\}.resx{$(RESX_RESOURCE_TARGET_PATH)\}.resources: | |
1900 | @echo BUILD_MARKER:RESGEN_START Resgen $< $@ $(RESX_RESOURCE_TARGET_PATH)\$(TARGETNAME).$(@B).resources | |
1901 | $(RESGEN) $< $@ | |
1902 | copy $@ $(RESX_RESOURCE_TARGET_PATH)\$(TARGETNAME).$(@B).resources | |
1903 | @echo BUILD_MARKER:RESGEN_END | |
1904 | ||
1905 | Resx_Targets: $(MANAGED_RESX_RESOURCES_NMAKE_TARGETS) $(MANAGED_RESX_LINKRESOURCES_NMAKE_TARGETS) | |
1906 | ||
1907 | ||
1908 | # Build up the c/c++ command line | |
1909 | C_COMMAND_LINE_OPTIONS=$(CFLAGS) | |
1910 | C_COMMAND_LINE_OPTIONS=$(C_COMMAND_LINE_OPTIONS) $(WARNLEVEL_CMD_LINE) | |
1911 | C_COMMAND_LINE_OPTIONS=$(C_COMMAND_LINE_OPTIONS) $(EXCEPTION_CPP_CMD_LINE) $(EXCEPTION_EXTERN_C_CMD_LINE) | |
1912 | C_COMMAND_LINE_OPTIONS=$(C_COMMAND_LINE_OPTIONS) $(ARM_ARCH_C_CMD_LINE) | |
1913 | C_COMMAND_LINE_OPTIONS=$(C_COMMAND_LINE_OPTIONS) $(THUMB_C_CMD_LINE) | |
1914 | C_COMMAND_LINE_OPTIONS=$(C_COMMAND_LINE_OPTIONS) $(INTERWORK_C_CMD_LINE) | |
1915 | C_COMMAND_LINE_OPTIONS=$(C_COMMAND_LINE_OPTIONS) $(ARM_XSCALE_C_CMD_LINE) | |
1916 | ||
1917 | ECHO_CXX_MSG=$(CXXCOMPILER) $(CONLY_FLAGS) -Fo$@ $(C_COMMAND_LINE_OPTIONS) $(MAKEDIR)\$< | |
1918 | ECHO_C_MSG=$(CCOMPILER) $(CONLY_FLAGS) -Fo$@ $(C_COMMAND_LINE_OPTIONS) $(MAKEDIR)\$< | |
1919 | ||
1920 | ||
1921 | # make sure the compiler knows about the precompiled header | |
1922 | CCOMPILER=$(CCOMPILER) $(PRECOMPILED_C_ONLY_CMD_LINE) | |
1923 | CXXCOMPILER=$(CXXCOMPILER) $(PRECOMPILED_CPP_ONLY_CMD_LINE) | |
1924 | ||
1925 | ECHO_PRECOMPILED_MSG=$(CCOMPILER) $(PRECOMPILED_GENERATE_CMD_LINE) $(CONLY_FLAGS) $(CFLAGS) $(C_COMMAND_LINE_OPTIONS) /Yl$(TARGETNAME) /Yc$(?F) $(HEADERFILE) $(HEADEROBJ) | |
1926 | ||
1927 | !IF "$(PRECOMPILED_INCLUDE)" != "" | |
1928 | $(PRECOMPILED_TARGET) $(PRECOMPILED_HEADEROBJNAME): $(PRECOMPILED_INCLUDE) | |
1929 | @echo BUILD_MARKER:PRECOMPILE_HEADER_START Create precompiled header $(PRECOMPILED_INCLUDE) $(PRECOMPILED_HEADEROBJNAME) $(PRECOMPILED_TARGET) | |
1930 | @type << | |
1931 | $(ECHO_PRECOMPILED_MSG) | |
1932 | <<NOKEEP | |
1933 | @$(CCOMPILER) @<<$(CONLY_FLAGS) $(PRECOMPILED_GENERATE_CMD_LINE) << | |
1934 | $(CFLAGS: = | |
1935 | ) $(C_COMMAND_LINE_OPTIONS) /Yl$(TARGETNAME) /Yc$(?F) $(HEADERFILE) $(HEADEROBJ) | |
1936 | <<NOKEEP | |
1937 | #include "$(?F)" | |
1938 | <<NOKEEP | |
1939 | @echo BUILD_MARKER:PRECOMPILE_HEADER_END | |
1940 | !ENDIF | |
1941 | ||
1942 | ||
1943 | ||
1944 | ||
1945 | ||
1946 | {}.cxx{$(_OBJDIR)\}.obj: | |
1947 | @echo BUILD_MARKER:CPP_COMPILE_START Compiling $< | |
1948 | @type << | |
1949 | $(ECHO_CXX_MSG) | |
1950 | <<NOKEEP | |
1951 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
1952 | $(C_COMMAND_LINE_OPTIONS: = | |
1953 | ) $(MAKEDIR)\$< | |
1954 | <<NOKEEP | |
1955 | @echo BUILD_MARKER:CPP_COMPILE_END | |
1956 | ||
1957 | ||
1958 | {$(_SRCDIR)\}.cxx{$(_OBJDIR)\}.obj: | |
1959 | @echo BUILD_MARKER:CPP_COMPILE_START Compiling $< | |
1960 | @type << | |
1961 | $(ECHO_CXX_MSG) | |
1962 | <<NOKEEP | |
1963 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
1964 | $(C_COMMAND_LINE_OPTIONS: = | |
1965 | ) $(MAKEDIR)\$< | |
1966 | <<NOKEEP | |
1967 | @echo BUILD_MARKER:CPP_COMPILE_END | |
1968 | ||
1969 | ||
1970 | {..\}.cxx{$(_OBJDIR)\}.obj: | |
1971 | @echo BUILD_MARKER:CPP_COMPILE_START Compiling $< | |
1972 | @type << | |
1973 | $(ECHO_CXX_MSG) | |
1974 | <<NOKEEP | |
1975 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
1976 | $(C_COMMAND_LINE_OPTIONS: = | |
1977 | ) $(MAKEDIR)\$< | |
1978 | <<NOKEEP | |
1979 | @echo BUILD_MARKER:CPP_COMPILE_END | |
1980 | ||
1981 | ||
1982 | {..\$(_SRCDIR)\}.cxx{$(_OBJDIR)\}.obj: | |
1983 | @echo BUILD_MARKER:CPP_COMPILE_START Compiling $< | |
1984 | @type << | |
1985 | $(ECHO_CXX_MSG) | |
1986 | <<NOKEEP | |
1987 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
1988 | $(C_COMMAND_LINE_OPTIONS: = | |
1989 | ) $(MAKEDIR)\$< | |
1990 | <<NOKEEP | |
1991 | @echo BUILD_MARKER:CPP_COMPILE_END | |
1992 | ||
1993 | ||
1994 | {}.cpp{$(_OBJDIR)\}.obj: | |
1995 | @echo BUILD_MARKER:CPP_COMPILE_START Compiling $< | |
1996 | @type << | |
1997 | $(ECHO_CXX_MSG) | |
1998 | <<NOKEEP | |
1999 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
2000 | $(C_COMMAND_LINE_OPTIONS: = | |
2001 | ) $(MAKEDIR)\$< | |
2002 | <<NOKEEP | |
2003 | @echo BUILD_MARKER:CPP_COMPILE_END | |
2004 | ||
2005 | ||
2006 | {$(_SRCDIR)\}.cpp{$(_OBJDIR)\}.obj: | |
2007 | @echo BUILD_MARKER:CPP_COMPILE_START Compiling $< | |
2008 | @type << | |
2009 | $(ECHO_CXX_MSG) | |
2010 | <<NOKEEP | |
2011 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
2012 | $(C_COMMAND_LINE_OPTIONS: = | |
2013 | ) $(MAKEDIR)\$< | |
2014 | <<NOKEEP | |
2015 | @echo BUILD_MARKER:CPP_COMPILE_END | |
2016 | ||
2017 | ||
2018 | {..\}.cpp{$(_OBJDIR)\}.obj: | |
2019 | @echo BUILD_MARKER:CPP_COMPILE_START Compiling $< | |
2020 | @type << | |
2021 | $(ECHO_CXX_MSG) | |
2022 | <<NOKEEP | |
2023 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
2024 | $(C_COMMAND_LINE_OPTIONS: = | |
2025 | ) $(MAKEDIR)\$< | |
2026 | <<NOKEEP | |
2027 | @echo BUILD_MARKER:CPP_COMPILE_END | |
2028 | ||
2029 | ||
2030 | {..\$(_SRCDIR)\}.cpp{$(_OBJDIR)\}.obj: | |
2031 | @echo BUILD_MARKER:CPP_COMPILE_START Compiling $< | |
2032 | @type << | |
2033 | $(ECHO_CXX_MSG) | |
2034 | <<NOKEEP | |
2035 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
2036 | $(C_COMMAND_LINE_OPTIONS: = | |
2037 | ) $(MAKEDIR)\$< | |
2038 | <<NOKEEP | |
2039 | @echo BUILD_MARKER:CPP_COMPILE_END | |
2040 | ||
2041 | ||
2042 | {}.c{$(_OBJDIR)\}.obj: | |
2043 | @echo BUILD_MARKER:C_COMPILE_START Compiling $< | |
2044 | @type << | |
2045 | $(ECHO_C_MSG) | |
2046 | <<NOKEEP | |
2047 | @$(CCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
2048 | $(C_COMMAND_LINE_OPTIONS: = | |
2049 | ) $(MAKEDIR)\$< | |
2050 | <<NOKEEP | |
2051 | @echo BUILD_MARKER:C_COMPILE_END | |
2052 | ||
2053 | ||
2054 | {$(_SRCDIR)\}.c{$(_OBJDIR)\}.obj: | |
2055 | @echo BUILD_MARKER:C_COMPILE_START Compiling $< | |
2056 | @type << | |
2057 | $(ECHO_C_MSG) | |
2058 | <<NOKEEP | |
2059 | @$(CCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
2060 | $(C_COMMAND_LINE_OPTIONS: = | |
2061 | ) $(MAKEDIR)\$< | |
2062 | <<NOKEEP | |
2063 | @echo BUILD_MARKER:C_COMPILE_END | |
2064 | ||
2065 | ||
2066 | {..\}.c{$(_OBJDIR)\}.obj: | |
2067 | @echo BUILD_MARKER:C_COMPILE_START Compiling $< | |
2068 | @type << | |
2069 | $(ECHO_C_MSG) | |
2070 | <<NOKEEP | |
2071 | @$(CCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ $(MAKEDIR)\$< | |
2072 | $(C_COMMAND_LINE_OPTIONS: = | |
2073 | ) | |
2074 | <<NOKEEP | |
2075 | @echo BUILD_MARKER:C_COMPILE_END | |
2076 | ||
2077 | ||
2078 | {..\$(_SRCDIR)\}.c{$(_OBJDIR)\}.obj: | |
2079 | @echo BUILD_MARKER:C_COMPILE_START Compiling $< | |
2080 | @type << | |
2081 | $(ECHO_C_MSG) | |
2082 | <<NOKEEP | |
2083 | @$(CCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ $(MAKEDIR)\$< | |
2084 | $(C_COMMAND_LINE_OPTIONS: = | |
2085 | ) | |
2086 | <<NOKEEP | |
2087 | @echo BUILD_MARKER:C_COMPILE_END | |
2088 | ||
2089 | ||
2090 | .cxx.i: | |
2091 | @type << | |
2092 | $(ECHO_CXX_MSG) | |
2093 | <<NOKEEP | |
2094 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -P -Fo$@ | |
2095 | $(C_COMMAND_LINE_OPTIONS: = | |
2096 | ) $(MAKEDIR)\$< | |
2097 | <<NOKEEP | |
2098 | ||
2099 | .cpp.i: | |
2100 | @type << | |
2101 | $(ECHO_CXX_MSG) | |
2102 | <<NOKEEP | |
2103 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -P -Fo$@ | |
2104 | $(C_COMMAND_LINE_OPTIONS: = | |
2105 | ) $(MAKEDIR)\$< | |
2106 | <<NOKEEP | |
2107 | ||
2108 | .c.i: | |
2109 | @type << | |
2110 | $(ECHO_C_MSG) | |
2111 | <<NOKEEP | |
2112 | @$(CCOMPILER) @<< $(CONLY_FLAGS) -P -Fo$@ | |
2113 | $(C_COMMAND_LINE_OPTIONS: = | |
2114 | ) $(MAKEDIR)\$< | |
2115 | <<NOKEEP | |
2116 | ||
2117 | ||
2118 | {}.odl.tlb: | |
2119 | @echo BUILD_MARKER:MIDL_COMPILE_START Midl Compiling $< | |
2120 | $(MIDLCOMPILER) \ | |
2121 | -Zp8 \ | |
2122 | $(CINCLUDES) \ | |
2123 | /tlb $@ \ | |
2124 | /h $(PASS0_HEADERDIR)\$(<:.odl=.h) \ | |
2125 | $(MKTYPLIBFLAGS) \ | |
2126 | -cpp_cmd $(HOSTCOMPILER) \ | |
2127 | $(CDEFINES) \ | |
2128 | $(MIDL_MKTYPLIB_FLAGS) \ | |
2129 | $(MAKEDIR)\$< | |
2130 | @echo BUILD_MARKER:MIDL_COMPILE_END | |
2131 | ||
2132 | {$(_TGTCPUFAMILY)\}.odl.tlb: | |
2133 | @echo BUILD_MARKER:MIDL_COMPILE_START Midl Compiling $< | |
2134 | $(MIDLCOMPILER) \ | |
2135 | -Zp8 \ | |
2136 | $(CINCLUDES) \ | |
2137 | /tlb $@ \ | |
2138 | /h $(PASS0_HEADERDIR)\$(<:.odl=.h) \ | |
2139 | $(MKTYPLIBFLAGS) \ | |
2140 | -cpp_cmd $(HOSTCOMPILER) \ | |
2141 | $(CDEFINES) \ | |
2142 | $(MIDL_MKTYPLIB_FLAGS) \ | |
2143 | $(MAKEDIR)\$< | |
2144 | @echo BUILD_MARKER:MIDL_COMPILE_END | |
2145 | ||
2146 | {..\}.odl.tlb: | |
2147 | @echo BUILD_MARKER:MIDL_COMPILE_START Midl Compiling $< | |
2148 | $(MIDLCOMPILER) \ | |
2149 | -Zp8 \ | |
2150 | $(CINCLUDES) \ | |
2151 | /tlb $@ \ | |
2152 | /h $(PASS0_HEADERDIR)\$(<:.odl=.h) \ | |
2153 | $(MKTYPLIBFLAGS) \ | |
2154 | -cpp_cmd $(HOSTCOMPILER) \ | |
2155 | $(CDEFINES) \ | |
2156 | $(MIDL_MKTYPLIB_FLAGS) \ | |
2157 | $(MAKEDIR)\$< | |
2158 | @echo BUILD_MARKER:MIDL_COMPILE_END | |
2159 | ||
2160 | {..\$(_TGTCPUFAMILY)\}.odl.tlb: | |
2161 | @echo BUILD_MARKER:MIDL_COMPILE_START Midl Compiling $< | |
2162 | $(MIDLCOMPILER) \ | |
2163 | -Zp8 \ | |
2164 | $(CINCLUDES) \ | |
2165 | /tlb $@ \ | |
2166 | /h $(PASS0_HEADERDIR)\$(<:.odl=.h) \ | |
2167 | $(MKTYPLIBFLAGS) \ | |
2168 | -cpp_cmd $(HOSTCOMPILER) \ | |
2169 | $(CDEFINES) \ | |
2170 | $(MIDL_MKTYPLIB_FLAGS) \ | |
2171 | $(MAKEDIR)\$< | |
2172 | @echo BUILD_MARKER:MIDL_COMPILE_END | |
2173 | ||
2174 | !IFNDEF NO_PASS0_RULES | |
2175 | ||
2176 | {}.idl{$(PASS0_HEADERDIR)}.h: | |
2177 | @echo BUILD_MARKER:MIDL_COMPILE_START Midl Compiling $< | |
2178 | $(MIDLCOMPILER) \ | |
2179 | -Zp8 \ | |
2180 | $(CINCLUDES) \ | |
2181 | -char unsigned \ | |
2182 | -ms_ext -c_ext \ | |
2183 | -proxy $(PASS0_SOURCEDIR)\$(<:.idl=_p.c) \ | |
2184 | -dlldata $(PASS0_SOURCEDIR)\dlldata.c \ | |
2185 | -iid $(MIDL_UUIDDIR)\$(<:.idl=_i.c) \ | |
2186 | -header $@ \ | |
2187 | -cpp_cmd $(HOSTCOMPILER) \ | |
2188 | $(CDEFINES) \ | |
2189 | $(MIDL_FLAGS) \ | |
2190 | $(MIDL_OPTIMIZATION) \ | |
2191 | $< | |
2192 | @echo BUILD_MARKER:MIDL_COMPILE_END | |
2193 | ||
2194 | {..\}.idl{$(PASS0_HEADERDIR)}.h: | |
2195 | @echo BUILD_MARKER:MIDL_COMPILE_START Midl Compiling $< | |
2196 | $(MIDLCOMPILER) \ | |
2197 | -Zp8 \ | |
2198 | $(CINCLUDES) \ | |
2199 | -char unsigned \ | |
2200 | -ms_ext -c_ext \ | |
2201 | -proxy $(PASS0_SOURCEDIR)\$(<F:.idl=_p.c) \ | |
2202 | -dlldata $(PASS0_SOURCEDIR)\dlldata.c \ | |
2203 | -iid $(MIDL_UUIDDIR)\$(<F:.idl=_i.c) \ | |
2204 | -header $@ \ | |
2205 | -cpp_cmd $(HOSTCOMPILER) \ | |
2206 | $(CDEFINES) \ | |
2207 | $(MIDL_FLAGS) \ | |
2208 | $(MIDL_OPTIMIZATION) \ | |
2209 | $< | |
2210 | @echo BUILD_MARKER:MIDL_COMPILE_END | |
2211 | ||
2212 | ! IFDEF PASS0_SOURCEDIR | |
2213 | MC_SOURCEDIR=$(PASS0_SOURCEDIR) | |
2214 | ! ELSE | |
2215 | MC_SOURCEDIR=$(PASS0_CLIENTDIR) | |
2216 | ! ENDIF | |
2217 | ||
2218 | {..\}.mc{$(PASS0_HEADERDIR)}.h: | |
2219 | @echo BUILD_MARKER:MESSAGE_COMPILE_START Message Compiling $< | |
2220 | $(MESSAGE_COMPILER) -h $(PASS0_HEADERDIR) -r $(MC_SOURCEDIR) $(MC_FLAGS) $< | |
2221 | @echo BUILD_MARKER:MESSAGE_COMPILE_END | |
2222 | ||
2223 | .mc{$(PASS0_HEADERDIR)}.h: | |
2224 | @echo BUILD_MARKER:MESSAGE_COMPILE_START Message Compiling $< | |
2225 | $(MESSAGE_COMPILER) -h $(PASS0_HEADERDIR) -r $(MC_SOURCEDIR) $(MC_FLAGS) $< | |
2226 | @echo BUILD_MARKER:MESSAGE_COMPILE_END | |
2227 | ||
2228 | ||
2229 | !ENDIF | |
2230 | ||
2231 | ||
2232 | ASSEMBLER_CMD_LINE=$(AFLAGS) | |
2233 | ASSEMBLER_CMD_LINE=$(ASSEMBLER_CMD_LINE) $(ARM_ARCH_ASSEMBLER_CMD_LINE) | |
2234 | ASSEMBLER_CMD_LINE=$(ASSEMBLER_CMD_LINE) $(THUMB_ASSEMBLER_CMD_LINE) | |
2235 | ASSEMBLER_CMD_LINE=$(ASSEMBLER_CMD_LINE) $(INTERWORK_ASSEMBLER_CMD_LINE) | |
2236 | ASSEMBLER_CMD_LINE=$(ASSEMBLER_CMD_LINE) $(ARM_XSCALE_ASSEMBLER_CMD_LINE) | |
2237 | ||
2238 | ||
2239 | !IF "$(_TGTCPUFAMILY)"=="MIPS" | |
2240 | {}.s{$(_OBJDIR)\}.obj: | |
2241 | @echo BUILD_MARKER:ASSEMBLER_MIPS_START Assembling $< | |
2242 | $(ASSEMBLER) $(MAKEDIR)\$< -Fo$@ $(ASSEMBLER_CMD_LINE) | |
2243 | @echo BUILD_MARKER:ASSEMBLER_MIPS_END | |
2244 | ||
2245 | {$(_SRCDIR)\}.s{$(_OBJDIR)\}.obj: | |
2246 | @echo BUILD_MARKER:ASSEMBLER_MIPS_START Assembling $< | |
2247 | $(ASSEMBLER) -Fo$@ $(ASSEMBLER_CMD_LINE) $(MAKEDIR)\$< | |
2248 | @echo BUILD_MARKER:ASSEMBLER_MIPS_END | |
2249 | ||
2250 | {..\}.s{$(_OBJDIR)\}.obj: | |
2251 | @echo BUILD_MARKER:ASSEMBLER_MIPS_START Assembling $< | |
2252 | $(ASSEMBLER) $(MAKEDIR)\$< -Fo$@ $(ASSEMBLER_CMD_LINE) | |
2253 | @echo BUILD_MARKER:ASSEMBLER_MIPS_END | |
2254 | ||
2255 | {..\$(_SRCDIR)\}.s{$(_OBJDIR)\}.obj: | |
2256 | @echo BUILD_MARKER:ASSEMBLER_MIPS_START Assembling $< | |
2257 | $(ASSEMBLER) -Fo$@ $(ASSEMBLER_CMD_LINE) $(MAKEDIR)\$< | |
2258 | @echo BUILD_MARKER:ASSEMBLER_MIPS_END | |
2259 | ||
2260 | !ELSEIF "$(_TGTCPUFAMILY)"=="x86" | |
2261 | {}.asm{$(_OBJDIR)\}.obj: | |
2262 | @echo BUILD_MARKER:ASSEMBLER_X86_START Assembling $< | |
2263 | $(ASSEMBLER) -Fo$@ $(ASSEMBLER_CMD_LINE) $(MAKEDIR)\$< | |
2264 | @echo BUILD_MARKER:ASSEMBLER_X86_END | |
2265 | ||
2266 | {$(_SRCDIR)\}.asm{$(_OBJDIR)\}.obj: | |
2267 | @echo BUILD_MARKER:ASSEMBLER_X86_START Assembling $< | |
2268 | $(ASSEMBLER) -Fo$@ $(ASSEMBLER_CMD_LINE) $(MAKEDIR)\$< | |
2269 | @echo BUILD_MARKER:ASSEMBLER_X86_END | |
2270 | ||
2271 | {..\}.asm{$(_OBJDIR)\}.obj: | |
2272 | @echo BUILD_MARKER:ASSEMBLER_X86_START Assembling $< | |
2273 | $(ASSEMBLER) -Fo$@ $(ASSEMBLER_CMD_LINE) $(MAKEDIR)\$< | |
2274 | @echo BUILD_MARKER:ASSEMBLER_X86_END | |
2275 | ||
2276 | {..\$(_SRCDIR)\}.asm{$(_OBJDIR)\}.obj: | |
2277 | @echo BUILD_MARKER:ASSEMBLER_X86_START Assembling $< | |
2278 | $(ASSEMBLER) -Fo$@ $(ASSEMBLER_CMD_LINE) $(MAKEDIR)\$< | |
2279 | @echo BUILD_MARKER:ASSEMBLER_X86_END | |
2280 | ||
2281 | !ELSEIF "$(_TGTCPUFAMILY)"=="SH" | |
2282 | {}.src{$(_OBJDIR)\}.obj: | |
2283 | @echo BUILD_MARKER:ASSEMBLER_SH_START Assembling $< | |
2284 | @set INCLUDE=$(INCLUDEPATH);shx;sh | |
2285 | $(ASSEMBLER) -Fo$@ $(ASSEMBLER_CMD_LINE) $(MAKEDIR)\$< | |
2286 | @echo BUILD_MARKER:ASSEMBLER_SH_END | |
2287 | ||
2288 | {$(_SRCDIR)\}.src{$(_OBJDIR)\}.obj: | |
2289 | @echo BUILD_MARKER:ASSEMBLER_SH_START Assembling $< | |
2290 | @set INCLUDE=$(INCLUDEPATH);shx;sh | |
2291 | $(ASSEMBLER) -Fo$@ $(ASSEMBLER_CMD_LINE) $(MAKEDIR)\$< | |
2292 | @echo BUILD_MARKER:ASSEMBLER_SH_END | |
2293 | ||
2294 | {..\}.src{$(_OBJDIR)\}.obj: | |
2295 | @echo BUILD_MARKER:ASSEMBLER_SH_START Assembling $< | |
2296 | @set INCLUDE=$(INCLUDEPATH);shx;sh | |
2297 | $(ASSEMBLER) -Fo$@ $(ASSEMBLER_CMD_LINE) $(MAKEDIR)\$< | |
2298 | @echo BUILD_MARKER:ASSEMBLER_SH_END | |
2299 | ||
2300 | {..\$(_SRCDIR)\}.src{$(_OBJDIR)\}.obj: | |
2301 | @echo BUILD_MARKER:ASSEMBLER_SH_START Assembling $< | |
2302 | @set INCLUDE=$(INCLUDEPATH);shx;sh | |
2303 | $(ASSEMBLER) -Fo$@ $(ASSEMBLER_CMD_LINE) $(MAKEDIR)\$< | |
2304 | @echo BUILD_MARKER:ASSEMBLER_SH_END | |
2305 | ||
2306 | !ELSEIF ("$(_TGTCPUFAMILY)"=="ARM") || ("$(_TGTCPUFAMILY)"=="THUMB") | |
2307 | {}.s{$(_OBJDIR)\}.obj: | |
2308 | @echo BUILD_MARKER:ASSEMBLER_ARM_START Assembling $< | |
2309 | $(ASSEMBLER) $(ASSEMBLER_CMD_LINE) $(MAKEDIR)\$< $@ | |
2310 | @echo BUILD_MARKER:ASSEMBLER_ARM_END | |
2311 | ||
2312 | {$(_SRCDIR)\}.s{$(_OBJDIR)\}.obj: | |
2313 | @echo BUILD_MARKER:ASSEMBLER_ARM_START Assembling $< | |
2314 | $(ASSEMBLER) $(ASSEMBLER_CMD_LINE) $(MAKEDIR)\$< $@ | |
2315 | @echo BUILD_MARKER:ASSEMBLER_ARM_END | |
2316 | ||
2317 | {..\}.s{$(_OBJDIR)\}.obj: | |
2318 | @echo BUILD_MARKER:ASSEMBLER_ARM_START Assembling $< | |
2319 | $(ASSEMBLER) $(ASSEMBLER_CMD_LINE) $(MAKEDIR)\$< $@ | |
2320 | @echo BUILD_MARKER:ASSEMBLER_ARM_END | |
2321 | ||
2322 | {..\$(_SRCDIR)\}.s{$(_OBJDIR)\}.obj: | |
2323 | @echo BUILD_MARKER:ASSEMBLER_ARM_START Assembling $< | |
2324 | $(ASSEMBLER) $(ASSEMBLER_CMD_LINE) $(MAKEDIR)\$< $@ | |
2325 | @echo BUILD_MARKER:ASSEMBLER_ARM_END | |
2326 | ||
2327 | !ENDIF | |
2328 | ||
2329 | !IF ("$(IRC_DEPENDENT)" != "0" && "$(IRC_DEPENDENT)" != "") || ("$(SPECIAL_IRC_DEPENDENT)" != "0" && "$(SPECIAL_IRC_DEPENDENT)" != "") | |
2330 | # | |
2331 | # Added for internationalization | |
2332 | # | |
2333 | {}.rc{$(_OBJDIR)\}.ire: | |
2334 | echo > $(_OBJDIR)\$(@R).ire | |
2335 | ||
2336 | {..\}.rc{$(_OBJDIR)\}.ire: | |
2337 | echo > $(_OBJDIR)\$(@R).ire | |
2338 | ||
2339 | {$(_OBJDIR)\}.ire{$(_OBJDIR)\}.res: | |
2340 | @echo BUILD_MARKER:RESOURCE_COMPILE_START Resource Compiling $< | |
2341 | $(RCOMPILER) $(RCFLAGS) -fo$(@R).tmp $(<B).rc | |
2342 | $(CVTRES) $(@R).tmp -readonly -out:$@ | |
2343 | @-erase $(@R).tmp | |
2344 | @echo BUILD_MARKER:RESOURCE_COMPILE_END | |
2345 | ||
2346 | .res.rbj: | |
2347 | $(CVTRES) $< -readonly -out:$@ | |
2348 | ||
2349 | !ELSE | |
2350 | ||
2351 | .res.rbj: | |
2352 | $(CVTRES) $< -readonly -out:$@ | |
2353 | ||
2354 | {}.rc{$(_OBJDIR)\}.res: | |
2355 | @echo BUILD_MARKER:RESOURCE_COMPILE_START Resource Compiling $< | |
2356 | $(RCOMPILER) $(RCFLAGS) -fo$@ $(MAKEDIR)\$< | |
2357 | @echo BUILD_MARKER:RESOURCE_COMPILE_END | |
2358 | ||
2359 | {..\}.rc{$(_OBJDIR)\}.res: | |
2360 | @echo BUILD_MARKER:RESOURCE_COMPILE_START Resource Compiling $< | |
2361 | $(RCOMPILER) $(RCFLAGS) -fo$@ $(MAKEDIR)\$< | |
2362 | @echo BUILD_MARKER:RESOURCE_COMPILE_END | |
2363 | ||
2364 | !ENDIF | |
2365 | ||
2366 | ||
2367 | !IFNDEF MANAGED_TARGET | |
2368 | # | |
2369 | # And explicit rules for the targets | |
2370 | # the -map line here used to be conditional on WINCEMAP but now | |
2371 | # we always want to generate map files since they are useful, and in particular romimage | |
2372 | # reads them for some (nk*) to find some symbols | |
2373 | # | |
2374 | # -savebaserelocations will only generate a .REL file in the case where a | |
2375 | # .RELOC section is also being emitted into the PE (when /FIXED:NO is set) | |
2376 | # | |
2377 | $(_RELEASEDIR)\$(TARGETNAME).exe: $(TARGETOBJFILES) $(TARGETLIBS) $(SOURCELIBS) | |
2378 | set LIB=$(LIBPATH) | |
2379 | @echo BUILD_MARKER:LINK_EXE_START Linking $@ | |
2380 | $(LINKER) -out:$(_RELEASEDIR)\$(TARGETNAME).exe $(MACHINEOPTION) @<< | |
2381 | -nodefaultlib | |
2382 | $(EXEENTRYOPTION) | |
2383 | -pdb:$(TARGET_PDB_NAME) | |
2384 | $(LINKER_DEBUG) | |
2385 | $(DEBUG_LINK_CMD_LINE) | |
2386 | -map:$(_RELEASEDIR)\$(TARGETNAME).map | |
2387 | ! IF "$(_TGTOS)"=="CE" | |
2388 | -savebaserelocations:$(_RELEASEDIR)\$(TARGETNAME).rel | |
2389 | ! ENDIF | |
2390 | $(LDEFINES) | |
2391 | $(LINKER_SUBSYSTEM) | |
2392 | $(FIXED_BASE_LINK_CMD_LINE) | |
2393 | -base:$(EXEBASE) | |
2394 | $(TARGETOBJFILES) | |
2395 | $(TARGETLIBS) | |
2396 | $(SOURCELIBS) | |
2397 | <<NOKEEP | |
2398 | @echo BUILD_MARKER:LINK_EXE_END | |
2399 | ! IF "$(BUILD_SIGN)" == "1" | |
2400 | signbin $(_RELEASEDIR)\$(TARGETNAME).exe | |
2401 | ! ENDIF | |
2402 | !ENDIF | |
2403 | !IF "$(WINCEREL)" == "1" | |
2404 | -$(__COPYCMD) $(_RELEASEDIR)\$(TARGETNAME).exe $(_FLATRELEASEDIR)\$(TARGETNAME).exe | |
2405 | -$(__COPYCMD) $(_RELEASEDIR)\$(TARGETNAME).map $(_FLATRELEASEDIR)\$(TARGETNAME).map | |
2406 | -$(__COPYCMD) $(TARGET_PDB_NAME) $(_FLATRELEASEDIR) | |
2407 | -if exist $(_RELEASEDIR)\$(TARGETNAME).rel $(__COPYCMD) $(_RELEASEDIR)\$(TARGETNAME).rel $(_FLATRELEASEDIR)\$(TARGETNAME).rel | |
2408 | !ENDIF | |
2409 | ||
2410 | !IFDEF CPPBROWSE | |
2411 | ! IFNDEF NO_AUTOMATIC_BSC | |
2412 | bscmake /n /o $(_RELEASEDIR)\$(TARGETNAME).bsc $(TEMP)\*.sbr | |
2413 | ! ENDIF | |
2414 | !ENDIF | |
2415 | ||
2416 | !IF "$(NOEXPORTS)" != "1" | |
2417 | EXPORTFILE=$(_RELEASELIBDIR)\$(TARGETNAME).exp | |
2418 | DEFFILEFLAG=-def:$(DEFFILE) | |
2419 | !ELSE | |
2420 | EXPORTFILE= | |
2421 | DEFFILEFLAG= | |
2422 | !ENDIF | |
2423 | ||
2424 | !IFNDEF MANAGED_TARGET | |
2425 | # the -map line here used to be conditional on WINCEMAP but now | |
2426 | # we always want to generate map files since they are useful, and in particular romimage | |
2427 | # reads them for some (nk*) to find some symbols | |
2428 | ! IF "$(DEFFILE)" == "NO_DEF_FILE" | |
2429 | $(_RELEASEDIR)\$(TARGETNAME).dll: $(TARGETOBJFILES) $(TARGETLIBS) $(SOURCELIBS) | |
2430 | set LIB=$(LIBPATH) | |
2431 | @echo BUILD_MARKER:LINK_DLL_START Linking $@ | |
2432 | $(LINKER) -out:$(_RELEASEDIR)\$(TARGETNAME).dll -dll $(MACHINEOPTION) @<< | |
2433 | -nodefaultlib | |
2434 | $(DLLENTRYOPTION) | |
2435 | -pdb:$(TARGET_PDB_NAME) | |
2436 | $(LINKER_DEBUG) | |
2437 | $(DEBUG_LINK_CMD_LINE) | |
2438 | -map:$(_RELEASEDIR)\$(TARGETNAME).map | |
2439 | ! IF "$(_TGTOS)"=="CE" | |
2440 | -savebaserelocations:$(_RELEASEDIR)\$(TARGETNAME).rel | |
2441 | ! ENDIF | |
2442 | ! IF "$(DLLENTRYOPTION)"=="-entry:_DllMainCRTStartup" | |
2443 | ! IF "$(_TGTCPUFAMILY)" == "x86" || "$(_TGTCPUFAMILY)" == "SH" | |
2444 | -include:_DllMain | |
2445 | ! ELSE | |
2446 | -include:DllMain | |
2447 | ! ENDIF | |
2448 | ! ENDIF | |
2449 | $(LDEFINES) | |
2450 | $(LINKER_SUBSYSTEM) | |
2451 | /base:$(DLLBASE) | |
2452 | $(TARGETOBJFILES) | |
2453 | $(SOURCELIBS) | |
2454 | $(TARGETLIBS) | |
2455 | <<NOKEEP | |
2456 | @echo BUILD_MARKER:LINK_DLL_END | |
2457 | ! ELSE | |
2458 | $(_RELEASEDIR)\$(TARGETNAME).dll: $(TARGETOBJFILES) $(TARGETLIBS) $(_RELEASELIBDIR)\$(TARGETNAME).lib $(EXPORTFILE) $(SOURCELIBS) | |
2459 | set LIB=$(LIBPATH) | |
2460 | @echo BUILD_MARKER:LINK_DLL_START Linking $@ | |
2461 | $(LINKER) -out:$(_RELEASEDIR)\$(TARGETNAME).dll -dll $(MACHINEOPTION) @<< | |
2462 | -nodefaultlib | |
2463 | $(DLLENTRYOPTION) | |
2464 | -pdb:$(TARGET_PDB_NAME) | |
2465 | $(LINKER_DEBUG) | |
2466 | $(DEBUG_LINK_CMD_LINE) | |
2467 | -map:$(_RELEASEDIR)\$(TARGETNAME).map | |
2468 | ! IF "$(_TGTOS)"=="CE" | |
2469 | -savebaserelocations:$(_RELEASEDIR)\$(TARGETNAME).rel | |
2470 | ! ENDIF | |
2471 | ! IF "$(DLLENTRYOPTION)"=="-entry:_DllMainCRTStartup" | |
2472 | ! IF "$(_TGTCPUFAMILY)" == "x86" || "$(_TGTCPUFAMILY)" == "SH" | |
2473 | -include:_DllMain | |
2474 | ! ELSE | |
2475 | -include:DllMain | |
2476 | ! ENDIF | |
2477 | ! ENDIF | |
2478 | $(LDEFINES) | |
2479 | $(LINKER_SUBSYSTEM) | |
2480 | /base:$(DLLBASE) | |
2481 | $(TARGETOBJFILES) | |
2482 | $(SOURCELIBS) | |
2483 | $(TARGETLIBS) | |
2484 | $(EXPORTFILE) | |
2485 | <<NOKEEP | |
2486 | @echo BUILD_MARKER:LINK_DLL_END | |
2487 | ! ENDIF | |
2488 | ! IF "$(BUILD_SIGN)" == "1" | |
2489 | signbin $(_RELEASEDIR)\$(TARGETNAME).dll | |
2490 | ! ENDIF | |
2491 | ! IF "$(CPL)"=="1" | |
2492 | copy $(_RELEASEDIR)\$(TARGETNAME).dll $(_RELEASEDIR)\$(TARGETNAME).cpl | |
2493 | @del $(_RELEASEDIR)\$(TARGETNAME).dll | |
2494 | ! ELSEIF "$(MUI)"=="1" | |
2495 | copy $(_RELEASEDIR)\$(TARGETNAME).dll $(_RELEASEDIR)\$(TARGETNAME).mui | |
2496 | @del $(_RELEASEDIR)\$(TARGETNAME).dll | |
2497 | ! ENDIF | |
2498 | ! IF "$(WINCEREL)"=="1" | |
2499 | -$(__COPYCMD) $(_RELEASEDIR)\$(TARGETNAME).map $(_FLATRELEASEDIR)\$(TARGETNAME).map | |
2500 | -$(__COPYCMD) $(TARGET_PDB_NAME) $(_FLATRELEASEDIR) | |
2501 | -if exist $(_RELEASEDIR)\$(TARGETNAME).rel $(__COPYCMD) $(_RELEASEDIR)\$(TARGETNAME).rel $(_FLATRELEASEDIR)\$(TARGETNAME).rel | |
2502 | ! IF "$(CPL)"=="1" | |
2503 | -$(__COPYCMD) $(_RELEASEDIR)\$(TARGETNAME).cpl $(_FLATRELEASEDIR)\$(TARGETNAME).cpl | |
2504 | ! ELSEIF "$(MUI)"=="1" | |
2505 | -$(__COPYCMD) $(_RELEASEDIR)\$(TARGETNAME).mui $(_FLATRELEASEDIR)\$(TARGETNAME).mui | |
2506 | ! ELSE | |
2507 | -$(__COPYCMD) $(_RELEASEDIR)\$(TARGETNAME).dll $(_FLATRELEASEDIR)\$(TARGETNAME).dll | |
2508 | ! ENDIF | |
2509 | ! ENDIF | |
2510 | !ENDIF | |
2511 | ||
2512 | !IF "$(TARGETTYPE)" == "LIBRARY" | |
2513 | $(_RELEASELIBDIR)\$(TARGETNAME).lib: $(TARGETOBJFILES) $(SOURCELIBS) | |
2514 | @echo BUILD_MARKER:LINK_STATIC_LIBRARY_START Linking $@ | |
2515 | $(LIBRARIAN) -out:$(_RELEASELIBDIR)\$(TARGETNAME).lib $(MACHINEOPTION) @<< | |
2516 | -ignore:4001 | |
2517 | $(LIBDEFINES) | |
2518 | -nologo | |
2519 | -nodefaultlib | |
2520 | $(LINKER_SUBSYSTEM) | |
2521 | $(TARGETOBJFILES) | |
2522 | $(SOURCELIBS) | |
2523 | <<NOKEEP | |
2524 | ! IF "$(SOURCEPDBS)" != "" | |
2525 | -@for %%a in ($(SOURCEPDBS)) do @copy %%a $(_RELEASELIBDIR) | |
2526 | ! ENDIF | |
2527 | ! IF "$(SOURCELIBS)" != "" | |
2528 | ! IF "$(NOCOPYSOURCELIBPDB)" == "" || "$(WINCECOVER)" != "" | |
2529 | -@for %%a in ($(SOURCELIBS:.lib=.pdb)) do @copy %%a $(_RELEASELIBDIR) | |
2530 | ! ENDIF | |
2531 | ! ENDIF | |
2532 | @echo BUILD_MARKER:LINK_STATIC_LIBRARY_END | |
2533 | !ENDIF | |
2534 | ||
2535 | ||
2536 | !IF "$(TARGETTYPE)" == "DYNLINK" | |
2537 | ! IFDEF PREPROCESSDEFFILE | |
2538 | $(_RELEASELIBDIR)\$(TARGETNAME).lib $(EXPORTFILE): $(_RELEASELIBDIR)\$(TARGETDEFNAME).def $(TARGETOBJFILES) $(SOURCELIBS) | |
2539 | @echo BUILD_MARKER:LINK_DLL_END 1 $(SOURCELIBS) | |
2540 | @echo BUILD_MARKER:LINK_DLL_START Linking $@ | |
2541 | $(LIBRARIAN) -out:$(_RELEASELIBDIR)\$(TARGETNAME).lib -def:$(_RELEASELIBDIR)\$(TARGETDEFNAME).def $(MACHINEOPTION) @<< | |
2542 | -nodefaultlib | |
2543 | -ignore:4001 | |
2544 | $(LIBDEFINES) | |
2545 | $(LINKER_SUBSYSTEM) | |
2546 | $(TARGETOBJFILES) | |
2547 | $(SOURCELIBS) ..\ce\hif\sdio\obj\$(_TGTCPU)\$(WINCEDEBUG)\ndisload.obj | |
2548 | <<NOKEEP | |
2549 | @echo BUILD_MARKER:LINK_DLL_END 1 $(SOURCELIBS) | |
2550 | ! ELSE | |
2551 | $(_RELEASELIBDIR)\$(TARGETNAME).lib $(EXPORTFILE): $(DEFFILE) $(TARGETOBJFILES) $(SOURCELIBS) | |
2552 | @echo BUILD_MARKER:LINK_DLL_START Linking $@ | |
2553 | $(LIBRARIAN) -out:$(_RELEASELIBDIR)\$(TARGETNAME).lib $(DEFFILEFLAG) $(MACHINEOPTION) @<< | |
2554 | -nodefaultlib | |
2555 | -ignore:4001 | |
2556 | $(LIBDEFINES) | |
2557 | $(LINKER_SUBSYSTEM) | |
2558 | $(TARGETOBJFILES) | |
2559 | $(SOURCELIBS) | |
2560 | <<NOKEEP | |
2561 | @echo BUILD_MARKER:LINK_DLL_END 2 $(SOURCELIBS) | |
2562 | ||
2563 | ! ENDIF | |
2564 | ||
2565 | ! IFDEF CPPBROWSE | |
2566 | ! IFNDEF NO_AUTOMATIC_BSC | |
2567 | bscmake /n /o $(_RELEASEDIR)\$(TARGETNAME).bsc $(TEMP)\*.sbr | |
2568 | ! ENDIF | |
2569 | ! ENDIF | |
2570 | !ENDIF | |
2571 | ||
2572 | !IFDEF PREPROCESSDEFFILE | |
2573 | $(_RELEASELIBDIR)\$(TARGETDEFNAME).def: $(_OBJDIR)\$(TARGETDEFNAME).def | |
2574 | @echo BUILD_MARKER:PREPROCESSDEFFILE_START | |
2575 | $(DEFPREPROCESS) $(DEFPREPROCINC) -Tc$(DEFFILE) > $@ | |
2576 | @echo BUILD_MARKER:PREPROCESSDEFFILE_END | |
2577 | ||
2578 | $(_OBJDIR)\$(TARGETDEFNAME).def: $(DEFFILE) | |
2579 | @echo BUILD_MARKER:PREPROCESSDEFFILE_START | |
2580 | $(DEFPREPROCESS) $(DEFPREPROCINC) -Tc$(DEFFILE) > $@ | |
2581 | @echo BUILD_MARKER:PREPROCESSDEFFILE_END | |
2582 | !ELSE IFDEF _IN_CESYSGEN | |
2583 | $(_RELEASELIBDIR)\$(TARGETDEFNAME).def: | |
2584 | copy $(DEFFILE) $@ | |
2585 | !ELSE | |
2586 | $(_RELEASELIBDIR)\$(TARGETDEFNAME).def: $(DEFFILE) | |
2587 | copy $(DEFFILE) $@ | |
2588 | !ENDIF | |
2589 | ||
2590 | !IFDEF COPYRES | |
2591 | ! IF "$(TARGETRESNAME)" == "" | |
2592 | ! IF "$(RESFILE)" == "" | |
2593 | $(_RELEASELIBDIR)\$(TARGETNAME).res: $(_OBJDIR)\$(TARGETNAME).res | |
2594 | copy $? $@ | |
2595 | ! ELSE | |
2596 | $(_RELEASELIBDIR)\$(TARGETNAME).res: $(_OBJDIR)\$(RESFILE) | |
2597 | copy $? $@ | |
2598 | ! ENDIF | |
2599 | ! ELSE | |
2600 | ! IF "$(RESFILE)" == "" | |
2601 | $(_RELEASELIBDIR)\$(TARGETRESNAME).res: $(_OBJDIR)\$(TARGETNAME).res | |
2602 | copy $? $@ | |
2603 | ! ELSE | |
2604 | $(_RELEASELIBDIR)\$(TARGETRESNAME).res: $(_OBJDIR)\$(RESFILE) | |
2605 | copy $? $@ | |
2606 | ! ENDIF | |
2607 | ! ENDIF | |
2608 | !ENDIF | |
2609 | ||
2610 | !IF EXIST(.\makefile.inc) | |
2611 | ! IFDEF WINCETARGETFILES | |
2612 | ! INCLUDE .\makefile.inc | |
2613 | ! ELSE IFDEF WINCETARGETFILE0 | |
2614 | ! INCLUDE .\makefile.inc | |
2615 | ! ELSE IF "$(SPECIAL_IRC_DEPENDENT)" != "0" && "$(SPECIAL_IRC_DEPENDENT)" != "" | |
2616 | # | |
2617 | # Added for internationalization | |
2618 | # | |
2619 | ! INCLUDE .\makefile.inc | |
2620 | ! ENDIF | |
2621 | !ENDIF | |
2622 | ||
2623 | ||
2624 | ||
2625 | ||
2626 | !IF EXIST($(_PROJECTROOT)\oak\misc\makefilepost.inc) | |
2627 | ! INCLUDE $(_PROJECTROOT)\oak\misc\makefilepost.inc | |
2628 | !ENDIF | |
2629 | ||
2630 | ##</MakefileXml> | |
2631 |