import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / connectivity / combo / drv_wlan / mt6630 / wlan / os / windows / common / makefile.sd.ce50
CommitLineData
6fa3eb70
S
1!if 0
2Copyright (c) Microsoft Corporation. All rights reserved.
3!endif
4!if 0
5Use of this source code is subject to the terms of the Microsoft end-user
6license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
7If you did not accept the terms of the EULA, you are not authorized to use
8this source code. For a copy of the EULA, please see the LICENSE.RTF on your
9install media.
10!endif
11!IF 0
12
13
14Module Name:
15
16 makefile.def
17
18Abstract:
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
28Targets:
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"))
103WINCEDEBUG_COMPILE=debug
104!ELSE
105WINCEDEBUG_COMPILE=retail
106!ENDIF
107
108!IF "$(WINCEDEBUG_COMPILE)" == "debug"
109CSC_DEBUG_CMD_LINE=/debug+ /debug:full
110CSC_DEBUG_DEFINE_CMD_LINE=/define:DEBUG
111!ELSE
112CSC_DEBUG_CMD_LINE=/debug+ /debug:full
113CSC_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.
129OPTIMIZE_FAVOR=SPACE
130EXCEPTION_CPP=NONE
131EXCEPTION_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
139WINCETREE=$(_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)
191TGTCPUISANAME=$(_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.
331RELEASETYPE=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.
342RELEASETYPE=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
365LINKER_SUBSYSTEM=-subsystem:windowsce,5.00
366! ENDIF
367!ENDIF
368
369!IFDEF RCADDNULL
370RCFLAGS=-n
371!ELSE
372RCFLAGS=
373!ENDIF
374
375!IFDEF DLLENTRY
376DLLENTRYOPTION=-entry:$(DLLENTRY)
377!ELSE
378# Default DLLENTRY for CE is broken. Provide a correct default entry
379! IF "$(_TGTOS)"=="CE"
380DLLENTRYOPTION=-entry:_DllMainCRTStartup
381! ELSE
382DLLENTRYOPTION=
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
399EXEENTRYOPTION=-entry:$(EXEENTRY)
400!ELSE
401# Default EXEENTRY for CE is broken. Provide a correct default entry
402! IF "$(_TGTOS)"=="CE"
403EXEENTRYOPTION=-entry:WinMainCRTStartup
404! ELSE
405EXEENTRYOPTION=
406! ENDIF
407!ENDIF
408
409!IFDEF NODLLENTRY
410DLLENTRYOPTION=-NOENTRY
411!ENDIF
412
413TARGETOBJFILES=$(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"
435FIXED_BASE_LINK_CMD_LINE=-FIXED
436!ELSE IF "$(FIXED_BASE_ADDRESS)"=="0"
437FIXED_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")
443TARGETLIBFILES=$(_RELEASELIBDIR)\$(TARGETNAME).lib
444!ENDIF
445
446MANAGED_EXE_TARGET_DIRECTORY=$(_RELEASEDIR)
447MANAGED_WINEXE_TARGET_DIRECTORY=$(_RELEASEDIR)
448MANAGED_DLL_TARGET_DIRECTORY=$(_RELEASEDIR)
449MANAGED_MODULE_TARGET_DIRECTORY=$(_RELEASEDIR)
450
451
452!IF "$(TARGETTYPE)"=="MANAGED_EXE"
453MANAGED_TARGET_DIRECTORY=$(MANAGED_EXE_TARGET_DIRECTORY)
454MANAGED_TARGET_EXTENSION=exe
455MANAGED_TARGET=$(MANAGED_TARGET_DIRECTORY)\$(TARGETNAME).$(MANAGED_TARGET_EXTENSION)
456MANAGED_TARGET_TYPE_CMD_LINE=/target:exe
457!ENDIF
458
459!IF "$(TARGETTYPE)"=="MANAGED_WINEXE"
460MANAGED_TARGET_DIRECTORY=$(MANAGED_WINEXE_TARGET_DIRECTORY)
461MANAGED_TARGET_EXTENSION=exe
462MANAGED_TARGET=$(MANAGED_TARGET_DIRECTORY)\$(TARGETNAME).$(MANAGED_TARGET_EXTENSION)
463MANAGED_TARGET_TYPE_CMD_LINE=/target:winexe
464!ENDIF
465
466
467!IF "$(TARGETTYPE)"=="MANAGED_DLL"
468MANAGED_TARGET_DIRECTORY=$(MANAGED_DLL_TARGET_DIRECTORY)
469MANAGED_TARGET_EXTENSION=dll
470MANAGED_TARGET=$(MANAGED_TARGET_DIRECTORY)\$(TARGETNAME).$(MANAGED_TARGET_EXTENSION)
471MANAGED_TARGET_TYPE_CMD_LINE=/target:library
472!ENDIF
473
474!IF "$(TARGETTYPE)"=="MANAGED_MODULE"
475MANAGED_TARGET_DIRECTORY=$(MANAGED_MODULE_TARGET_DIRECTORY)
476MANAGED_TARGET_EXTENSION=netmodule
477MANAGED_TARGET=$(MANAGED_TARGET_DIRECTORY)\$(TARGETNAME).$(MANAGED_TARGET_EXTENSION)
478MANAGED_TARGET_TYPE_CMD_LINE=/target:module
479!ENDIF
480
481MANAGED_TARGET_PDB=$(MANAGED_TARGET_DIRECTORY)\$(TARGETNAME).pdb
482
483
484TARGETEXEFILES=
485!IF "$(NOLINK)" == ""
486! IF "$(TARGETTYPE)" == "DYNLINK"
487TARGETEXEFILES=$(_RELEASEDIR)\$(TARGETNAME).dll
488! ELSE
489! IF "$(TARGETTYPE)" == "PROGRAM"
490TARGETEXEFILES=$(_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
512MESSAGE_COMPILER=mc -o
513!ELSE
514MESSAGE_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=)"
560PRECOMPILED_CXX=1
561! ENDIF
562! IF "$(PRECOMPILED_INCLUDE)" != "$(PRECOMPILED_INCLUDE:.cxx=)"
563PRECOMPILED_CXX=1
564! ENDIF
565! IF "$(PRECOMPILED_INCLUDE)" != "$(PRECOMPILED_INCLUDE:.cpp=)"
566PRECOMPILED_CXX=1
567! ENDIF
568! IF "$(PRECOMPILED_PCH)" == ""
569PRECOMPILED_PCH=$(PRECOMPILED_INCLUDE:.hxx=.pch)
570PRECOMPILED_PCH=$(PRECOMPILED_PCH:.h=.pch)
571PRECOMPILED_PCH=$(PRECOMPILED_PCH:.cxx=.pch)
572PRECOMPILED_PCH=$(PRECOMPILED_PCH:.cpp=.pch)
573PRECOMPILED_PCH=$(PRECOMPILED_PCH:.c=.pch)
574PRECOMPILED_PCH=$(PRECOMPILED_PCH:..\=)
575! ENDIF
576! IF "$(PRECOMPILED_OBJ)" == ""
577PRECOMPILED_OBJ=$(PRECOMPILED_PCH:.pch=.obj)
578! ENDIF
579! ENDIF
580!ENDIF
581
582
583PRECOMPILED_C_ONLY_CMD_LINE=
584PRECOMPILED_CPP_ONLY_CMD_LINE=
585
586!IF "$(PRECOMPILED_OPTION)" == ""
587! IF "$(PRECOMPILED_INCLUDE)" != ""
588! IF "$(PRECOMPILED_PCH)" != ""
589HEADERFILE=/Fp$(MAKEDIR)\$(_OBJDIR)\$(PRECOMPILED_PCH)
590! ENDIF
591! IF "$(PRECOMPILED_OBJ)" != ""
592PRECOMPILED_HEADEROBJNAME=$(_OBJDIR)\$(PRECOMPILED_OBJ)
593HEADEROBJ=/Fo$(MAKEDIR)\$(PRECOMPILED_HEADEROBJNAME)
594! ENDIF
595! IF "$(PRECOMPILED_CXX)" == ""
596PRECOMPILED_C_ONLY_CMD_LINE=/Yu$(PRECOMPILED_INCLUDE:..\=) $(HEADERFILE)
597! ELSE
598PRECOMPILED_CPP_ONLY_CMD_LINE=/Yu$(PRECOMPILED_INCLUDE:..\=) $(HEADERFILE)
599! ENDIF
600PRECOMPILED_TARGET=$(MAKEDIR)\$(_OBJDIR)\$(PRECOMPILED_PCH)
601! ELSE
602! IF "$(PRECOMPILED_INCLUDE)" != ""
603! IF "$(PRECOMPILED_CXX)" == ""
604PRECOMPILED_C_ONLY_CMD_LINE=/Yu$(PRECOMPILED_INCLUDE)
605! ELSE
606PRECOMPILED_CPP_ONLY_CMD_LINE=/Yu$(PRECOMPILED_INCLUDE)
607! ENDIF
608! ENDIF
609! ENDIF
610!ELSE
611! IF "$(PRECOMPILED_CXX)" == ""
612PRECOMPILED_C_ONLY_CMD_LINE=$(PRECOMPILED_OPTION)
613! ELSE
614PRECOMPILED_CPP_ONLY_CMD_LINE=$(PRECOMPILED_OPTION)
615! ENDIF
616PRECOMPILED_TARGET=$(PRECOMPILED_TARGET)
617! IF "$(PRECOMPILED_TARGET)" != ""
618HEADERFILE=/Fp$(PRECOMPILED_TARGET)
619! ENDIF
620! IF "$(PRECOMPILED_OBJ)" != ""
621PRECOMPILED_HEADEROBJNAME=$(PRECOMPILED_OBJ)
622HEADEROBJ=/Fo$(PRECOMPILED_HEADEROBJNAME)
623! ENDIF
624!ENDIF
625
626!IF ("$(PRECOMPILED_CXX)" == "") && ("$(USECXX_FLAG)" == "")
627PRECOMPILED_GENERATE_CMD_LINE=/Tc
628!ELSE
629PRECOMPILED_GENERATE_CMD_LINE=/Tp
630!ENDIF
631
632!IF "$(NTNOPCH)" != ""
633PRECOMPILED_C_ONLY_CMD_LINE=
634PRECOMPILED_CPP_ONLY_CMD_LINE=
635!ENDIF
636
637# make sure we include the precompiled object if we have one
638TARGETOBJFILES=$(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
648all:
649
650
651!ELSE IFDEF PASS0ONLY
652all: \
653 WinceTargetFile0 \
654 Pass0Objects
655 -@echo $(BUILDMSG)
656!ELSE
657all: \
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
677WinceTargetFile0: $(WINCETARGETFILE0)
678
679Pass0Objects: $(PASS0_OBJECTS)
680
681PrecompiledTarget: $(PRECOMPILED_TARGET)
682
683PrecompiledHeaderObjName: $(PRECOMPILED_HEADEROBJNAME)
684
685TargetObjFiles: $(TARGETOBJFILES)
686
687TargetLibFiles: $(TARGETLIBFILES)
688
689TargetExeFiles: $(TARGETEXEFILES)
690
691ManagedTarget: $(MANAGED_TARGET)
692
693WinceTargetFiles: $(WINCETARGETFILES)
694
695
696null:
697
698dummy:
699 -@echo .
700
701expunge: cleantgt
702 delnode /q obj
703 -@echo $(BUILDMSG)
704
705clean: cleantgt cleanobj
706 -@echo $(BUILDMSG)
707
708cleanobj:
709 -@del /q $(_OBJDIR)\*.obj
710 -@del /q $(_OBJDIR)\*.cod
711
712cleantgt:
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"
757INCLUDEPATH=$(_SDKROOT)\NT\inc;$(_SDKROOT)\VC\inc;$(_SDKROOT)\vc\atlmfc\include
758LIBPATH=$(_SDKROOT)\NT\lib;$(_SDKROOT)\VC\lib;$(_SDKROOT)\vc\atlmfc\lib\x86
759! ELSE
760INCLUDEPATH=$(_SDKROOT)\NT\inc;$(_SDKROOT)\VC\inc;$(_SDKROOT)\MFC\include
761LIBPATH=$(_SDKROOT)\NT\lib;$(_SDKROOT)\VC\lib;$(_SDKROOT)\MFC\lib
762! ENDIF
763# Add MFC if required
764! IF "$(USE_MFC_HEADERS)"=="1"
765CDEFINES=$(CDEFINES) -D_AFXDLL
766! IF "$(TARGETTYPE)"=="DYNLINK"
767CDEFINES=$(CDEFINES) -D_USRDLL
768! ENDIF
769! ENDIF
770!ELSE
771INCLUDEPATH=$(_SDKROOT)\$(_TGTOS)\inc
772LIBPATH=$(_SDKROOT)\$(_TGTOS)\lib
773!ENDIF
774
775# Add ATL 3.0 if user asked for it
776!IF "$(WINCEATL30)" == "1"
777INCLUDEPATH=$(_WINCEROOT)\others\atl\include;$(INCLUDEPATH)
778!ENDIF
779
780# Add MFC if user asked for it
781!IF "$(WINCEMFC)" == "1"
782INCLUDEPATH=$(_WINCEROOT)\others\mfc\include;$(INCLUDEPATH)
783!ENDIF
784
785# Add in any specific additions in the sources file
786!IF "$(EXT_INCLUDES)" != ""
787EXT_INCLUDES = $(EXT_INCLUDES: =)
788INCLUDEPATH=$(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)" != ""
795INCLUDEPATH=$(_OEMINCPATH);$(INCLUDEPATH)
796! ENDIF
797! ELSE
798! IF "$(_ISVINCPATH)" != ""
799INCLUDEPATH=$(_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)" != ""
819INCLUDES = $(INCLUDES: =)
820INCLUDEPATH=$(INCLUDES);$(INCLUDEPATH)
821!ENDIF
822
823INCLUDEPATH=$(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"
842OPTIMIZE_FAVOR_FLAG=-Ot
843!ELSE IF "$(OPTIMIZE_FAVOR)"=="SPACE"
844OPTIMIZE_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"
874EXCEPTION_CPP=ENABLE_WITHOUT_SEH
875EXCEPTION_EXTERN_C=NO_THROW
876!ENDIF
877
878
879!IF "$(EXCEPTION_CPP)" == "NONE"
880# Default setting
881!ELSE IF "$(EXCEPTION_CPP)" == "ENABLE_WITH_SEH"
882EXCEPTION_CPP_CMD_LINE=/EHa
883!ELSE IF "$(EXCEPTION_CPP)" == "ENABLE_WITHOUT_SEH"
884EXCEPTION_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"
907EXCEPTION_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
915CDEBUG_FLAGS=-Od
916! ELSE
917CDEBUG_DEFINES=
918CDEBUG_FLAGS=-Ox $(OPTIMIZE_FAVOR_FLAG)
919! ENDIF
920!ELSE
921CDEBUG_DEFINES=-DDEBUG=1
922! IF "$(_TGTOS)" == "NT" || "$(_TGTOS)" == "NTANSI"
923CDEBUG_DEFINES=$(CDEBUG_DEFINES) -D_DEBUG=1
924! ENDIF
925CDEBUG_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)" == "")
945CDEBUG_FLAGS=$(CDEBUG_FLAGS) -GS
946! ENDIF
947!ENDIF
948
949!IF ("$(WINCELTCG)" != "" && "$(NOLTCG)" == "")
950CDEBUG_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)" != ""
969CDEBUG_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"
979TARGET_PDB_NAME = $(_RELEASELIBDIR)\$(TARGETNAME).pdb
980! ELSE
981TARGET_PDB_NAME = $(_RELEASEDIR)\$(TARGETNAME).pdb
982! ENDIF
983!ENDIF
984
985# Pass name of PDB file to both compiler and linker
986CDEBUG_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"
1005DEBUG_LINK_CMD_LINE=
1006!ELSEIF "$(WINCEPROFILE)" == "1"
1007DEBUG_LINK_CMD_LINE=-debug -debugtype:both -incremental:no
1008CDEBUG_DEFINES=$(CDEBUG_DEFINES) -DWINCEPROFILE
1009!ELSE
1010DEBUG_LINK_CMD_LINE=-debug -debugtype:cv -incremental:no
1011!ENDIF
1012
1013!IF "$(TGTCPUISANAME)"=="ARMV4"
1014LINKER_DEBUG=$(LINKER_DEBUG) /ARMPADCODE
1015!ENDIF
1016
1017!IF "$(WINCEMEMTRACK)" == "1"
1018CDEFINES=$(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)" != ""
1037CDEBUG_DEFINES=$(CDEBUG_DEFINES) -DSHIP_BUILD
1038!ENDIF
1039
1040!IF "$(WINCE_OVERRIDE_CFLAGS)" != ""
1041CDEBUG_FLAGS=$(WINCE_OVERRIDE_CFLAGS)
1042!ENDIF
1043
1044!IF "$(WINCE_LINKER_DEBUG)" != ""
1045LINKER_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"
1055EXEBASE=0x00010000
1056! ELSE
1057EXEBASE=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
1081CDEBUG_FLAGS=$(CDEBUG_FLAGS) /FR$(TEMP)\$(@B).sbr
1082#!ENDIF
1083!ENDIF
1084
1085!IF "$(WINCE_ELIM_DEAD_CODE)" == "1" || "$(WINCEDEBUG_COMPILE)" == "retail"
1086CONLY_FLAGS=$(CONLY_FLAGS) /Gy
1087LINKER_DEBUG=$(LINKER_DEBUG) /opt:ref
1088!ENDIF
1089
1090!IF "$(WINCE_VERBOSE_LINK)" == "1"
1091LINKER_DEBUG=$(LINKER_DEBUG) /verbose
1092!ENDIF
1093
1094TGTCPUDEFINES=-D$(_TGTCPUFAMILY)
1095!IF "$(TGTCPUISANAME)" != "$(_TGTCPUFAMILY)"
1096TGTCPUDEFINES = $(TGTCPUDEFINES) -D$(TGTCPUISANAME)
1097!ENDIF
1098!IF "$(_TGTCPU)" != "$(TGTCPUISANAME)"
1099TGTCPUDEFINES=$(TGTCPUDEFINES) -D$(_TGTCPU)
1100!ENDIF
1101
1102# MIPS16 is also a MIPSII
1103!IF "$(_TGTCPU)" == "MIPS16"
1104TGTCPUDEFINES=$(TGTCPUDEFINES) -DMIPSII
1105!ENDIF
1106
1107!IF "$(_TGTCPUFAMILY)" == "x86"
1108TGTCPUDEFINES=$(TGTCPUDEFINES) -D_X86_
1109
1110!ELSEIF "$(_TGTCPUFAMILY)" == "SH"
1111TGTCPUDEFINES=$(TGTCPUDEFINES) -D_SHX_ -DSHx
1112
1113!ELSEIF "$(_TGTCPUFAMILY)" == "ARM"
1114TGTCPUDEFINES=$(TGTCPUDEFINES) -D_ARM_
1115! IF "$(TGTCPUISANAME)"=="ARMV4T"
1116TGTCPUDEFINES=$(TGTCPUDEFINES) -D_THUMB_
1117! ENDIF
1118
1119!ELSEIF "$(_TGTCPUFAMILY)"=="MIPS"
1120TGTCPUDEFINES=$(TGTCPUDEFINES) -D_MIPS_ -DR4000
1121
1122! IF "$(_TGTCPUOPTIONS)" == "_FP"
1123MIPS_HAS_FPU=1
1124! ENDIF
1125
1126! IFDEF MIPS_HAS_FPU
1127CDEFINES=$(CDEFINES) $(CFPUDEFINES)
1128ADEFINES=$(ADEFINES) $(AFPUDEFINES)
1129! ENDIF
1130
1131!ENDIF # _TGTCPUFAMILY == MIPS
1132
1133#collect all the defines together
1134CDEFINES=-DWIN32 -DSTRICT $(TGTCPUDEFINES) $(CDEBUG_DEFINES) $(CDEFINES)
1135!IF "$(WINCEOEM)"=="1"
1136CDEFINES=-DWINCEOEM -DWINCEINTERNAL $(CDEFINES)
1137!ENDIF
1138!IF "$(TARGETTHREADMODEL)" == "MT"
1139CDEFINES=-D_MT $(CDEFINES)
1140!ELSEIF "$(TARGETTHREADMODEL)" == "MD"
1141CDEFINES=-D_MT -D_DLL $(CDEFINES)
1142!ENDIF
1143!IF "$(WINCEEMULATION)"=="1"
1144CDEFINES=-D_WIN32_WCE_EMULATION $(CDEFINES)
1145!ENDIF
1146!IF "$(_TGTOS)" == "NTANSI"
1147CDEFINES=-DUNDER_NT $(CDEFINES)
1148!ELSEIF "$(_TGTOS)" == "NT"
1149CDEFINES=-DUNDER_NT $(CDEFINES)
1150!ELSEIF "$(_TGTOS)" == "CE"
1151CDEFINES=-DUNDER_CE=500 -D_WIN32_WCE=500 $(CDEFINES)
1152!ENDIF
1153!IF "$(NOT_UNICODE)" != "1" && "$(_TGTOS)" != "NTANSI"
1154CDEFINES=-DUNICODE -D_UNICODE $(CDEFINES)
1155!ENDIF
1156
1157#collect all include paths together
1158!IF "$(INCLUDEPATH)" == "" || "$(INCLUDEPATH)" == " "
1159CINCLUDES=-I$(_TGTCPUFAMILY)\ -I.
1160!ELSE
1161CINCLUDES=-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"
1173CODEPAGE=932
1174! ELSE
1175CODEPAGE=1252
1176! ENDIF
1177#
1178# set CFLAGS,CINLUDE and RDEFINES for INTERNATIONAL module
1179#
1180CDEFINES=$(CDEFINES) -DINTERNATIONAL -DL$(LOCALE) -DINTLMSG_CODEPAGE=$(CODEPAGE)
1181CINCLUDES=$(CINCLUDES) -I.\Resource\$(LOCALE)
1182RDEFINES=$(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"
1217WARNLEVEL_CMD_LINE=-w
1218!ELSEIF "$(WARNLEVEL)" != ""
1219WARNLEVEL_CMD_LINE=-W$(WARNLEVEL)
1220!ELSE
1221WARNLEVEL_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
1257CFLAGS=-c $(CINCLUDES) $(CDEBUG_FLAGS) $(CDEFINES)
1258
1259!IF "$(WINCECOD)" != ""
1260CFLAGS=$(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)" == ""
1265CFLAGS=$(CFLAGS) -WX
1266! ENDIF
1267!ENDIF
1268
1269# setup host compiler
1270HOSTCOMPILER=cl
1271
1272#resource compiler stuff
1273!IF "$(_TGTOS)" == "CE"
1274RDEFINES=$(_TGTCPUDEFINES) -DUNDER_CE=500 $(RDEFINES)
1275! IF "$(WINCEDEBUG_COMPILE)"=="debug"
1276RDEFINES=$(RDEFINES) -DDEBUG
1277! ENDIF
1278! IF "$(WINCEOEM)"=="1"
1279RDEFINES=-DWINCEINTERNAL $(RDEFINES)
1280! ENDIF
1281!ELSE
1282RDEFINES=$(_TGTCPUDEFINES) -DUNDER_NT $(RDEFINES)
1283!ENDIF
1284RCOMPILER=rc -r $(CINCLUDES) $(RDEFINES)
1285
1286#midl compiler stuff
1287MIDLCOMPILER=midl -nologo
1288MKTYPLIBFLAGS=/win32 /mktyplib203
1289
1290# preprocessing is always done on the host
1291DEFPREPROCESS=$(HOSTCOMPILER) -EP $(CDEFINES) $(CINCLUDES)
1292
1293!IF "$(_TGTOS)" == "NT" || "$(_TGTOS)" == "NTANSI"
1294! IF "$(TARGETTYPE)" == "PROGRAM"
1295! IF "$(TARGETTHREADMODEL)" == "MT"
1296! IF ("$(WINCEDEBUG_COMPILE)" == "retail")
1297STARTLIB=libcmt.lib
1298STCPPLIB=libcpmt.lib
1299! ELSE
1300STARTLIB=libcmtd.lib
1301STCPPLIB=libcpmtd.lib
1302! ENDIF
1303! ELSEIF "$(TARGETTHREADMODEL)" == "MD"
1304! IF ("$(WINCEDEBUG_COMPILE)" == "retail")
1305STARTLIB=msvcrt.lib
1306STCPPLIB=msvcprt.lib
1307! ELSE
1308STARTLIB=msvcrtd.lib
1309STCPPLIB=msvcprtd.lib
1310! ENDIF
1311! ELSE
1312! IF ("$(WINCEDEBUG_COMPILE)" == "retail")
1313STARTLIB=libc.lib
1314STCPPLIB=libcp.lib
1315! ELSE
1316STARTLIB=libcd.lib
1317STCPPLIB=libcpd.lib
1318! ENDIF
1319! ENDIF
1320! ELSE
1321! IF "$(TARGETTHREADMODEL)" == "MT"
1322! IF ("$(WINCEDEBUG_COMPILE)" == "retail")
1323STARTLIB=libcmt.lib
1324STCPPLIB=libcpmt.lib
1325! ELSE
1326STARTLIB=libcmtd.lib
1327STCPPLIB=libcpmtd.lib
1328! ENDIF
1329! ELSE
1330! IF ("$(WINCEDEBUG_COMPILE)" == "retail")
1331STARTLIB=msvcrt.lib
1332STCPPLIB=msvcprt.lib
1333! ELSE
1334STARTLIB=msvcrtd.lib
1335STCPPLIB=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
1346TARGETLIBS=$(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
1357TARGETLIBS=$(TARGETLIBS) $(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\corelibc.lib
1358! ENDIF
1359!ENDIF
1360
1361!IF "$(TGTCPUISANAME)"=="SH4"
1362MACHINEOPTION=-machine:SH4
1363!ELSEIF "$(_TGTCPUFAMILY)"=="SH"
1364! IF "$(ENABLEDSP)"=="1" || "$(_TGTCPUOPTIONS)"=="_DSP"
1365MACHINEOPTION=-machine:SH3DSP
1366! ELSE
1367MACHINEOPTION=-machine:SH3
1368! ENDIF
1369!ELSEIF "$(TGTCPUISANAME)" == "MIPSII"
1370MACHINEOPTION=-machine:MIPS
1371!ELSEIF "$(TGTCPUISANAME)" == "MIPS16"
1372MACHINEOPTION=-machine:MIPS16
1373!ELSEIF "$(TGTCPUISANAME)" == "MIPSIV"
1374MACHINEOPTION=-machine:MIPSFPU
1375!ELSEIF "$(TGTCPUISANAME)" == "ARMV4T" || "$(TGTCPUISANAME)" == "ARMV4I"
1376MACHINEOPTION=-machine:thumb
1377!ELSE
1378MACHINEOPTION=-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"
1388CFLAGS=$(CFLAGS) /Gh
1389! ELSE
1390CFLAGS=$(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
1398CFLAGS=$(CFLAGS) /fastcap
1399! ENDIF
1400!ENDIF
1401
1402!IF "$(WINCECALLCAP)"!="" || "$(WINCEFASTCAP)"!=""
1403TARGETLIBS=$(TARGETLIBS) $(_COMMONOAKROOT)\lib\$(_TGTCPU)\$(WINCEDEBUG)\cecap.lib
1404!ENDIF
1405
1406#
1407# Now for special CPU dependent defines
1408#
1409!IF "$(_TGTCPUFAMILY)"=="x86"
1410CCOMPILER=cl -nologo
1411CXXCOMPILER=$(CCOMPILER)
1412ASSEMBLER=ml -nologo
1413CVTRES=cvtres -machine:iX86
1414CFLAGS=$(CFLAGS) /QIfdiv-
1415AFLAGS=-c -coff -Cx $(ADEFINES) $(CINCLUDES) -Zm
1416! IF "$(WINCECOD)" != ""
1417AFLAGS=$(AFLAGS) -Sn -Fl$(@R).lst
1418! ENDIF
1419
1420!ELSEIF "$(_TGTCPUFAMILY)"=="SH"
1421CCOMPILER=cl -nologo
1422CXXCOMPILER=$(CCOMPILER)
1423ASSEMBLER=shasm
1424CFLAGS=$(CFLAGS) -DSH3_CACHE=1
1425ALIGNMENT=4096
1426! IF "$(TGTCPUISANAME)"=="SH4"
1427AFLAGS=$(ADEFINES) -Qsh4r5
1428CFLAGS=$(CFLAGS) -Qsh4r5
1429CVTRES=cvtres -machine:sh4
1430! ELSE
1431AFLAGS=$(ADEFINES) -Qsh3 -Qdsp
1432CVTRES=cvtres -machine:sh3
1433! IF "$(ENABLEDSP)"=="1" || "$(_TGTCPUOPTIONS)"=="_DSP"
1434CFLAGS=$(CFLAGS) -Qdsp
1435! ENDIF
1436! ENDIF
1437! IF "$(WINCEPROFILE)" == "1"
1438ADEFINES=$(ADEFINES) -DPROFILE=1
1439! ELSE
1440ADEFINES=$(ADEFINES) -DPROFILE=0
1441! ENDIF
1442! IFDEF WINCECOD
1443AFLAGS=$(AFLAGS) -LIST=$(@R).lst
1444! ENDIF
1445
1446!ELSEIF "$(_TGTCPUFAMILY)"=="MIPS"
1447
1448ASSEMBLER=mipsasm
1449CCOMPILER=cl -nologo
1450ALIGNMENT=4096
1451! IF "$(TGTCPU)"=="MIPSII"
1452CFLAGS=$(CFLAGS) -QMmips2 -D_M_MRX000=4000 -QMFPE
1453! ELSEIF "$(_TGTCPU)"=="MIPSII_FP"
1454CFLAGS=$(CFLAGS) -QMmips2 -D_M_MRX000=4000 -QMFPE-
1455! ELSEIF "$(_TGTCPU)"=="MIPS16"
1456CFLAGS=$(CFLAGS) -DMIPS16SUPPORT
1457LDEFINES=-merge:.text16=.text $(LDEFINES)
1458! IF "$(NOMIPS16CODE)"=="1"
1459CONLY_FLAGS=-QMmips2 -D_M_MRX000=4000 -DNOMIPS16CODE
1460! ELSE
1461CONLY_FLAGS=-ase16
1462! ENDIF
1463ADEFINES=-QMmips2 -D_M_MRX000=4000 $(ADEFINES)
1464! ELSEIF "$(_TGTCPU)" == "MIPSIV"
1465CFLAGS=$(CFLAGS) -D_MIPS64 -QMmips4 -QMn32 -QMFPE
1466CCOMPILER=cl -nologo
1467ASSEMBLER=mipsasm -QMmips4
1468! ELSEIF "$(_TGTCPU)" == "MIPSIV_FP"
1469CFLAGS=$(CFLAGS) -D_MIPS64 -QMmips4 -QMn32 -QMFPE-
1470CCOMPILER=cl -nologo
1471ASSEMBLER=mipsasm -QMmips4
1472! ENDIF
1473CXXCOMPILER=$(CCOMPILER)
1474! IF "$(_TGTCPU)" == "MIPSIV_FP"
1475CVTRES=cvtres -machine:mipsfpu
1476! ELSE
1477CVTRES=cvtres -machine:mips
1478! ENDIF
1479AFLAGS=$(CFLAGS) $(ADEFINES)
1480
1481!ELSEIF "$(_TGTCPUFAMILY)"=="ARM"
1482
1483CCOMPILER=cl -nologo
1484CXXCOMPILER=$(CCOMPILER)
1485ASSEMBLER=armasm -coff
1486CVTRES=cvtres -machine:arm
1487
1488! IF "$(NOMIPS16CODE)"=="1"
1489CFLAGS=$(CFLAGS) -QRimplicit-import-
1490! ENDIF
1491
1492! IF "$(WINCEPROFILE)" == "1"
1493ADEFINES=$(ADEFINES) -pd "PROFILE SETA 1"
1494! ENDIF
1495
1496! IF ("$(WINCEDEBUG_COMPILE)" == "debug")
1497AFLAGS=$(AFLAGS) -pd "DEBUG SETA 1"
1498! ENDIF
1499
1500! IFDEF WINCECOD
1501AFLAGS=$(AFLAGS) -list $(@R).lst -wi 150 -l 0
1502! ENDIF
1503
1504AFLAGS=$(AFLAGS) -cr $(ADEFINES) -i $(INCLUDEPATH:;=,) -i arm
1505LDEFINES=-merge:.astart=.text $(LDEFINES)
1506ALIGNMENT=4096
1507
1508! IF "$(TGTCPUISANAME)"=="ARMV4T"
1509! IFNDEF BUILDASARM
1510CCOMPILER=cl -nologo -QRthumb
1511! ENDIF
1512CVTRES=cvtres -machine:thumb
1513_SRCDIR=ARM
1514
1515ARM_ARCH_C_CMD_LINE=-QRarch4T
1516ARM_ARCH_ASSEMBLER_CMD_LINE=-arch 4t
1517THUMB_C_CMD_LINE=-DTHUMBSUPPORT
1518THUMB_ASSEMBLER_CMD_LINE=-pd "Thumbing SETL {TRUE}"
1519INTERWORK_C_CMD_LINE=-QRinterwork-return
1520INTERWORK_ASSEMBLER_CMD_LINE=-pd "Interworking SETL {TRUE}"
1521
1522! ELSEIF "$(TGTCPUISANAME)"=="ARMV4I"
1523ARM_ARCH_C_CMD_LINE=-QRarch4T
1524ARM_ARCH_ASSEMBLER_CMD_LINE=-arch 4t
1525INTERWORK_C_CMD_LINE=-QRinterwork-return
1526INTERWORK_ASSEMBLER_CMD_LINE=-pd "Interworking SETL {TRUE}"
1527THUMB_C_CMD_LINE=-DTHUMBSUPPORT
1528THUMB_ASSEMBLER_CMD_LINE=-pd "Thumbing SETL {FALSE}"
1529
1530! ELSEIF "$(TGTCPUISANAME)"=="ARMV4"
1531ARM_ARCH_ASSEMBLER_CMD_LINE=-arch 4
1532THUMB_ASSEMBLER_CMD_LINE=-pd "Thumbing SETL {FALSE}"
1533INTERWORK_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"
1552ARM_ARCH_C_CMD_LINE=
1553ARM_XSCALE_C_CMD_LINE=-QRxscale
1554ARM_ARCH_ASSEMBLER_CMD_LINE=
1555ARM_XSCALE_ASSEMBLER_CMD_LINE=-cpu XSCALE
1556! ENDIF
1557
1558!ENDIF
1559
1560!IF "$(OACR)"=="Yes"
1561! IF "$(TGTCPUISANAME)"=="ARMV4T"
1562! IFNDEF BUILDASARM
1563CCOMPILER=oacrcl -nologo -QRthumb
1564! ENDIF
1565! ELSE
1566CCOMPILER=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
1573CFLAGS=$(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"
1582CDEFINES=$(CDEFINES) -D_M_ARM
1583! ELSEIF "$(_TGTCPUFAMILY)"=="MIPS"
1584CDEFINES=$(CDEFINES) -D_M_MRX000
1585! ELSEIF "$(_TGTCPUFAMILY)"=="SH"
1586CDEFINES=$(CDEFINES) -D_M_SH=4
1587! ENDIF
1588
1589# use prefastpriv.h to add or remove defines
1590CDEFINES=$(CDEFINES) -FI$(PREFAST_ROOT)prefastpriv.h
1591CCOMPILER=$(PREFAST_ROOT)scripts\interceptcl\cl386.exe
1592
1593! ENDIF
1594!ENDIF # end UNDER_PREFAST
1595
1596
1597LINKER=link /LARGEADDRESSAWARE
1598LIBRARIAN=link -lib
1599
1600!IF ("$(WINCELTCG)" != "" && "$(NOLTCG)" == "")
1601LINKER=$(LINKER) /LTCG
1602LIBRARIAN=$(LIBRARIAN) /LTCG
1603!ENDIF
1604
1605!IF "$(_TGTOS)" == "CE"
1606CVTRES=$(CVTRES) /WINDOWSCE
1607!ENDIF
1608
1609!IFDEF ALIGNMENT
1610LDEFINES=$(LDEFINES) -align:$(ALIGNMENT)
1611!ENDIF
1612
1613LDEFINES=$(LDEFINES) -ignore:4001,4070,4078,4086,4089,4096,4099,4108,4229
1614!IFNDEF NORDATAMERGE
1615LDEFINES=-MERGE:.rdata=.text $(LDEFINES)
1616!ENDIF
1617!IF "$(_TGTOS)" == "CE"
1618! IFNDEF LDEFSTACK
1619LDEFSTACK=/STACK:65536,4096
1620! ENDIF
1621!ENDIF
1622
1623!IFDEF LDEFSTACK
1624LDEFINES=$(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
1634DEFFILE=$(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
1643TARGETDEFNAME=$(TARGETNAME)
1644!ENDIF
1645
1646
1647
1648!IFDEF PREPROCESSDEFFILE
1649! IF "$(_TGTOS)"=="CE"
1650DEFPREPROCINC=-FI$(_COMMONOAKROOT)\inc\deffile.inc
1651! ELSE
1652DEFPREPROCINC=
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
1660CFLAGS=$(CFLAGS) -Zi
1661AFLAGS=$(AFLAGS) -Zi
1662LDEFINES=$(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.
1675MANAGED_DELAYSIGN_COMMAND=@echo Not signing $(MANAGED_TARGET)
1676! ELSE
1677MANAGED_DELAYSIGN_COMMAND=$(SN) -R $(MANAGED_TARGET) $(DEV_SN_KEYPAIR)
1678! ENDIF
1679!ELSE
1680MANAGED_DELAYSIGN=
1681!ENDIF
1682
1683
1684
1685
1686
1687!IF "$(_TGTOS)" == "CE"
1688CSC_UNDER_OS_DEFINE_CMD_LINE=/define:UNDER_WINDOWS_CE
1689!ELSE IF ( "$(_TGTOS)" == "NT" ) || ( "$(_TGTOS)" == "NTANSI" )
1690CSC_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"
1710DOC_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"
1732UNSAFE_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.
1745MANAGED_REFERENCES_CMD_LINE=;$(MANAGED_REFERENCES)
1746MANAGED_REFERENCES_CMD_LINE=$(MANAGED_REFERENCES_CMD_LINE:;;=;)
1747MANAGED_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.
1758MANAGED_ADDMODULES_CMD_LINE=;$(MANAGED_ADDMODULES)
1759MANAGED_ADDMODULES_CMD_LINE=$(MANAGED_ADDMODULES_CMD_LINE:;;=;)
1760MANAGED_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.
1771MANAGED_LINKRESOURCES_CMD_LINE=;$(MANAGED_LINKRESOURCES)
1772MANAGED_LINKRESOURCES_CMD_LINE=$(MANAGED_LINKRESOURCES_CMD_LINE:;;=;)
1773MANAGED_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.
1783MANAGED_RESOURCES_CMD_LINE=;$(MANAGED_RESOURCES)
1784MANAGED_RESOURCES_CMD_LINE=$(MANAGED_RESOURCES_CMD_LINE:;;=;)
1785MANAGED_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.
1797MANAGED_WIN32ICONS_CMD_LINE=;$(MANAGED_WIN32ICONS)
1798MANAGED_WIN32ICONS_CMD_LINE=$(MANAGED_WIN32ICONS_CMD_LINE:;;=;)
1799MANAGED_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.
1811MANAGED_WIN32RESOURCES_CMD_LINE=;$(MANAGED_WIN32RESOURCES)
1812MANAGED_WIN32RESOURCES_CMD_LINE=$(MANAGED_WIN32RESOURCES_CMD_LINE:;;=;)
1813MANAGED_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.
1818CSC_DEFINES_CMD_LINE=;$(CSC_DEFINES)
1819CSC_DEFINES_CMD_LINE=$(CSC_DEFINES_CMD_LINE:;;=;)
1820CSC_DEFINES_CMD_LINE=$(CSC_DEFINES_CMD_LINE:;= /define:)
1821! ENDIF
1822
1823
1824!IF "$(USE_OS_ASSEMBLY_VERSION)"!=""
1825MANAGED_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
1905Resx_Targets: $(MANAGED_RESX_RESOURCES_NMAKE_TARGETS) $(MANAGED_RESX_LINKRESOURCES_NMAKE_TARGETS)
1906
1907
1908# Build up the c/c++ command line
1909C_COMMAND_LINE_OPTIONS=$(CFLAGS)
1910C_COMMAND_LINE_OPTIONS=$(C_COMMAND_LINE_OPTIONS) $(WARNLEVEL_CMD_LINE)
1911C_COMMAND_LINE_OPTIONS=$(C_COMMAND_LINE_OPTIONS) $(EXCEPTION_CPP_CMD_LINE) $(EXCEPTION_EXTERN_C_CMD_LINE)
1912C_COMMAND_LINE_OPTIONS=$(C_COMMAND_LINE_OPTIONS) $(ARM_ARCH_C_CMD_LINE)
1913C_COMMAND_LINE_OPTIONS=$(C_COMMAND_LINE_OPTIONS) $(THUMB_C_CMD_LINE)
1914C_COMMAND_LINE_OPTIONS=$(C_COMMAND_LINE_OPTIONS) $(INTERWORK_C_CMD_LINE)
1915C_COMMAND_LINE_OPTIONS=$(C_COMMAND_LINE_OPTIONS) $(ARM_XSCALE_C_CMD_LINE)
1916
1917ECHO_CXX_MSG=$(CXXCOMPILER) $(CONLY_FLAGS) -Fo$@ $(C_COMMAND_LINE_OPTIONS) $(MAKEDIR)\$<
1918ECHO_C_MSG=$(CCOMPILER) $(CONLY_FLAGS) -Fo$@ $(C_COMMAND_LINE_OPTIONS) $(MAKEDIR)\$<
1919
1920
1921# make sure the compiler knows about the precompiled header
1922CCOMPILER=$(CCOMPILER) $(PRECOMPILED_C_ONLY_CMD_LINE)
1923CXXCOMPILER=$(CXXCOMPILER) $(PRECOMPILED_CPP_ONLY_CMD_LINE)
1924
1925ECHO_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
2213MC_SOURCEDIR=$(PASS0_SOURCEDIR)
2214! ELSE
2215MC_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
2232ASSEMBLER_CMD_LINE=$(AFLAGS)
2233ASSEMBLER_CMD_LINE=$(ASSEMBLER_CMD_LINE) $(ARM_ARCH_ASSEMBLER_CMD_LINE)
2234ASSEMBLER_CMD_LINE=$(ASSEMBLER_CMD_LINE) $(THUMB_ASSEMBLER_CMD_LINE)
2235ASSEMBLER_CMD_LINE=$(ASSEMBLER_CMD_LINE) $(INTERWORK_ASSEMBLER_CMD_LINE)
2236ASSEMBLER_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"
2417EXPORTFILE=$(_RELEASELIBDIR)\$(TARGETNAME).exp
2418DEFFILEFLAG=-def:$(DEFFILE)
2419!ELSE
2420EXPORTFILE=
2421DEFFILEFLAG=
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