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 | # | |
38 | # Pick a copy command to use | |
39 | # | |
40 | !IF "$(BUILDREL_USE_COPY)"=="1" | |
41 | #use real copy command | |
42 | __COPYCMD=copy | |
43 | !ELSE | |
44 | # use copylink instead | |
45 | __COPYCMD=copylink /S:a /D:f /E:a /R:n | |
46 | !ENDIF | |
47 | ||
48 | ||
49 | ||
50 | # | |
51 | # Include the developer supplied file that defines the TARGETNAME, | |
52 | # TARGETTYPE and SOURCES macros. | |
53 | # | |
54 | ||
55 | # Local variable which gets set to the tree being built currently | |
56 | WINCETREE=$(_CURSLMTREE) | |
57 | ||
58 | !IF "$(BUILDROOT)"=="" | |
59 | !ERROR BUILDROOT must be defined | |
60 | !ENDIF | |
61 | !MESSAGE makefile.def: BUILDROOT is $(BUILDROOT) | |
62 | ||
63 | !IF EXIST($(BUILDROOT)\sources.cmn) | |
64 | !MESSAGE makefile.def: including $(BUILDROOT)\sources.cmn | |
65 | !INCLUDE $(BUILDROOT)\sources.cmn | |
66 | !ENDIF | |
67 | ||
68 | # Figure out the appropriate directory for public common. Do this before | |
69 | # including the sources file so they can be used in there. Note there are | |
70 | # OS & non-OS projects. OS projects are those that have WINCETREE explicitly | |
71 | # set in sources.cmn and where public\WINCETREE\cesysgen\makefile exists, | |
72 | # | |
73 | # There are 4 cases: | |
74 | # (1) OS projects during sysgen (2) OS projects during compile | |
75 | # (3) WINCEPROJ projects (4) Other projects. | |
76 | ||
77 | !if "$(_IN_CESYSGEN)" != "" | |
78 | # OS projects during SYSGEN (which get unsysgened input libs & build into projectroot\cesysgen) | |
79 | _COMMONPUBROOT=$(_PUBLICROOT)\common | |
80 | __PROJROOT = $(_PROJECTROOT)\cesysgen | |
81 | !else if ("$(WINCETREE)" == "winceos") || EXIST($(_PUBLICROOT)\$(WINCETREE)\cesysgen\makefile) | |
82 | # OS projects during compile (which always get the full unfiltered headers & build into their own public tree) | |
83 | _COMMONPUBROOT=$(_PUBLICROOT)\common | |
84 | __PROJROOT = $(_PUBLICROOT)\$(WINCEPROJ) | |
85 | !else if "$(WINCEPROJ)" != "" | |
86 | # WINCEPROJ projects (which want sysgened headers & libs, but want to build into their *own* public trees) | |
87 | _COMMONPUBROOT=$(_PROJECTROOT)\cesysgen | |
88 | __PROJROOT = $(_PUBLICROOT)\$(WINCEPROJ) | |
89 | !else | |
90 | # regular user projects (which get sysgened headers & libs & build into the final project public tree) | |
91 | _COMMONPUBROOT=$(_PROJECTROOT)\cesysgen | |
92 | __PROJROOT = $(_PROJECTROOT) | |
93 | !endif | |
94 | ||
95 | # Construct the CPU's qualified instruction set architecture name (e.g., ARMV4) | |
96 | TGTCPUISANAME=$(_TGTCPUFAMILY)$(_TGTCPUISA) | |
97 | ||
98 | # Build all binaries into cpu dependent dirs for simplicity | |
99 | _CPUINDPATH=$(_TGTCPU)\$(WINCEDEBUG) | |
100 | _CPUDEPPATH=$(_TGTCPU)\$(WINCEDEBUG) | |
101 | ||
102 | # Use these to get sysgened (or not sysgened) headers and libs as described above | |
103 | _COMMONSDKROOT=$(_COMMONPUBROOT)\sdk | |
104 | _COMMONOAKROOT=$(_COMMONPUBROOT)\oak | |
105 | _COMMONDDKROOT=$(_COMMONPUBROOT)\ddk | |
106 | ||
107 | # Use these to explicitly get sysgened headers and libs | |
108 | _SYSGENSDKROOT=$(_PROJECTROOT)\cesysgen\sdk | |
109 | _SYSGENOAKROOT=$(_PROJECTROOT)\cesysgen\oak | |
110 | _SYSGENDDKROOT=$(_PROJECTROOT)\cesysgen\ddk | |
111 | ||
112 | !INCLUDE .\sources. | |
113 | ||
114 | !IF EXIST($(_PROJECTROOT)\oak\misc\makefile.inc) | |
115 | !MESSAGE makefile.def: including $(_PROJECTROOT)\oak\misc\makefile.inc | |
116 | !INCLUDE $(_PROJECTROOT)\oak\misc\makefile.inc | |
117 | !ENDIF | |
118 | ||
119 | !IFNDEF TARGETNAME | |
120 | !ERROR Your .\sources. file must define the TARGETNAME= macro | |
121 | !ENDIF | |
122 | ||
123 | !IFNDEF TARGETTYPE | |
124 | !ERROR Your .\sources. file must define the TARGETTYPE= macro | |
125 | !ENDIF | |
126 | ||
127 | # TARGETTHREADMODEL should be ST for single-threaded, MT for multi-threaded | |
128 | !IFNDEF TARGETTHREADMODEL | |
129 | TARGETTHREADMODEL=ST | |
130 | !ENDIF | |
131 | ||
132 | !IFNDEF SOURCES | |
133 | !ERROR Your .\sources. file must define the SOURCES= macro | |
134 | !ENDIF | |
135 | ||
136 | # Recalculate the appropriate directory for public common. We are redoing | |
137 | # this in case they tried to override something in their sources file. | |
138 | # (See detailed notes above) | |
139 | ||
140 | !if "$(_IN_CESYSGEN)" != "" | |
141 | # OS projects during SYSGEN (which get unsysgened input libs & build into projectroot\cesysgen) | |
142 | _COMMONPUBROOT=$(_PUBLICROOT)\common | |
143 | __PROJROOT = $(_PROJECTROOT)\cesysgen | |
144 | !else if ("$(WINCETREE)" == "winceos") || EXIST($(_PUBLICROOT)\$(WINCETREE)\cesysgen\makefile) | |
145 | # OS projects during compile (which always get the full unfiltered headers & build into their own public tree) | |
146 | _COMMONPUBROOT=$(_PUBLICROOT)\common | |
147 | __PROJROOT = $(_PUBLICROOT)\$(WINCEPROJ) | |
148 | !else if "$(WINCEPROJ)" != "" | |
149 | # WINCEPROJ projects (which want sysgened headers & libs, but want to build into their *own* public trees) | |
150 | _COMMONPUBROOT=$(_PROJECTROOT)\cesysgen | |
151 | __PROJROOT = $(_PUBLICROOT)\$(WINCEPROJ) | |
152 | !else | |
153 | # regular user projects (which get sysgened headers & libs & build into the final project public tree) | |
154 | _COMMONPUBROOT=$(_PROJECTROOT)\cesysgen | |
155 | __PROJROOT = $(_PROJECTROOT) | |
156 | !endif | |
157 | ||
158 | #!ERROR Paths are commonpubroot=$(_COMMONPUBROOT) and projroot=$(__PROJROOT) | |
159 | ||
160 | # Include generated source variables | |
161 | !IF !EXIST($(BUILDROOT)\sources.gen) | |
162 | !IF [call srcgen $(BUILDROOT) $(WINCETREE) $(_COMMONPUBROOT)] | |
163 | !ENDIF | |
164 | !ENDIF | |
165 | !INCLUDE $(BUILDROOT)\sources.gen | |
166 | ||
167 | !IFNDEF _ISVINCPATH | |
168 | !ERROR Sources.gen did not include an ISV include path | |
169 | !ENDIF | |
170 | ||
171 | # validate WINCEDEBUG since it's used for paths | |
172 | !IF (("$(WINCEDEBUG)" != "retail") && ("$(WINCEDEBUG)" != "debug")) | |
173 | !ERROR You must set WINCEDEBUG to retail or debug | |
174 | !ENDIF | |
175 | ||
176 | # | |
177 | # Set up the release directories. | |
178 | # | |
179 | _SRCDIR = $(_TGTCPUFAMILY) | |
180 | ||
181 | !IF "$(WINCECPU)" == "" | |
182 | __CPUDIR = $(_CPUINDPATH) | |
183 | !ELSE | |
184 | __CPUDIR = $(_CPUDEPPATH) | |
185 | !ENDIF | |
186 | _OBJDIR = obj\$(__CPUDIR) | |
187 | ||
188 | !IF "$(RELEASETYPE)" == "SDK" | |
189 | _RELEASEDIR=$(__PROJROOT)\oak\target\$(__CPUDIR) | |
190 | _RELEASELIBDIR=$(__PROJROOT)\sdk\lib\$(__CPUDIR) | |
191 | !ELSEIF "$(RELEASETYPE)" == "DDK" | |
192 | _RELEASEDIR=$(__PROJROOT)\oak\target\$(__CPUDIR) | |
193 | _RELEASELIBDIR=$(__PROJROOT)\ddk\lib\$(__CPUDIR) | |
194 | !ELSEIF "$(RELEASETYPE)" == "PLATFORM" | |
195 | _RELEASEDIR=$(_TARGETPLATROOT)\target\$(__CPUDIR) | |
196 | _RELEASELIBDIR=$(_TARGETPLATROOT)\lib\$(__CPUDIR) | |
197 | !ELSEIF "$(RELEASETYPE)" == "LOCAL" | |
198 | _RELEASEDIR=$(_OBJDIR) | |
199 | _RELEASELIBDIR=$(_OBJDIR) | |
200 | !ELSEIF "$(RELEASETYPE)" == "CUSTOM" | |
201 | _RELEASEDIR=$(TARGETPATH) | |
202 | _RELEASELIBDIR=$(TARGETPATH) | |
203 | !ELSE | |
204 | _RELEASEDIR=$(__PROJROOT)\oak\target\$(__CPUDIR) | |
205 | _RELEASELIBDIR=$(__PROJROOT)\oak\lib\$(__CPUDIR) | |
206 | !ENDIF | |
207 | ||
208 | ||
209 | # | |
210 | # Include the list of object files (defined as the OBJECTS macro) that was | |
211 | # built by BUILD program, using the SOURCES= macro defined in the sources. | |
212 | # file. Use macro substitution to build the supported target objects. | |
213 | # | |
214 | ||
215 | !IFNDEF NOINCLUDEOBJMAC | |
216 | !INCLUDE $(_OBJDIR)\_objects.mac | |
217 | !ENDIF | |
218 | ||
219 | !IF "$(_TGTOS)"=="CE" | |
220 | !IFNDEF LINKER_SUBSYSTEM | |
221 | LINKER_SUBSYSTEM=-subsystem:windowsce,4.20 | |
222 | !ENDIF | |
223 | !ENDIF | |
224 | ||
225 | !IFDEF RCADDNULL | |
226 | RCFLAGS=-n | |
227 | !ELSE | |
228 | RCFLAGS= | |
229 | !ENDIF | |
230 | ||
231 | !IFDEF DLLENTRY | |
232 | DLLENTRYOPTION=-entry:$(DLLENTRY) | |
233 | !ELSE | |
234 | # Default DLLENTRY for CE is broken. Provide a correct default entry | |
235 | !IF "$(_TGTOS)"=="CE" | |
236 | DLLENTRYOPTION=-entry:_DllMainCRTStartup | |
237 | !ELSE | |
238 | DLLENTRYOPTION= | |
239 | !ENDIF | |
240 | !ENDIF | |
241 | ||
242 | !IFDEF EXEENTRY | |
243 | EXEENTRYOPTION=-entry:$(EXEENTRY) | |
244 | !ELSE | |
245 | # Default EXEENTRY for CE is broken. Provide a correct default entry | |
246 | !IF "$(_TGTOS)"=="CE" | |
247 | EXEENTRYOPTION=-entry:WinMainCRTStartup | |
248 | !ELSE | |
249 | EXEENTRYOPTION= | |
250 | !ENDIF | |
251 | !ENDIF | |
252 | ||
253 | !IFDEF NODLLENTRY | |
254 | DLLENTRYOPTION=-NOENTRY | |
255 | !ENDIF | |
256 | ||
257 | ||
258 | # | |
259 | # If BUILDMSG is not defined, the define it as the empty string to make | |
260 | # the conditionals easier to write. | |
261 | # | |
262 | ||
263 | !IFNDEF BUILDMSG | |
264 | BUILDMSG= | |
265 | !ENDIF | |
266 | ||
267 | !IF "$(_TGTCPUFAMILY)"=="x86" | |
268 | TARGETOBJFILES=$(x86_OBJECTS) | |
269 | !ELSEIF "$(_TGTCPUFAMILY)"=="MIPS" | |
270 | TARGETOBJFILES=$(MIPS_OBJECTS) | |
271 | !ELSEIF "$(_TGTCPUFAMILY)"=="SH" | |
272 | TARGETOBJFILES=$(SH_OBJECTS) | |
273 | !ELSEIF "$(_TGTCPUFAMILY)"=="ARM" | |
274 | TARGETOBJFILES=$(ARM_OBJECTS) | |
275 | !ENDIF | |
276 | ||
277 | !IF DEFINED(LINT_TYPE) | |
278 | ||
279 | !IF "$(LINT_TYPE)" == "all" | |
280 | !ELSEIF "$(LINT_TYPE)" == "lob" | |
281 | !ELSEIF "$(LINT_TYPE)" == "ind" | |
282 | !ELSE | |
283 | !ERROR LINT_TYPE must be all | lob | ind | |
284 | !ENDIF | |
285 | ||
286 | !IF !DEFINED(LINT_PATH) | |
287 | !ERROR LINT_PATH not set | |
288 | !ENDIF | |
289 | ||
290 | !IF !DEFINED(LINT_APP) | |
291 | !ERROR LINT_APP not set | |
292 | !ENDIF | |
293 | ||
294 | !IF !DEFINED(LINT_OUTPUT) | |
295 | LINT_OUTPUT=$(TARGETNAME) | |
296 | !ENDIF | |
297 | ||
298 | !IF !DEFINED(LINT_EXT) | |
299 | LINT_EXT=Lint | |
300 | !ENDIF | |
301 | ||
302 | !IF "$(LINT_TYPE)" == "all" | |
303 | LINT_TARGETLOBFILES=$(_OBJDIR)\$(LINT_OUTPUT).$(LINT_EXT) | |
304 | !ELSE | |
305 | # Don't use TARGETOBJFILES because that'll pull in the precompiled | |
306 | # header object file which will cause an error because there's | |
307 | # no inference rule that matches | |
308 | ||
309 | !IF "$(_TGTCPUFAMILY)"=="x86" | |
310 | LINT_TARGETLOBFILES=$(x86_OBJECTS:.obj=.lob) | |
311 | !ELSEIF "$(_TGTCPUFAMILY)"=="MIPS" | |
312 | LINT_TARGETLOBFILES=$(MIPS_OBJECTS:.obj=.lob) | |
313 | !ELSEIF "$(_TGTCPUFAMILY)"=="SH" | |
314 | LINT_TARGETLOBFILES=$(SH_OBJECTS:.obj=.lob) | |
315 | !ELSEIF "$(_TGTCPUFAMILY)"=="ARM" | |
316 | LINT_TARGETLOBFILES=$(ARM_OBJECTS:.obj=.lob) | |
317 | !ENDIF | |
318 | !ENDIF | |
319 | !ELSE | |
320 | LINT_TARGETLOBFILES= | |
321 | !ENDIF | |
322 | ||
323 | ||
324 | !IF ("$(TARGETTYPE)" == "LIBRARY") || ("$(TARGETTYPE)" == "DYNLINK") | |
325 | TARGETLIBFILES=$(_RELEASELIBDIR)\$(TARGETNAME).lib | |
326 | !ENDIF | |
327 | ||
328 | TARGETEXEFILES= | |
329 | !IF "$(NOLINK)" == "" | |
330 | ! IF "$(TARGETTYPE)" == "DYNLINK" | |
331 | TARGETEXEFILES=$(_RELEASEDIR)\$(TARGETNAME).dll | |
332 | ! ELSE | |
333 | ! IF "$(TARGETTYPE)" == "PROGRAM" | |
334 | TARGETEXEFILES=$(_RELEASEDIR)\$(TARGETNAME).exe | |
335 | ! ENDIF | |
336 | ! ENDIF | |
337 | !ENDIF | |
338 | ||
339 | # | |
340 | # Standard inference rules for C files that produce object files. | |
341 | # | |
342 | .SUFFIXES: .cxx .cpp .c .asm .s .src .rc .obj .ire .res .h .odl .tlb .i | |
343 | ||
344 | !IFDEF PASS0ONLY | |
345 | # Clear the suffixes list so we can ensure only pass zero stuff will be built | |
346 | .SUFFIXES: | |
347 | !ENDIF | |
348 | ||
349 | !IFNDEF NOPASS0 | |
350 | # Pass Zero Inference Rules: IDL files (MIDL) and MC files | |
351 | .SUFFIXES: .idl .mc .odl .tdl .asn .thk | |
352 | ||
353 | !IF "$(_TGTCPUFAMILY)"=="x86" | |
354 | PASS0_OBJECTS=$(PASS0_x86_OBJECTS) | |
355 | !ELSEIF "$(_TGTCPUFAMILY)"=="MIPS" | |
356 | PASS0_OBJECTS=$(PASS0_MIPS_OBJECTS) | |
357 | !ELSEIF "$(_TGTCPUFAMILY)"=="SH" | |
358 | PASS0_OBJECTS=$(PASS0_SH_OBJECTS) | |
359 | !ELSEIF "$(_TGTCPUFAMILY)"=="ARM" | |
360 | PASS0_OBJECTS=$(PASS0_ARM_OBJECTS) | |
361 | !ENDIF | |
362 | ||
363 | !ENDIF # IFNDEF NOPASS0 | |
364 | ||
365 | !IFDEF USE_OLE_MC | |
366 | MC = mc -o | |
367 | !ELSE | |
368 | MC = mc | |
369 | !ENDIF | |
370 | ||
371 | !IF "$(PRECOMPILED_OPTION)" == "" | |
372 | ! IF "$(PRECOMPILED_INCLUDE)" != "" | |
373 | ! IF "$(PRECOMPILED_INCLUDE)" != "$(PRECOMPILED_INCLUDE:.hxx=)" | |
374 | PRECOMPILED_CXX=1 | |
375 | ! ENDIF | |
376 | ! IF "$(PRECOMPILED_INCLUDE)" != "$(PRECOMPILED_INCLUDE:.cxx=)" | |
377 | PRECOMPILED_CXX=1 | |
378 | ! ENDIF | |
379 | ! IF "$(PRECOMPILED_INCLUDE)" != "$(PRECOMPILED_INCLUDE:.cpp=)" | |
380 | PRECOMPILED_CXX=1 | |
381 | ! ENDIF | |
382 | ! IF "$(PRECOMPILED_PCH)" == "" | |
383 | PRECOMPILED_PCH=$(PRECOMPILED_INCLUDE:.hxx=.pch) | |
384 | PRECOMPILED_PCH=$(PRECOMPILED_PCH:.h=.pch) | |
385 | PRECOMPILED_PCH=$(PRECOMPILED_PCH:.cxx=.pch) | |
386 | PRECOMPILED_PCH=$(PRECOMPILED_PCH:.cpp=.pch) | |
387 | PRECOMPILED_PCH=$(PRECOMPILED_PCH:.c=.pch) | |
388 | PRECOMPILED_PCH=$(PRECOMPILED_PCH:..\=) | |
389 | ! ENDIF | |
390 | ! IF "$(PRECOMPILED_OBJ)" == "" | |
391 | PRECOMPILED_OBJ=$(PRECOMPILED_PCH:.pch=.obj) | |
392 | ! ENDIF | |
393 | ! ENDIF | |
394 | !ENDIF | |
395 | ||
396 | !IF "$(PRECOMPILED_OPTION)" == "" | |
397 | ! IF "$(PRECOMPILED_INCLUDE)" != "" | |
398 | ! IF "$(PRECOMPILED_PCH)" != "" | |
399 | HEADERFILE=/Fp$(_OBJDIR)\$(PRECOMPILED_PCH) | |
400 | ! ENDIF | |
401 | ! IF "$(PRECOMPILED_OBJ)" != "" | |
402 | HEADEROBJNAME=$(_OBJDIR)\$(PRECOMPILED_OBJ) | |
403 | HEADEROBJ=/Fo$(MAKEDIR)\$(HEADEROBJNAME) | |
404 | ! ENDIF | |
405 | ! IF "$(PRECOMPILED_CXX)" == "" | |
406 | PRECOMPILED=/Yu$(PRECOMPILED_INCLUDE:..\=) $(HEADERFILE) | |
407 | PRECOMPILED_CXX= | |
408 | ! ELSE | |
409 | PRECOMPILED= | |
410 | PRECOMPILED_CXX=/Yu$(PRECOMPILED_INCLUDE:..\=) $(HEADERFILE) | |
411 | ! ENDIF | |
412 | PRECOMPILED_TARGET=$(_OBJDIR)\$(PRECOMPILED_PCH) | |
413 | ! ELSE | |
414 | ! IF "$(PRECOMPILED_INCLUDE)" != "" | |
415 | ! IF "$(PRECOMPILED_CXX)" == "" | |
416 | PRECOMPILED=/Yu$(PRECOMPILED_INCLUDE) | |
417 | PRECOMPILED_CXX= | |
418 | ! ELSE | |
419 | PRECOMPILED= | |
420 | PRECOMPILED_CXX=/Yu$(PRECOMPILED_INCLUDE) | |
421 | ! ENDIF | |
422 | ! ENDIF | |
423 | ! ENDIF | |
424 | !ELSE | |
425 | ! IF "$(PRECOMPILED_CXX)" == "" | |
426 | PRECOMPILED=$(PRECOMPILED_OPTION) | |
427 | PRECOMPILED_CXX= | |
428 | ! ELSE | |
429 | PRECOMPILED= | |
430 | PRECOMPILED_CXX=$(PRECOMPILED_OPTION) | |
431 | ! ENDIF | |
432 | PRECOMPILED_TARGET=$(PRECOMPILED_TARGET) | |
433 | ! IF "$(PRECOMPILED_TARGET)" != "" | |
434 | HEADERFILE=/Fp$(PRECOMPILED_TARGET) | |
435 | ! ENDIF | |
436 | ! IF "$(PRECOMPILED_OBJ)" != "" | |
437 | HEADEROBJNAME=$(PRECOMPILED_OBJ) | |
438 | HEADEROBJ=/Fo$(HEADEROBJNAME) | |
439 | ! ENDIF | |
440 | !ENDIF | |
441 | ||
442 | !IF ("$(PRECOMPILED_CXX)" == "") && ("$(USECXX_FLAG)" == "") | |
443 | PRECOMPILED_FLAG=$(PRECOMPILED_FLAG) /Tc | |
444 | !ELSE | |
445 | PRECOMPILED_FLAG=$(PRECOMPILED_FLAG) /Tp | |
446 | !ENDIF | |
447 | ||
448 | !IF "$(NTNOPCH)" != "" | |
449 | PRECOMPILED= | |
450 | PRECOMPILED_CXX= | |
451 | !ENDIF | |
452 | ||
453 | # make sure we include the precompiled object if we have one | |
454 | TARGETOBJFILES=$(TARGETOBJFILES) $(HEADEROBJNAME) | |
455 | ||
456 | # | |
457 | # Standard list of targets: all, clean and loc. all is the default target. | |
458 | # | |
459 | ||
460 | !IF "$(SKIPBUILD)" != "" | |
461 | ||
462 | #empty all: target to not build anything for the current subdir | |
463 | all: | |
464 | ||
465 | ||
466 | !ELSE IFNDEF PASS0ONLY | |
467 | ||
468 | all: \ | |
469 | !IFNDEF NOINCLUDEOBJMAC | |
470 | $(_OBJDIR)\_objects.mac \ | |
471 | !ENDIF | |
472 | $(WINCETARGETFILE0) \ | |
473 | $(PASS0_OBJECTS) \ | |
474 | $(PRECOMPILED_TARGET) \ | |
475 | $(HEADEROBJNAME) \ | |
476 | $(TARGETOBJFILES) \ | |
477 | !IF DEFINED(LINT_TYPE) && ( "$(LINT_TYPE)" == "lob" ) | |
478 | $(LINT_TARGETLOBFILES) \ | |
479 | !ENDIF | |
480 | $(TARGETLIBFILES) \ | |
481 | !IF DEFINED(LINT_TYPE) && ( "$(LINT_TYPE)" != "lob" ) | |
482 | $(LINT_TARGETLOBFILES) \ | |
483 | !ENDIF | |
484 | $(TARGETEXEFILES) \ | |
485 | $(WINCETARGETFILES) | |
486 | !IF "$(BUILDMSG)" != "" | |
487 | -@echo $(BUILDMSG) | |
488 | !ENDIF | |
489 | ||
490 | !ELSE # PASS0ONLY | |
491 | ||
492 | all: \ | |
493 | $(WINCETARGETFILE0) \ | |
494 | $(PASS0_OBJECTS) | |
495 | !IF "$(BUILDMSG)" != "" | |
496 | -@echo $(BUILDMSG) | |
497 | !ENDIF | |
498 | ||
499 | !ENDIF # PASS0ONLY | |
500 | ||
501 | ||
502 | !IFNDEF PASS0_HEADERDIR | |
503 | PASS0_HEADERDIR=. | |
504 | !ENDIF | |
505 | ||
506 | ! IFNDEF PASS0_SOURCEDIR | |
507 | PASS0_SOURCEDIR=. | |
508 | ! ENDIF | |
509 | ||
510 | ! IFNDEF MIDL_UUIDDIR | |
511 | MIDL_UUIDDIR=$(PASS0_SOURCEDIR) | |
512 | ! ENDIF | |
513 | ||
514 | !IFNDEF MIDL_OPTIMIZATION | |
515 | MIDL_OPTIMIZATION=-Oicf | |
516 | !ENDIF | |
517 | ||
518 | dummy: | |
519 | -@echo . | |
520 | ||
521 | expunge: cleantgt | |
522 | delnode /q obj | |
523 | !IF "$(BUILDMSG)" != "" | |
524 | -@echo $(BUILDMSG) | |
525 | !ENDIF | |
526 | ||
527 | clean: cleantgt cleanobj | |
528 | !IF "$(BUILDMSG)" != "" | |
529 | -@echo $(BUILDMSG) | |
530 | !ENDIF | |
531 | ||
532 | cleanobj: | |
533 | -@del /q $(_OBJDIR)\*.obj | |
534 | -@del /q $(_OBJDIR)\*.cod | |
535 | !IFDEF LINT_TYPE | |
536 | -@del /q $(_OBJDIR)\*.lob | |
537 | -@del /q $(_OBJDIR)\$(LINT_OUTPUT).$(LINT_EXT) | |
538 | !ENDIF | |
539 | ||
540 | cleantgt: | |
541 | !IF "$(TARGETTYPE)" == "DYNLINK" | |
542 | -@del $(_RELEASELIBDIR)\$(TARGETNAME).lib | |
543 | -@del $(_RELEASELIBDIR)\$(TARGETNAME).exp | |
544 | -@del $(_RELEASEDIR)\$(TARGETNAME).map | |
545 | -@del $(_RELEASEDIR)\$(TARGETNAME).dll | |
546 | !ELSEIF "$(TARGETTYPE)" == "PROGRAM" | |
547 | -@del $(_RELEASEDIR)\$(TARGETNAME).map | |
548 | -@del $(_RELEASEDIR)\$(TARGETNAME).exe | |
549 | !ELSEIF "$(TARGETTYPE)" == "LIBRARY" | |
550 | -@del $(_RELEASELIBDIR)\$(TARGETNAME).lib | |
551 | !ENDIF | |
552 | ||
553 | # | |
554 | # Added for internationalization | |
555 | # | |
556 | !IF "$(IRC_DEPENDENT)" != "0" && "$(IRC_DEPENDENT)" != "" | |
557 | !IF "$(LOCALE)" != "0411" | |
558 | $(_CPUINDPATH)\$(TARGETNAME).ire : resource\0409\internl.irc | |
559 | echo > $(_CPUINDPATH)\$(TARGETNAME).ire | |
560 | !ELSE | |
561 | ||
562 | $(_CPUINDPATH)\$(TARGETNAME).ire : resource\0411\internl.irc | |
563 | echo > $(_CPUINDPATH)\$(TARGETNAME).ire | |
564 | !ENDIF | |
565 | !ENDIF | |
566 | ||
567 | # | |
568 | # Figure out the include path | |
569 | # | |
570 | ||
571 | # Get default sdk library and include path | |
572 | !IF "$(_TGTOS)" == "NTANSI" || "$(_TGTOS)" == "NT" | |
573 | INCLUDEPATH=$(_SDKROOT)\NT\inc;$(_SDKROOT)\MFC\include | |
574 | LIBPATH=$(_SDKROOT)\NT\lib;$(_SDKROOT)\MFC\lib | |
575 | !ELSE | |
576 | INCLUDEPATH=$(_SDKROOT)\$(_TGTOS)\inc | |
577 | LIBPATH=$(_SDKROOT)\$(_TGTOS)\lib | |
578 | !ENDIF | |
579 | ||
580 | # Add atl if the user asked for it (defaults to ATL 2.1) | |
581 | !IF "$(WINCEATL)" == "1" | |
582 | INCLUDEPATH=$(_SDKROOT)\atl\inc;$(INCLUDEPATH) | |
583 | !ENDIF | |
584 | ||
585 | # Add ATL 3.0 if user asked for it | |
586 | !IF "$(WINCEATL30)" == "1" | |
587 | INCLUDEPATH=$(_WINCEROOT)\others\atl\include;$(INCLUDEPATH) | |
588 | !ENDIF | |
589 | ||
590 | # Add MFC if user asked for it | |
591 | !IF "$(WINCEMFC)" == "1" | |
592 | INCLUDEPATH=$(_WINCEROOT)\others\mfc\include;$(INCLUDEPATH) | |
593 | !ENDIF | |
594 | ||
595 | # Add in any specific additions in the sources file | |
596 | !IF "$(EXT_INCLUDES)" != "" | |
597 | EXT_INCLUDES = $(EXT_INCLUDES: =) | |
598 | INCLUDEPATH=$(EXT_INCLUDES);$(INCLUDEPATH) | |
599 | !ENDIF | |
600 | ||
601 | # Add in the dependent tree based includes from sources.gen | |
602 | !IF "$(_TGTOS)"=="CE" | |
603 | !IF "$(WINCEOEM)" == "1" | |
604 | INCLUDEPATH=$(_OEMINCPATH);$(INCLUDEPATH) | |
605 | !ELSE | |
606 | INCLUDEPATH=$(_ISVINCPATH);$(INCLUDEPATH) | |
607 | !ENDIF | |
608 | !ENDIF | |
609 | ||
610 | # Add in any specific additions in the sources file | |
611 | !IF "$(INCLUDES)" != "" | |
612 | INCLUDES = $(INCLUDES: =) | |
613 | INCLUDEPATH=$(INCLUDES);$(INCLUDEPATH) | |
614 | !ENDIF | |
615 | ||
616 | INCLUDEPATH=$(INCLUDEPATH:;;=;) | |
617 | ||
618 | !IF ("$(WINCEDEBUG)" == "retail") | |
619 | !IFDEF DISABLE_OPTIMIZER | |
620 | CDEBUG_FLAGS=-Od | |
621 | !ELSE | |
622 | CDEBUG_DEFINES= | |
623 | CDEBUG_FLAGS=-Oxs | |
624 | !ENDIF | |
625 | !ELSE | |
626 | CDEBUG_DEFINES=-DDEBUG=1 | |
627 | !IF "$(_TGTOS)" == "NT" || "$(_TGTOS)" == "NTANSI" | |
628 | CDEBUG_DEFINES=$(CDEBUG_DEFINES) -D_DEBUG=1 | |
629 | !ENDIF | |
630 | CDEBUG_FLAGS=-Od | |
631 | !ENDIF | |
632 | ||
633 | !IF "$(WINCE_LMEM_DEBUG)" != "" | |
634 | CDEBUG_DEFINES=$(CDEBUG_DEFINES) -DLMEM_DEBUG=1 | |
635 | !ENDIF | |
636 | ||
637 | !IF "$(TARGET_PDB_NAME)" == "" | |
638 | !IF "$(TARGETTYPE)" == "LIBRARY" | |
639 | TARGET_PDB_NAME = $(_RELEASELIBDIR)\$(TARGETNAME).pdb | |
640 | !ELSE | |
641 | TARGET_PDB_NAME = $(_RELEASEDIR)\$(TARGETNAME).pdb | |
642 | !ENDIF | |
643 | !ENDIF | |
644 | ||
645 | # Pass name of PDB file to both compiler and linker | |
646 | CDEBUG_FLAGS=$(CDEBUG_FLAGS) -GF -Zi -Fd$(TARGET_PDB_NAME) | |
647 | ||
648 | !IF "$(WINCEPROFILE)" == "1" | |
649 | LINKER_DEBUG=-debug -debugtype:both -incremental:no | |
650 | CDEBUG_DEFINES=$(CDEBUG_DEFINES) -DWINCEPROFILE | |
651 | !ELSE | |
652 | LINKER_DEBUG=-debug -debugtype:cv -incremental:no | |
653 | !ENDIF | |
654 | ||
655 | !IF "$(TGTCPUISANAME)"=="ARMV4" | |
656 | LINKER_DEBUG=$(LINKER_DEBUG) /ARMPADCODE | |
657 | !ENDIF | |
658 | ||
659 | !IF "$(WINCEMEMTRACK)" == "1" | |
660 | CDEFINES=$(CDEFINES) -DMEMTRACKING=1 | |
661 | !ENDIF | |
662 | ||
663 | !IF "$(WINCESHIP)" != "" | |
664 | CDEBUG_DEFINES=$(CDEBUG_DEFINES) -DSHIP_BUILD | |
665 | !ENDIF | |
666 | ||
667 | !IF "$(WINCE_OVERRIDE_CFLAGS)" != "" | |
668 | CDEBUG_FLAGS=$(WINCE_OVERRIDE_CFLAGS) | |
669 | !ENDIF | |
670 | ||
671 | !IF "$(WINCE_LINKER_DEBUG)" != "" | |
672 | LINKER_DEBUG=$(WINCE_LINKER_DEBUG) | |
673 | !ENDIF | |
674 | ||
675 | !IFNDEF EXEBASE | |
676 | !IF "$(_TGTOS)"=="CE" | |
677 | EXEBASE=0x00010000 | |
678 | !ELSE | |
679 | EXEBASE=0x01000000 | |
680 | !ENDIF | |
681 | !ENDIF | |
682 | ||
683 | !IFNDEF DLLBASE | |
684 | DLLBASE=0x10000000 | |
685 | !ENDIF | |
686 | ||
687 | !IFDEF CPPBROWSE | |
688 | #!IFNDEF NO_AUTOMATIC_BSC | |
689 | !message Build Browse Files | |
690 | CDEBUG_FLAGS=$(CDEBUG_FLAGS) /FR$(TEMP)\$(@B).sbr | |
691 | #!ENDIF | |
692 | !ENDIF | |
693 | ||
694 | !IF "$(WINCE_ELIM_DEAD_CODE)" == "1" || "$(WINCEDEBUG)" == "retail" | |
695 | CONLY_FLAGS=$(CONLY_FLAGS) /Gy | |
696 | LINKER_DEBUG=$(LINKER_DEBUG) /opt:ref | |
697 | !ENDIF | |
698 | ||
699 | !IF "$(WINCE_VERBOSE_LINK)" == "1" | |
700 | LINKER_DEBUG=$(LINKER_DEBUG) /verbose | |
701 | !ENDIF | |
702 | ||
703 | TGTCPUDEFINES=-D$(_TGTCPUFAMILY) | |
704 | !IF "$(TGTCPUISANAME)" != "$(_TGTCPUFAMILY)" | |
705 | TGTCPUDEFINES = $(TGTCPUDEFINES) -D$(TGTCPUISANAME) | |
706 | !ENDIF | |
707 | !IF "$(_TGTCPU)" != "$(TGTCPUISANAME)" | |
708 | TGTCPUDEFINES=$(TGTCPUDEFINES) -D$(_TGTCPU) | |
709 | !ENDIF | |
710 | ||
711 | # MIPS16 is also a MIPSII | |
712 | !IF "$(_TGTCPU)" == "MIPS16" | |
713 | TGTCPUDEFINES=$(TGTCPUDEFINES) -DMIPSII | |
714 | !ENDIF | |
715 | ||
716 | !IF "$(_TGTCPUFAMILY)" == "x86" | |
717 | TGTCPUDEFINES=$(TGTCPUDEFINES) -D_X86_ | |
718 | ||
719 | !ELSEIF "$(_TGTCPUFAMILY)" == "SH" | |
720 | TGTCPUDEFINES=$(TGTCPUDEFINES) -D_SHX_ -DSHx | |
721 | ||
722 | !ELSEIF "$(_TGTCPUFAMILY)" == "ARM" | |
723 | TGTCPUDEFINES=$(TGTCPUDEFINES) -D_ARM_ | |
724 | !IF "$(TGTCPUISANAME)"=="ARMV4T" | |
725 | TGTCPUDEFINES=$(TGTCPUDEFINES) -D_THUMB_ | |
726 | !ENDIF | |
727 | ||
728 | !ELSEIF "$(_TGTCPUFAMILY)"=="MIPS" | |
729 | TGTCPUDEFINES=$(TGTCPUDEFINES) -D_MIPS_ -DR4000 | |
730 | ||
731 | !IF "$(_TGTCPUOPTIONS)" == "_FP" | |
732 | MIPS_HAS_FPU=1 | |
733 | !ENDIF | |
734 | ||
735 | !IFDEF MIPS_HAS_FPU | |
736 | CDEFINES=$(CDEFINES) $(CFPUDEFINES) | |
737 | ADEFINES=$(ADEFINES) $(AFPUDEFINES) | |
738 | !ENDIF | |
739 | ||
740 | !ENDIF # _TGTCPUFAMILY == MIPS | |
741 | ||
742 | #collect all the defines together | |
743 | CDEFINES=-DWIN32 -DSTRICT $(TGTCPUDEFINES) $(CDEBUG_DEFINES) $(CDEFINES) | |
744 | !IF "$(WINCEOEM)"=="1" | |
745 | CDEFINES=-DWINCEOEM -DWINCEINTERNAL $(CDEFINES) | |
746 | !ENDIF | |
747 | !IF "$(TARGETTHREADMODEL)" == "MT" | |
748 | CDEFINES=-D_MT $(CDEFINES) | |
749 | !ENDIF | |
750 | !IF "$(WINCEEMULATION)"=="1" | |
751 | CDEFINES=-D_WIN32_WCE_EMULATION $(CDEFINES) | |
752 | !ENDIF | |
753 | !IF "$(_TGTOS)" == "NTANSI" | |
754 | CDEFINES=-DUNDER_NT $(CDEFINES) | |
755 | !ELSEIF "$(_TGTOS)" == "NT" | |
756 | CDEFINES=-DUNDER_NT $(CDEFINES) | |
757 | !ELSEIF "$(_TGTOS)" == "CE" | |
758 | CDEFINES=-DUNDER_CE -D_WIN32_WCE=420 $(CDEFINES) | |
759 | !ENDIF | |
760 | !IF "$(NOT_UNICODE)" != "1" && "$(_TGTOS)" != "NTANSI" | |
761 | CDEFINES=-DUNICODE -D_UNICODE $(CDEFINES) | |
762 | !ENDIF | |
763 | ||
764 | #collect all include paths together | |
765 | !IF "$(INCLUDEPATH)" == "" || "$(INCLUDEPATH)" == " " | |
766 | CINCLUDES=-I$(_TGTCPUFAMILY)\ -I. | |
767 | !ELSE | |
768 | CINCLUDES=-I$(_TGTCPUFAMILY)\ -I. -I$(INCLUDEPATH:;= -I) | |
769 | !ENDIF | |
770 | ||
771 | !IFDEF LINT_TYPE | |
772 | LINT_INCLUDES=$(CINCLUDES:-I=-i) | |
773 | !ENDIF | |
774 | ||
775 | ||
776 | # -- Added for WINCE-INTERNATIONAL | |
777 | # | |
778 | # set some flags for INTERNATIONAL module | |
779 | !IF "$(LOCALE)" != "" | |
780 | # | |
781 | # For keyboard module. | |
782 | # | |
783 | !IF "$(LOCALE)" == "0411" | |
784 | !IF "$(_TGTKEYBOARD)" == "JAPAN" | |
785 | CDEFINES=$(CDEFINES) -DKEYBD_JAPAN | |
786 | RDEFINES=$(RDEFINES) -DKEYBD_JAPAN | |
787 | !ELSEIF "$(_TGTKEYBOARD)" == "NONE" | |
788 | CDEFINES=$(CDEFINES) -DKEYBD_NONE | |
789 | RDEFINES=$(RDEFINES) -DKEYBD_NONE | |
790 | !ENDIF | |
791 | !ENDIF | |
792 | # | |
793 | # For LOCALE specific flag. Default code page is 437 | |
794 | # | |
795 | !IF "$(LOCALE)" == "0411" | |
796 | CODEPAGE=932 | |
797 | !ELSE | |
798 | CODEPAGE=1252 | |
799 | !ENDIF | |
800 | # | |
801 | # set CFLAGS,CINLUDE and RDEFINES for INTERNATIONAL module | |
802 | # | |
803 | CDEFINES=$(CDEFINES) -DINTERNATIONAL -DL$(LOCALE) -DINTLMSG_CODEPAGE=$(CODEPAGE) | |
804 | CINCLUDES=$(CINCLUDES) -I.\Resource\$(LOCALE) | |
805 | RDEFINES=$(RDEFINES) -DINTERNATIONAL -DL$(LOCALE) -l 409 -c $(CODEPAGE) | |
806 | !ENDIF | |
807 | # | |
808 | # End WINCE-INTERNATIONAL stuff | |
809 | # | |
810 | ||
811 | ||
812 | # set CFLAGS | |
813 | !IF "$(WARNLEVEL)" != "" | |
814 | CFLAGS=-W$(WARNLEVEL) -c $(CINCLUDES) $(CDEBUG_FLAGS) $(CDEFINES) | |
815 | !ELSE | |
816 | CFLAGS=-W3 -c $(CINCLUDES) $(CDEBUG_FLAGS) $(CDEFINES) | |
817 | !ENDIF | |
818 | !IF "$(WINCECOD)" != "" | |
819 | CFLAGS=$(CFLAGS) -FAsc -Fa$(@R).cod | |
820 | !ENDIF | |
821 | !IF "$(WARNISERROR)"=="1" | |
822 | # Turn off WX when running prefast, it throws some warnings. | |
823 | !IF "$(PREFAST_ADD_PATH)" == "" | |
824 | CFLAGS=$(CFLAGS) -WX | |
825 | !ENDIF | |
826 | !ENDIF | |
827 | ||
828 | # setup host compiler | |
829 | !IF "$(_HOSTCPUTYPE)"=="i386" | |
830 | !IF "$(_TGTCPUFAMILY)"=="SH" | |
831 | HOSTCOMPILER=clsh | |
832 | !ELSEIF "$(_TGTCPUFAMILY)"=="MIPS" | |
833 | HOSTCOMPILER=clmips | |
834 | !ELSEIF "$(_TGTCPUFAMILY)"=="ARM" | |
835 | !IF "$(TGTCPUISANAME)"!="ARMV4T" | |
836 | HOSTCOMPILER=clarm | |
837 | !ELSE | |
838 | HOSTCOMPILER=clthumb | |
839 | !ENDIF | |
840 | !ELSE | |
841 | HOSTCOMPILER=cl386 | |
842 | !ENDIF | |
843 | !ELSEIF "$(_HOSTCPUTYPE)"=="mips" | |
844 | HOSTCOMPILER=clmips | |
845 | !ENDIF | |
846 | ||
847 | #resource compiler stuff | |
848 | !IF "$(_TGTOS)" == "CE" | |
849 | RDEFINES=$(_TGTCPUDEFINES) -DUNDER_CE $(RDEFINES) | |
850 | !IF "$(WINCEDEBUG)"=="debug" | |
851 | RDEFINES=$(RDEFINES) -DDEBUG | |
852 | !ENDIF | |
853 | !IF "$(WINCEOEM)"=="1" | |
854 | RDEFINES=-DWINCEINTERNAL $(RDEFINES) | |
855 | !ENDIF | |
856 | !ELSE | |
857 | RDEFINES=$(_TGTCPUDEFINES) -DUNDER_NT $(RDEFINES) | |
858 | !ENDIF | |
859 | RCOMPILER=rc -r $(CINCLUDES) $(RDEFINES) | |
860 | ||
861 | #midl compiler stuff | |
862 | MIDLCOMPILER=midl -nologo | |
863 | MKTYPLIBFLAGS=/win32 /mktyplib203 | |
864 | ||
865 | # preprocessing is always done on the host | |
866 | DEFPREPROCESS=$(HOSTCOMPILER) -EP $(CDEFINES) $(CINCLUDES) | |
867 | ||
868 | !IF "$(_TGTOS)" == "NT" || "$(_TGTOS)" == "NTANSI" | |
869 | !IF "$(TARGETTYPE)" == "PROGRAM" | |
870 | !IF "$(TARGETTHREADMODEL)" != "MT" | |
871 | !IF ("$(WINCEDEBUG)" == "retail") | |
872 | STARTLIB=libc.lib | |
873 | !ELSE | |
874 | STARTLIB=libcd.lib | |
875 | !ENDIF | |
876 | !ELSE | |
877 | !IF ("$(WINCEDEBUG)" == "retail") | |
878 | STARTLIB=libcmt.lib | |
879 | !ELSE | |
880 | STARTLIB=libcmtd.lib | |
881 | !ENDIF | |
882 | !ENDIF | |
883 | !ELSE | |
884 | !IF ("$(WINCEDEBUG)" == "retail") | |
885 | STARTLIB=msvcrt.lib | |
886 | !ELSE | |
887 | STARTLIB=msvcrtd.lib | |
888 | !ENDIF | |
889 | !ENDIF | |
890 | TARGETLIBS=$(TARGETLIBS) \ | |
891 | $(_SDKROOT)\NT\lib\$(_TGTCPUFAMILY)\$(STARTLIB) \ | |
892 | $(_SDKROOT)\NT\lib\$(_TGTCPUFAMILY)\oldnames.lib \ | |
893 | $(_SDKROOT)\NT\lib\$(_TGTCPUFAMILY)\kernel32.lib \ | |
894 | $(_SDKROOT)\NT\lib\$(_TGTCPUFAMILY)\advapi32.lib \ | |
895 | $(_SDKROOT)\NT\lib\$(_TGTCPUFAMILY)\gdi32.lib \ | |
896 | $(_SDKROOT)\NT\lib\$(_TGTCPUFAMILY)\user32.lib \ | |
897 | $(_SDKROOT)\NT\lib\$(_TGTCPUFAMILY)\winmm.lib | |
898 | !ELSE | |
899 | !IFNDEF NOLIBC | |
900 | TARGETLIBS=$(TARGETLIBS) $(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\corelibc.lib | |
901 | !ENDIF | |
902 | !ENDIF | |
903 | ||
904 | !IF "$(TGTCPUISANAME)"=="SH4" | |
905 | MACHINEOPTION=-machine:SH4 | |
906 | !ELSEIF "$(_TGTCPUFAMILY)"=="SH" | |
907 | !IF "$(ENABLEDSP)"=="1" || "$(_TGTCPUOPTIONS)"=="_DSP" | |
908 | MACHINEOPTION=-machine:SH3DSP | |
909 | !ELSE | |
910 | MACHINEOPTION=-machine:SH3 | |
911 | !ENDIF | |
912 | !ELSEIF "$(TGTCPUISANAME)" == "MIPSII" | |
913 | MACHINEOPTION=-machine:MIPS | |
914 | !ELSEIF "$(TGTCPUISANAME)" == "MIPS16" | |
915 | MACHINEOPTION=-machine:MIPS16 | |
916 | !ELSEIF "$(TGTCPUISANAME)" == "MIPSIV" | |
917 | MACHINEOPTION=-machine:MIPSFPU | |
918 | !ELSEIF "$(TGTCPUISANAME)" == "ARMV4T" || "$(TGTCPUISANAME)" == "ARMV4I" | |
919 | MACHINEOPTION=-machine:thumb | |
920 | !ELSE | |
921 | MACHINEOPTION=-machine:$(_TGTCPUFAMILY) | |
922 | !ENDIF | |
923 | ||
924 | # Setup CeCAP | |
925 | !IF "$(WINCECALLCAP)"!="" && "$(WINCEFASTCAP)"!="" | |
926 | !ERROR Error: WINCECALLCAP and WINCEFASTCAP are both defined. Please choose one. | |
927 | !ENDIF | |
928 | ||
929 | !IF "$(WINCECALLCAP)"!="" | |
930 | !IF "$(_TGTCPUFAMILY)"=="x86" | |
931 | CFLAGS=$(CFLAGS) /Gh | |
932 | !ELSE | |
933 | CFLAGS=$(CFLAGS) /callcap | |
934 | !ENDIF | |
935 | !ENDIF | |
936 | ||
937 | !IF "$(WINCEFASTCAP)"!="" | |
938 | !IF "$(_TGTCPUFAMILY)"=="x86" | |
939 | !ERROR Error: WINCEFASTCAP is currently not supported on x86. Please choose WINCECALLCAP. | |
940 | !ELSE | |
941 | CFLAGS=$(CFLAGS) /fastcap | |
942 | !ENDIF | |
943 | !ENDIF | |
944 | ||
945 | !IF "$(WINCECALLCAP)"!="" || "$(WINCEFASTCAP)"!="" | |
946 | TARGETLIBS=$(TARGETLIBS) $(_COMMONOAKROOT)\lib\$(_TGTCPU)\$(WINCEDEBUG)\cecap.lib | |
947 | !ENDIF | |
948 | ||
949 | # | |
950 | # Now for special CPU dependent defines | |
951 | # | |
952 | !IF "$(_TGTCPUFAMILY)"=="x86" | |
953 | CCOMPILER=cl386 -nologo | |
954 | CXXCOMPILER=$(CCOMPILER) | |
955 | ASSEMBLER=ml -nologo | |
956 | CVTRES=cvtres -machine:iX86 | |
957 | CFLAGS=$(CFLAGS) /QIfdiv- | |
958 | AFLAGS=-c -coff -Cx $(ADEFINES) $(CINCLUDES) -Zm | |
959 | !IF "$(WINCECOD)" != "" | |
960 | AFLAGS=$(AFLAGS) -Sn -Fl$(@R).lst | |
961 | !ENDIF | |
962 | ||
963 | !ELSEIF "$(_TGTCPUFAMILY)"=="SH" | |
964 | CCOMPILER=clsh -nologo | |
965 | CXXCOMPILER=$(CCOMPILER) | |
966 | ASSEMBLER=shasm | |
967 | CFLAGS=$(CFLAGS) -DSH3_CACHE=1 | |
968 | ALIGNMENT=4096 | |
969 | !IF "$(TGTCPUISANAME)"=="SH4" | |
970 | AFLAGS=$(ADEFINES) -Qsh4r5 | |
971 | CFLAGS=$(CFLAGS) -Qsh4r5 | |
972 | CVTRES=cvtres -machine:sh4 | |
973 | !ELSE | |
974 | AFLAGS=$(ADEFINES) -Qsh3 -Qdsp | |
975 | CVTRES=cvtres -machine:sh3 | |
976 | !IF "$(ENABLEDSP)"=="1" || "$(_TGTCPUOPTIONS)"=="_DSP" | |
977 | CFLAGS=$(CFLAGS) -Qdsp | |
978 | !ENDIF | |
979 | !ENDIF | |
980 | !IF "$(WINCEPROFILE)" == "1" | |
981 | ADEFINES=$(ADEFINES) -DPROFILE=1 | |
982 | !ELSE | |
983 | ADEFINES=$(ADEFINES) -DPROFILE=0 | |
984 | !ENDIF | |
985 | !IFDEF WINCECOD | |
986 | AFLAGS=$(AFLAGS) -LIST=$(@R).lst | |
987 | !ENDIF | |
988 | ||
989 | !ELSEIF "$(_TGTCPUFAMILY)"=="MIPS" | |
990 | ||
991 | ASSEMBLER=mipsasm | |
992 | CCOMPILER=clmips -nologo | |
993 | ALIGNMENT=4096 | |
994 | !IF "$(TGTCPU)"=="MIPSII" | |
995 | CFLAGS=$(CFLAGS) -QMmips2 -D_M_MRX000=4000 -QMFPE | |
996 | !ELSEIF "$(_TGTCPU)"=="MIPSII_FP" | |
997 | CFLAGS=$(CFLAGS) -QMmips2 -D_M_MRX000=4000 -QMFPE- | |
998 | !ELSEIF "$(_TGTCPU)"=="MIPS16" | |
999 | CFLAGS=$(CFLAGS) -DMIPS16SUPPORT | |
1000 | LDEFINES=-merge:.text16=.text $(LDEFINES) | |
1001 | !IF "$(NOMIPS16CODE)"=="1" | |
1002 | CONLY_FLAGS=-QMmips2 -D_M_MRX000=4000 -DNOMIPS16CODE | |
1003 | !ELSE | |
1004 | CONLY_FLAGS=-ase16 | |
1005 | !ENDIF | |
1006 | ADEFINES=-QMmips2 -D_M_MRX000=4000 $(ADEFINES) | |
1007 | !ELSEIF "$(_TGTCPU)" == "MIPSIV" | |
1008 | CFLAGS=$(CFLAGS) -D_MIPS64 -QMmips4 -QMn32 -QMFPE | |
1009 | CCOMPILER=clmips -nologo | |
1010 | ASSEMBLER=mipsasm -QMmips4 | |
1011 | !ELSEIF "$(_TGTCPU)" == "MIPSIV_FP" | |
1012 | CFLAGS=$(CFLAGS) -D_MIPS64 -QMmips4 -QMn32 -QMFPE- | |
1013 | CCOMPILER=clmips -nologo | |
1014 | ASSEMBLER=mipsasm -QMmips4 | |
1015 | !ENDIF | |
1016 | CXXCOMPILER=$(CCOMPILER) | |
1017 | !IF "$(_TGTCPU)" == "MIPSIV_FP" | |
1018 | CVTRES=cvtres -machine:mipsfpu | |
1019 | !ELSE | |
1020 | CVTRES=cvtres -machine:mips | |
1021 | !ENDIF | |
1022 | AFLAGS=$(CFLAGS) $(ADEFINES) | |
1023 | ||
1024 | !ELSEIF "$(_TGTCPUFAMILY)"=="ARM" | |
1025 | !IF "$(TGTCPUISANAME)"!="ARMV4T" | |
1026 | CCOMPILER=clarm -nologo | |
1027 | CXXCOMPILER=$(CCOMPILER) | |
1028 | ASSEMBLER=armasm -coff | |
1029 | CVTRES=cvtres -machine:arm | |
1030 | ||
1031 | !IF "$(NOMIPS16CODE)"=="1" | |
1032 | CFLAGS=$(CFLAGS) -QRimplicit-import- | |
1033 | !ENDIF | |
1034 | ||
1035 | !IF "$(TGTCPUISANAME)"=="ARMV4I" | |
1036 | CFLAGS=$(CFLAGS) -QRarch4T -QRinterwork-return | |
1037 | CDEFINES=$(CDEFINES) -DTHUMBSUPPORT | |
1038 | ADEFINES=$(ADEFINES) -pd "Thumbing SETL {FALSE}" -pd "Interworking SETL {TRUE}" | |
1039 | AFLAGS=-arch 4t | |
1040 | !ELSEIF "$(TGTCPUISANAME)"=="ARMV4" | |
1041 | ADEFINES=$(ADEFINES) -pd "Thumbing SETL {FALSE}" -pd "Interworking SETL {FALSE}" | |
1042 | AFLAGS=-arch 4 | |
1043 | !ENDIF | |
1044 | ||
1045 | !IF "$(WINCEPROFILE)" == "1" | |
1046 | ADEFINES=$(ADEFINES) -pd "PROFILE SETA 1" | |
1047 | !ENDIF | |
1048 | AFLAGS=$(AFLAGS) -cr $(ADEFINES) -i $(INCLUDEPATH:;=,) -i arm | |
1049 | !IFDEF WINCECOD | |
1050 | AFLAGS=$(AFLAGS) -list $(@R).lst -wi 150 -l 0 | |
1051 | !ENDIF | |
1052 | !IF ("$(WINCEDEBUG)" == "debug") | |
1053 | AFLAGS=$(AFLAGS) -pd "DEBUG SETA 1" | |
1054 | !ENDIF | |
1055 | LDEFINES=-merge:.astart=.text $(LDEFINES) | |
1056 | ALIGNMENT=4096 | |
1057 | ||
1058 | !ELSEIF "$(TGTCPUISANAME)"=="ARMV4T" | |
1059 | !IFDEF BUILDASARM | |
1060 | CCOMPILER=clarm -nologo | |
1061 | !ELSE | |
1062 | CCOMPILER=clthumb -nologo | |
1063 | !ENDIF | |
1064 | CXXCOMPILER=$(CCOMPILER) | |
1065 | ASSEMBLER=armasm -coff | |
1066 | _SRCDIR=ARM | |
1067 | CVTRES=cvtres -machine:thumb | |
1068 | ||
1069 | !IF "$(NOMIPS16CODE)"=="1" | |
1070 | CFLAGS=$(CFLAGS) -QRimplicit-import- | |
1071 | !ENDIF | |
1072 | ||
1073 | CFLAGS=$(CFLAGS) -QRarch4T -QRinterwork-return | |
1074 | CDEFINES=$(CDEFINES) -DTHUMBSUPPORT | |
1075 | ADEFINES=$(ADEFINES) -pd "Thumbing SETL {TRUE}" -pd "Interworking SETL {TRUE}" | |
1076 | !IF "$(WINCEPROFILE)" == "1" | |
1077 | ADEFINES=$(ADEFINES) -pd "PROFILE SETA 1" | |
1078 | !ENDIF | |
1079 | AFLAGS=-cr $(ADEFINES) -i $(INCLUDEPATH:;=,) -i arm -arch 4t | |
1080 | !IFDEF WINCECOD | |
1081 | AFLAGS=$(AFLAGS) -list $(@R).lst -wi 150 -l 0 | |
1082 | !ENDIF | |
1083 | !IF ("$(WINCEDEBUG)" == "debug") | |
1084 | AFLAGS=$(AFLAGS) -pd "DEBUG SETA 1" | |
1085 | !ENDIF | |
1086 | LDEFINES=-merge:.astart=.text $(LDEFINES) | |
1087 | ALIGNMENT=4096 | |
1088 | ||
1089 | !ENDIF | |
1090 | !ENDIF | |
1091 | ||
1092 | ||
1093 | # Warn user about potential license violation building private sources | |
1094 | !IF !DEFINED(SKIPBUILD) && !DEFINED(PASS0ONLY) && EXIST($(_SDKROOT)\bin\i386\SrcCheck.exe) | |
1095 | !IF [$(_SDKROOT)\bin\i386\SrcCheck -nodlg] == 1 | |
1096 | CFLAGS=$(CFLAGS) -FI$(_COMMONOAKROOT)\inc\PrivateBuild.h | |
1097 | !ENDIF | |
1098 | !ENDIF | |
1099 | ||
1100 | ||
1101 | LINKER=link /LARGEADDRESSAWARE | |
1102 | LIBRARIAN=link -lib | |
1103 | ||
1104 | !IF "$(_TGTOS)" == "CE" | |
1105 | CVTRES=$(CVTRES) /WINDOWSCE | |
1106 | !ENDIF | |
1107 | ||
1108 | !IFDEF ALIGNMENT | |
1109 | LDEFINES=$(LDEFINES) -align:$(ALIGNMENT) | |
1110 | !ENDIF | |
1111 | ||
1112 | LDEFINES=$(LDEFINES) -ignore:4001,4070,4078,4086,4089,4096,4099,4108 | |
1113 | !IFNDEF NORDATAMERGE | |
1114 | LDEFINES=-MERGE:.rdata=.text $(LDEFINES) | |
1115 | !ENDIF | |
1116 | !IF "$(_TGTOS)" == "CE" | |
1117 | !IFNDEF LDEFSTACK | |
1118 | LDEFSTACK=/STACK:65536,4096 | |
1119 | !ENDIF | |
1120 | !ENDIF | |
1121 | ||
1122 | !IFDEF LDEFSTACK | |
1123 | LDEFINES=$(LDEFINES) $(LDEFSTACK) | |
1124 | !ENDIF | |
1125 | ||
1126 | !IFNDEF DEFFILE | |
1127 | DEFFILE=$(TARGETNAME).def | |
1128 | !ENDIF | |
1129 | ||
1130 | !IFNDEF TARGETDEFNAME | |
1131 | TARGETDEFNAME=$(TARGETNAME) | |
1132 | !ENDIF | |
1133 | ||
1134 | !IFDEF PREPROCESSDEFFILE | |
1135 | !IF "$(_TGTOS)"=="CE" | |
1136 | DEFPREPROCINC=-FI$(_COMMONOAKROOT)\inc\deffile.inc | |
1137 | !ELSE | |
1138 | DEFPREPROCINC= | |
1139 | !ENDIF | |
1140 | !ENDIF | |
1141 | ||
1142 | !IF "$(WINCECOVER)" == "1" | |
1143 | CFLAGS=$(CFLAGS) -Zi | |
1144 | AFLAGS=$(AFLAGS) -Zi | |
1145 | LDEFINES=$(LDEFINES) -debug:full -debugtype:cv,fixup -dbgimplib -incremental:no | |
1146 | !ENDIF | |
1147 | ||
1148 | # make sure the compiler knows about the precompiled header | |
1149 | CCOMPILER = $(CCOMPILER) $(PRECOMPILED) | |
1150 | CXXCOMPILER = $(CXXCOMPILER) $(PRECOMPILED_CXX) | |
1151 | ||
1152 | ECHO_PRECOMPILED_MSG=$(CCOMPILER) $(PRECOMPILE_FLAG) \ | |
1153 | $(CFLAGS) /Yl$(TARGETNAME) /Yc$(?F) $(HEADERFILE) $(HEADEROBJ) | |
1154 | ||
1155 | !IF "$(PRECOMPILED_INCLUDE)" != "" | |
1156 | $(PRECOMPILED_TARGET) $(HEADEROBJNAME): $(PRECOMPILED_INCLUDE) | |
1157 | @type << | |
1158 | $(ECHO_PRECOMPILED_MSG) | |
1159 | <<NOKEEP | |
1160 | @$(CCOMPILER) @<< $(CONLY_FLAGS) $(PRECOMPILED_FLAG)<< | |
1161 | $(CFLAGS: = | |
1162 | ) /Yl$(TARGETNAME) /Yc$(?F) $(HEADERFILE) $(HEADEROBJ) | |
1163 | <<NOKEEP | |
1164 | #include "$(?F)" | |
1165 | <<NOKEEP | |
1166 | !ENDIF | |
1167 | ||
1168 | ECHO_CXX_MSG=$(CXXCOMPILER) $(CONLY_FLAGS) -Fo$@ $(CFLAGS) $(MAKEDIR)\$< | |
1169 | ECHO_C_MSG=$(CCOMPILER) $(CONLY_FLAGS) -Fo$@ $(CFLAGS) $(MAKEDIR)\$< | |
1170 | ||
1171 | ###################################################################### | |
1172 | # | |
1173 | # LINT | |
1174 | # | |
1175 | # Required environment variables: | |
1176 | # LINT_TYPE=all | lob | ind | |
1177 | # all - processes all $(SOURCES) files at once | |
1178 | # lob - processes $(SOURCES) individually and then consolidates | |
1179 | # ind - processes $(SOURCES) individually | |
1180 | # LINT_PATH=path to PC-lint directory | |
1181 | # LINT_APP=name of PC-lint executable (default=lint-nt) | |
1182 | # | |
1183 | # | |
1184 | # Other env. vars: | |
1185 | # LINT_EXT=extension of output files (default=Lint) | |
1186 | # LINT_OUTPUT=base name of lint output file (default=$(TARGETNAME)) | |
1187 | # LINT_OPTS=options passed to PC-lint (default=+v -zero) | |
1188 | # LINT_COPY2SRC=1 to copy lint output file to sources file directory | |
1189 | # | |
1190 | # | |
1191 | # | |
1192 | # LINT_PRECOMPPATH=paths that were used for precompiled header. | |
1193 | # - some components generate a pch in | |
1194 | # a separate step and use the pch amongst several | |
1195 | # subdirs. This env. var. lets one specify the | |
1196 | # include paths used for the pch. | |
1197 | # | |
1198 | ###################################################################### | |
1199 | !IFDEF LINT_TYPE | |
1200 | # Convert CDEFINES which may contain /DSYMBOL1, -DSYMBOL2 to | |
1201 | # -dSYMBOL1 and -dSYMBOL2 which PC-Lint wants | |
1202 | LINT_DEFS=$(CDEFINES:-D=-d) | |
1203 | LINT_DEFINES=$(LINT_DEFS:/D=-d) | |
1204 | ||
1205 | !IF !DEFINED(LINT_OPTS) | |
1206 | LINT_OPTS=+v -zero | |
1207 | !ENDIF | |
1208 | ||
1209 | !IF "$(LINT_TYPE)" == "all" | |
1210 | LINT_ALL_CMD=$(LINT_APP) $(LINT_OPTS) $(LINT_INCLUDES) $(LINT_DEFINES) -i$(LINT_PATH)\ Wince.lnt -os($(_OBJDIR)\$(LINT_OUTPUT).$(LINT_EXT)) | |
1211 | LINT_ALL_CMD_MSG=$(LINT_ALL_CMD) $(SOURCES) | |
1212 | !ELSEIF "$(LINT_TYPE)" == "lob" | |
1213 | LINT_CMD=$(LINT_APP) -u $(LINT_OPTS) $(LINT_INCLUDES) $(LINT_DEFINES) -i$(LINT_PATH)\ Wince.lnt +os($(_OBJDIR)\$(LINT_OUTPUT).$(LINT_EXT)) -oo($@) | |
1214 | LINT_CMD_MSG=$(LINT_CMD) $< | |
1215 | ||
1216 | LINT_CMD2=$(LINT_APP) $(LINT_OPTS) -i$(LINT_PATH)\ Wince.lnt +os($(_OBJDIR)\$(LINT_OUTPUT).$(LINT_EXT)) | |
1217 | LINT_CMD2_MSG=$(LINT_CMD2) | |
1218 | ||
1219 | !ELSE | |
1220 | LINT_CMD=$(LINT_APP) $(LINT_OPTS) $(LINT_INCLUDES) $(LINT_DEFINES) -i$(LINT_PATH)\ Wince.lnt +os($(_OBJDIR)\$(LINT_OUTPUT).$(LINT_EXT)) | |
1221 | LINT_CMD_MSG=$(LINT_CMD) $< | |
1222 | !ENDIF | |
1223 | !ENDIF | |
1224 | ||
1225 | ||
1226 | # | |
1227 | # All the implicit rules | |
1228 | # | |
1229 | {}.cxx{$(_OBJDIR)\}.obj: | |
1230 | @type << | |
1231 | $(ECHO_CXX_MSG) | |
1232 | <<NOKEEP | |
1233 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
1234 | $(CFLAGS: = | |
1235 | ) $(MAKEDIR)\$< | |
1236 | <<NOKEEP | |
1237 | !IF "$(_XREF_GEN_DATA)" != "" | |
1238 | XrefCppfile $(_TGTCPU) $(WINCEDEBUG) $(MAKEDIR)\$< @<< -DXREF_CPP_FILE $(CONLY_FLAGS) -Fo$@ | |
1239 | $(CFLAGS: = | |
1240 | ) $(MAKEDIR)\$< | |
1241 | <<NOKEEP | |
1242 | !ENDIF | |
1243 | ||
1244 | ||
1245 | ||
1246 | {$(_SRCDIR)\}.cxx{$(_OBJDIR)\}.obj: | |
1247 | @type << | |
1248 | $(ECHO_CXX_MSG) | |
1249 | <<NOKEEP | |
1250 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
1251 | $(CFLAGS: = | |
1252 | ) $(MAKEDIR)\$< | |
1253 | <<NOKEEP | |
1254 | !IF "$(_XREF_GEN_DATA)" != "" | |
1255 | XrefCppfile $(_TGTCPU) $(WINCEDEBUG) $(MAKEDIR)\$< @<< -DXREF_CPP_FILE $(CONLY_FLAGS) -Fo$@ | |
1256 | $(CFLAGS: = | |
1257 | ) $(MAKEDIR)\$< | |
1258 | <<NOKEEP | |
1259 | !ENDIF | |
1260 | ||
1261 | {..\}.cxx{$(_OBJDIR)\}.obj: | |
1262 | @type << | |
1263 | $(ECHO_CXX_MSG) | |
1264 | <<NOKEEP | |
1265 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
1266 | $(CFLAGS: = | |
1267 | ) $(MAKEDIR)\$< | |
1268 | <<NOKEEP | |
1269 | !IF "$(_XREF_GEN_DATA)" != "" | |
1270 | XrefCppfile $(_TGTCPU) $(WINCEDEBUG) $(MAKEDIR)\$< @<< -DXREF_CPP_FILE $(CONLY_FLAGS) -Fo$@ | |
1271 | $(CFLAGS: = | |
1272 | ) $(MAKEDIR)\$< | |
1273 | <<NOKEEP | |
1274 | !ENDIF | |
1275 | ||
1276 | {..\$(_SRCDIR)\}.cxx{$(_OBJDIR)\}.obj: | |
1277 | @type << | |
1278 | $(ECHO_CXX_MSG) | |
1279 | <<NOKEEP | |
1280 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
1281 | $(CFLAGS: = | |
1282 | ) $(MAKEDIR)\$< | |
1283 | <<NOKEEP | |
1284 | !IF "$(_XREF_GEN_DATA)" != "" | |
1285 | XrefCppfile $(_TGTCPU) $(WINCEDEBUG) $(MAKEDIR)\$< @<< -DXREF_CPP_FILE $(CONLY_FLAGS) -Fo$@ | |
1286 | $(CFLAGS: = | |
1287 | ) $(MAKEDIR)\$< | |
1288 | <<NOKEEP | |
1289 | !ENDIF | |
1290 | ||
1291 | {}.cpp{$(_OBJDIR)\}.obj: | |
1292 | @type << | |
1293 | $(ECHO_CXX_MSG) | |
1294 | <<NOKEEP | |
1295 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
1296 | $(CFLAGS: = | |
1297 | ) $(MAKEDIR)\$< | |
1298 | <<NOKEEP | |
1299 | !IF "$(_XREF_GEN_DATA)" != "" | |
1300 | XrefCppfile $(_TGTCPU) $(WINCEDEBUG) $(MAKEDIR)\$< @<< -DXREF_CPP_FILE $(CONLY_FLAGS) -Fo$@ | |
1301 | $(CFLAGS: = | |
1302 | ) $(MAKEDIR)\$< | |
1303 | <<NOKEEP | |
1304 | !ENDIF | |
1305 | ||
1306 | ||
1307 | {$(_SRCDIR)\}.cpp{$(_OBJDIR)\}.obj: | |
1308 | @type << | |
1309 | $(ECHO_CXX_MSG) | |
1310 | <<NOKEEP | |
1311 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
1312 | $(CFLAGS: = | |
1313 | ) $(MAKEDIR)\$< | |
1314 | <<NOKEEP | |
1315 | !IF "$(_XREF_GEN_DATA)" != "" | |
1316 | XrefCppfile $(_TGTCPU) $(WINCEDEBUG) $(MAKEDIR)\$< @<< -DXREF_CPP_FILE $(CONLY_FLAGS) -Fo$@ | |
1317 | $(CFLAGS: = | |
1318 | ) $(MAKEDIR)\$< | |
1319 | <<NOKEEP | |
1320 | !ENDIF | |
1321 | ||
1322 | {..\}.cpp{$(_OBJDIR)\}.obj: | |
1323 | @type << | |
1324 | $(ECHO_CXX_MSG) | |
1325 | <<NOKEEP | |
1326 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
1327 | $(CFLAGS: = | |
1328 | ) $(MAKEDIR)\$< | |
1329 | <<NOKEEP | |
1330 | !IF "$(_XREF_GEN_DATA)" != "" | |
1331 | XrefCppfile $(_TGTCPU) $(WINCEDEBUG) $(MAKEDIR)\$< @<< -DXREF_CPP_FILE $(CONLY_FLAGS) -Fo$@ | |
1332 | $(CFLAGS: = | |
1333 | ) $(MAKEDIR)\$< | |
1334 | <<NOKEEP | |
1335 | !ENDIF | |
1336 | ||
1337 | {..\$(_SRCDIR)\}.cpp{$(_OBJDIR)\}.obj: | |
1338 | @type << | |
1339 | $(ECHO_CXX_MSG) | |
1340 | <<NOKEEP | |
1341 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
1342 | $(CFLAGS: = | |
1343 | ) $(MAKEDIR)\$< | |
1344 | <<NOKEEP | |
1345 | !IF "$(_XREF_GEN_DATA)" != "" | |
1346 | XrefCppfile $(_TGTCPU) $(WINCEDEBUG) $(MAKEDIR)\$< @<< -DXREF_CPP_FILE $(CONLY_FLAGS) -Fo$@ | |
1347 | $(CFLAGS: = | |
1348 | ) $(MAKEDIR)\$< | |
1349 | <<NOKEEP | |
1350 | !ENDIF | |
1351 | ||
1352 | {}.c{$(_OBJDIR)\}.obj: | |
1353 | @type << | |
1354 | $(ECHO_C_MSG) | |
1355 | <<NOKEEP | |
1356 | @$(CCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
1357 | $(CFLAGS: = | |
1358 | ) $(MAKEDIR)\$< | |
1359 | <<NOKEEP | |
1360 | !IF "$(_XREF_GEN_DATA)" != "" | |
1361 | XrefCppfile $(_TGTCPU) $(WINCEDEBUG) $(MAKEDIR)\$< @<< -DXREF_CPP_FILE $(CONLY_FLAGS) -Fo$@ | |
1362 | $(CFLAGS: = | |
1363 | ) $(MAKEDIR)\$< | |
1364 | <<NOKEEP | |
1365 | !ENDIF | |
1366 | ||
1367 | {$(_SRCDIR)\}.c{$(_OBJDIR)\}.obj: | |
1368 | @type << | |
1369 | $(ECHO_C_MSG) | |
1370 | <<NOKEEP | |
1371 | @$(CCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ | |
1372 | $(CFLAGS: = | |
1373 | ) $(MAKEDIR)\$< | |
1374 | <<NOKEEP | |
1375 | !IF "$(_XREF_GEN_DATA)" != "" | |
1376 | XrefCppfile $(_TGTCPU) $(WINCEDEBUG) $(MAKEDIR)\$< @<< -DXREF_CPP_FILE $(CONLY_FLAGS) -Fo$@ | |
1377 | $(CFLAGS: = | |
1378 | ) $(MAKEDIR)\$< | |
1379 | <<NOKEEP | |
1380 | !ENDIF | |
1381 | ||
1382 | {..\}.c{$(_OBJDIR)\}.obj: | |
1383 | @type << | |
1384 | $(ECHO_C_MSG) | |
1385 | <<NOKEEP | |
1386 | @$(CCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ $(MAKEDIR)\$< | |
1387 | $(CFLAGS: = | |
1388 | ) | |
1389 | <<NOKEEP | |
1390 | !IF "$(_XREF_GEN_DATA)" != "" | |
1391 | XrefCppfile $(_TGTCPU) $(WINCEDEBUG) $(MAKEDIR)\$< @<< -DXREF_CPP_FILE $(CONLY_FLAGS) -Fo$@ | |
1392 | $(CFLAGS: = | |
1393 | ) $(MAKEDIR)\$< | |
1394 | <<NOKEEP | |
1395 | !ENDIF | |
1396 | ||
1397 | {..\$(_SRCDIR)\}.c{$(_OBJDIR)\}.obj: | |
1398 | @type << | |
1399 | $(ECHO_C_MSG) | |
1400 | <<NOKEEP | |
1401 | @$(CCOMPILER) @<< $(CONLY_FLAGS) -Fo$@ $(MAKEDIR)\$< | |
1402 | $(CFLAGS: = | |
1403 | ) | |
1404 | <<NOKEEP | |
1405 | !IF "$(_XREF_GEN_DATA)" != "" | |
1406 | XrefCppfile $(_TGTCPU) $(WINCEDEBUG) $(MAKEDIR)\$< @<< -DXREF_CPP_FILE $(CONLY_FLAGS) -Fo$@ | |
1407 | $(CFLAGS: = | |
1408 | ) $(MAKEDIR)\$< | |
1409 | <<NOKEEP | |
1410 | !ENDIF | |
1411 | ||
1412 | ||
1413 | # | |
1414 | # LINT dependency rules start | |
1415 | # | |
1416 | ||
1417 | !IF DEFINED(LINT_TYPE) && ( "$(LINT_TYPE)" != "all" ) | |
1418 | ||
1419 | {}.cxx{$(_OBJDIR)\}.lob: | |
1420 | !IF "$(LINT_TYPE)" != "lob" | |
1421 | @echo done >$@ | |
1422 | !ENDIF | |
1423 | @type << | |
1424 | $(LINT_CMD) $< | |
1425 | <<NOKEEP | |
1426 | @$(LINT_CMD) $< | |
1427 | ||
1428 | {$(_SRCDIR)\}.cxx{$(_OBJDIR)\}.lob: | |
1429 | !IF "$(LINT_TYPE)" != "lob" | |
1430 | @echo done >$@ | |
1431 | !ENDIF | |
1432 | @type << | |
1433 | $(LINT_CMD) $< | |
1434 | <<NOKEEP | |
1435 | @$(LINT_CMD) $< | |
1436 | ||
1437 | {..\}.cxx{$(_OBJDIR)\}.lob: | |
1438 | !IF "$(LINT_TYPE)" != "lob" | |
1439 | @echo done >$@ | |
1440 | !ENDIF | |
1441 | @type << | |
1442 | $(LINT_CMD) $< | |
1443 | <<NOKEEP | |
1444 | @$(LINT_CMD) $< | |
1445 | ||
1446 | {..\$(_SRCDIR)\}.cxx{$(_OBJDIR)\}.lob: | |
1447 | !IF "$(LINT_TYPE)" != "lob" | |
1448 | @echo done >$@ | |
1449 | !ENDIF | |
1450 | @type << | |
1451 | $(LINT_CMD) $< | |
1452 | <<NOKEEP | |
1453 | @$(LINT_CMD) $< | |
1454 | ||
1455 | {}.cpp{$(_OBJDIR)\}.lob: | |
1456 | !IF "$(LINT_TYPE)" != "lob" | |
1457 | @echo done >$@ | |
1458 | !ENDIF | |
1459 | @type << | |
1460 | $(LINT_CMD) $< | |
1461 | <<NOKEEP | |
1462 | @$(LINT_CMD) $< | |
1463 | ||
1464 | {$(_SRCDIR)\}.cpp{$(_OBJDIR)\}.lob: | |
1465 | !IF "$(LINT_TYPE)" != "lob" | |
1466 | @echo done >$@ | |
1467 | !ENDIF | |
1468 | @type << | |
1469 | $(LINT_CMD) $< | |
1470 | <<NOKEEP | |
1471 | @$(LINT_CMD) $< | |
1472 | ||
1473 | {..\}.cpp{$(_OBJDIR)\}.lob: | |
1474 | !IF "$(LINT_TYPE)" != "lob" | |
1475 | @echo done >$@ | |
1476 | !ENDIF | |
1477 | @type << | |
1478 | $(LINT_CMD) $< | |
1479 | <<NOKEEP | |
1480 | @$(LINT_CMD) $< | |
1481 | ||
1482 | {..\$(_SRCDIR)\}.cpp{$(_OBJDIR)\}.lob: | |
1483 | !IF "$(LINT_TYPE)" != "lob" | |
1484 | @echo done >$@ | |
1485 | !ENDIF | |
1486 | @type << | |
1487 | $(LINT_CMD) $< | |
1488 | <<NOKEEP | |
1489 | @$(LINT_CMD) $< | |
1490 | ||
1491 | {}.c{$(_OBJDIR)\}.lob: | |
1492 | !IF "$(LINT_TYPE)" != "lob" | |
1493 | @echo done >$@ | |
1494 | !ENDIF | |
1495 | @type << | |
1496 | $(LINT_CMD) $< | |
1497 | <<NOKEEP | |
1498 | @$(LINT_CMD) $< | |
1499 | ||
1500 | {$(_SRCDIR)\}.c{$(_OBJDIR)\}.lob: | |
1501 | !IF "$(LINT_TYPE)" != "lob" | |
1502 | @echo done >$@ | |
1503 | !ENDIF | |
1504 | @type << | |
1505 | $(LINT_CMD) $< | |
1506 | <<NOKEEP | |
1507 | @$(LINT_CMD) $< | |
1508 | ||
1509 | {..\}.c{$(_OBJDIR)\}.lob: | |
1510 | !IF "$(LINT_TYPE)" != "lob" | |
1511 | @echo done >$@ | |
1512 | !ENDIF | |
1513 | @type << | |
1514 | $(LINT_CMD) $< | |
1515 | <<NOKEEP | |
1516 | @$(LINT_CMD) $< | |
1517 | ||
1518 | {..\$(_SRCDIR)\}.c{$(_OBJDIR)\}.lob: | |
1519 | !IF "$(LINT_TYPE)" != "lob" | |
1520 | @echo done >$@ | |
1521 | !ENDIF | |
1522 | @type << | |
1523 | $(LINT_CMD) $< | |
1524 | <<NOKEEP | |
1525 | @$(LINT_CMD) $< | |
1526 | ||
1527 | !ENDIF | |
1528 | ||
1529 | # | |
1530 | # LINT dependency rules end | |
1531 | # | |
1532 | ||
1533 | ||
1534 | ||
1535 | .cxx.i: | |
1536 | @type << | |
1537 | $(ECHO_CXX_MSG) | |
1538 | <<NOKEEP | |
1539 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -P -Fo$@ | |
1540 | $(CFLAGS: = | |
1541 | ) $(MAKEDIR)\$< | |
1542 | <<NOKEEP | |
1543 | ||
1544 | .cpp.i: | |
1545 | @type << | |
1546 | $(ECHO_CXX_MSG) | |
1547 | <<NOKEEP | |
1548 | @$(CXXCOMPILER) @<< $(CONLY_FLAGS) -P -Fo$@ | |
1549 | $(CFLAGS: = | |
1550 | ) $(MAKEDIR)\$< | |
1551 | <<NOKEEP | |
1552 | ||
1553 | .c.i: | |
1554 | @type << | |
1555 | $(ECHO_C_MSG) | |
1556 | <<NOKEEP | |
1557 | @$(CCOMPILER) @<< $(CONLY_FLAGS) -P -Fo$@ | |
1558 | $(CFLAGS: = | |
1559 | ) $(MAKEDIR)\$< | |
1560 | <<NOKEEP | |
1561 | ||
1562 | ||
1563 | {}.odl.tlb: | |
1564 | $(MIDLCOMPILER) \ | |
1565 | -Zp8 \ | |
1566 | $(CINCLUDES) \ | |
1567 | /tlb $@ \ | |
1568 | /h $(PASS0_HEADERDIR)\$(<:.odl=.h) \ | |
1569 | $(MKTYPLIBFLAGS) \ | |
1570 | -cpp_cmd $(HOSTCOMPILER) \ | |
1571 | $(CDEFINES) \ | |
1572 | $(MIDL_MKTYPLIB_FLAGS) \ | |
1573 | $(MAKEDIR)\$< | |
1574 | ||
1575 | {$(_TGTCPUFAMILY)\}.odl.tlb: | |
1576 | $(MIDLCOMPILER) \ | |
1577 | -Zp8 \ | |
1578 | $(CINCLUDES) \ | |
1579 | /tlb $@ \ | |
1580 | /h $(PASS0_HEADERDIR)\$(<:.odl=.h) \ | |
1581 | $(MKTYPLIBFLAGS) \ | |
1582 | -cpp_cmd $(HOSTCOMPILER) \ | |
1583 | $(CDEFINES) \ | |
1584 | $(MIDL_MKTYPLIB_FLAGS) \ | |
1585 | $(MAKEDIR)\$< | |
1586 | ||
1587 | {..\}.odl.tlb: | |
1588 | $(MIDLCOMPILER) \ | |
1589 | -Zp8 \ | |
1590 | $(CINCLUDES) \ | |
1591 | /tlb $@ \ | |
1592 | /h $(PASS0_HEADERDIR)\$(<:.odl=.h) \ | |
1593 | $(MKTYPLIBFLAGS) \ | |
1594 | -cpp_cmd $(HOSTCOMPILER) \ | |
1595 | $(CDEFINES) \ | |
1596 | $(MIDL_MKTYPLIB_FLAGS) \ | |
1597 | $(MAKEDIR)\$< | |
1598 | ||
1599 | {..\$(_TGTCPUFAMILY)\}.odl.tlb: | |
1600 | $(MIDLCOMPILER) \ | |
1601 | -Zp8 \ | |
1602 | $(CINCLUDES) \ | |
1603 | /tlb $@ \ | |
1604 | /h $(PASS0_HEADERDIR)\$(<:.odl=.h) \ | |
1605 | $(MKTYPLIBFLAGS) \ | |
1606 | -cpp_cmd $(HOSTCOMPILER) \ | |
1607 | $(CDEFINES) \ | |
1608 | $(MIDL_MKTYPLIB_FLAGS) \ | |
1609 | $(MAKEDIR)\$< | |
1610 | ||
1611 | ! IFNDEF NO_PASS0_RULES | |
1612 | ||
1613 | {}.idl{$(PASS0_HEADERDIR)}.h: | |
1614 | $(MIDLCOMPILER) \ | |
1615 | -Zp8 \ | |
1616 | $(CINCLUDES) \ | |
1617 | -char unsigned \ | |
1618 | -ms_ext -c_ext \ | |
1619 | -proxy $(PASS0_SOURCEDIR)\$(<:.idl=_p.c) \ | |
1620 | -dlldata $(PASS0_SOURCEDIR)\dlldata.c \ | |
1621 | -iid $(MIDL_UUIDDIR)\$(<:.idl=_i.c) \ | |
1622 | -header $@ \ | |
1623 | -cpp_cmd $(HOSTCOMPILER) \ | |
1624 | $(CDEFINES) \ | |
1625 | $(MIDL_FLAGS) \ | |
1626 | $(MIDL_OPTIMIZATION) \ | |
1627 | $< | |
1628 | ||
1629 | {..\}.idl{$(PASS0_HEADERDIR)}.h: | |
1630 | $(MIDLCOMPILER) \ | |
1631 | -Zp8 \ | |
1632 | $(CINCLUDES) \ | |
1633 | -char unsigned \ | |
1634 | -ms_ext -c_ext \ | |
1635 | -proxy $(PASS0_SOURCEDIR)\$(<F:.idl=_p.c) \ | |
1636 | -dlldata $(PASS0_SOURCEDIR)\dlldata.c \ | |
1637 | -iid $(MIDL_UUIDDIR)\$(<F:.idl=_i.c) \ | |
1638 | -header $@ \ | |
1639 | -cpp_cmd $(HOSTCOMPILER) \ | |
1640 | $(CDEFINES) \ | |
1641 | $(MIDL_FLAGS) \ | |
1642 | $(MIDL_OPTIMIZATION) \ | |
1643 | $< | |
1644 | ||
1645 | ! IFDEF PASS0_SOURCEDIR | |
1646 | MC_SOURCEDIR=$(PASS0_SOURCEDIR) | |
1647 | ! ELSE | |
1648 | MC_SOURCEDIR=$(PASS0_CLIENTDIR) | |
1649 | ! ENDIF | |
1650 | ||
1651 | {..\}.mc{$(PASS0_HEADERDIR)}.h: | |
1652 | $(MC) -h $(PASS0_HEADERDIR) -r $(MC_SOURCEDIR) $(MC_FLAGS) $< | |
1653 | ||
1654 | .mc{$(PASS0_HEADERDIR)}.h: | |
1655 | $(MC) -h $(PASS0_HEADERDIR) -r $(MC_SOURCEDIR) $(MC_FLAGS) $< | |
1656 | ||
1657 | ||
1658 | ! ENDIF | |
1659 | ||
1660 | !IF "$(_TGTCPUFAMILY)"=="MIPS" | |
1661 | {}.s{$(_OBJDIR)\}.obj: | |
1662 | $(ASSEMBLER) $(MAKEDIR)\$< -Fo$@ $(AFLAGS) | |
1663 | ||
1664 | {$(_SRCDIR)\}.s{$(_OBJDIR)\}.obj: | |
1665 | $(ASSEMBLER) -Fo$@ $(AFLAGS) $(MAKEDIR)\$< | |
1666 | ||
1667 | {..\}.s{$(_OBJDIR)\}.obj: | |
1668 | $(ASSEMBLER) $(MAKEDIR)\$< -Fo$@ $(AFLAGS) | |
1669 | ||
1670 | {..\$(_SRCDIR)\}.s{$(_OBJDIR)\}.obj: | |
1671 | $(ASSEMBLER) -Fo$@ $(AFLAGS) $(MAKEDIR)\$< | |
1672 | ||
1673 | !ELSEIF "$(_TGTCPUFAMILY)"=="x86" | |
1674 | {}.asm{$(_OBJDIR)\}.obj: | |
1675 | $(ASSEMBLER) -Fo$@ $(AFLAGS) $(MAKEDIR)\$< | |
1676 | ||
1677 | {$(_SRCDIR)\}.asm{$(_OBJDIR)\}.obj: | |
1678 | $(ASSEMBLER) -Fo$@ $(AFLAGS) $(MAKEDIR)\$< | |
1679 | ||
1680 | {..\}.asm{$(_OBJDIR)\}.obj: | |
1681 | $(ASSEMBLER) -Fo$@ $(AFLAGS) $(MAKEDIR)\$< | |
1682 | ||
1683 | {..\$(_SRCDIR)\}.asm{$(_OBJDIR)\}.obj: | |
1684 | $(ASSEMBLER) -Fo$@ $(AFLAGS) $(MAKEDIR)\$< | |
1685 | ||
1686 | !ELSEIF "$(_TGTCPUFAMILY)"=="SH" | |
1687 | {}.src{$(_OBJDIR)\}.obj: | |
1688 | @set INCLUDE=$(INCLUDEPATH);shx;sh | |
1689 | $(ASSEMBLER) -Fo$@ $(AFLAGS) $(MAKEDIR)\$< | |
1690 | ||
1691 | {$(_SRCDIR)\}.src{$(_OBJDIR)\}.obj: | |
1692 | @set INCLUDE=$(INCLUDEPATH);shx;sh | |
1693 | $(ASSEMBLER) -Fo$@ $(AFLAGS) $(MAKEDIR)\$< | |
1694 | ||
1695 | {..\}.src{$(_OBJDIR)\}.obj: | |
1696 | @set INCLUDE=$(INCLUDEPATH);shx;sh | |
1697 | $(ASSEMBLER) -Fo$@ $(AFLAGS) $(MAKEDIR)\$< | |
1698 | ||
1699 | {..\$(_SRCDIR)\}.src{$(_OBJDIR)\}.obj: | |
1700 | @set INCLUDE=$(INCLUDEPATH);shx;sh | |
1701 | $(ASSEMBLER) -Fo$@ $(AFLAGS) $(MAKEDIR)\$< | |
1702 | ||
1703 | !ELSEIF ("$(_TGTCPUFAMILY)"=="ARM") || ("$(_TGTCPUFAMILY)"=="THUMB") | |
1704 | {}.s{$(_OBJDIR)\}.obj: | |
1705 | $(ASSEMBLER) $(AFLAGS) $(MAKEDIR)\$< $@ | |
1706 | ||
1707 | {$(_SRCDIR)\}.s{$(_OBJDIR)\}.obj: | |
1708 | $(ASSEMBLER) $(AFLAGS) $(MAKEDIR)\$< $@ | |
1709 | ||
1710 | {..\}.s{$(_OBJDIR)\}.obj: | |
1711 | $(ASSEMBLER) $(AFLAGS) $(MAKEDIR)\$< $@ | |
1712 | ||
1713 | {..\$(_SRCDIR)\}.s{$(_OBJDIR)\}.obj: | |
1714 | $(ASSEMBLER) $(AFLAGS) $(MAKEDIR)\$< $@ | |
1715 | ||
1716 | !ENDIF | |
1717 | ||
1718 | !IF ("$(IRC_DEPENDENT)" != "0" && "$(IRC_DEPENDENT)" != "") || ("$(SPECIAL_IRC_DEPENDENT)" != "0" && "$(SPECIAL_IRC_DEPENDENT)" != "") | |
1719 | # | |
1720 | # Added for internationalization | |
1721 | # | |
1722 | {}.rc{$(_OBJDIR)\}.ire: | |
1723 | echo > $(_OBJDIR)\$(@R).ire | |
1724 | ||
1725 | {..\}.rc{$(_OBJDIR)\}.ire: | |
1726 | echo > $(_OBJDIR)\$(@R).ire | |
1727 | ||
1728 | {$(_OBJDIR)\}.ire{$(_OBJDIR)\}.res: | |
1729 | $(RCOMPILER) $(RCFLAGS) -fo$(@R).tmp $(<B).rc | |
1730 | $(CVTRES) $(@R).tmp -readonly -out:$@ | |
1731 | @-erase $(@R).tmp | |
1732 | ||
1733 | .res.rbj: | |
1734 | $(CVTRES) $< -readonly -out:$@ | |
1735 | ||
1736 | !ELSE | |
1737 | ||
1738 | .res.rbj: | |
1739 | $(CVTRES) $< -readonly -out:$@ | |
1740 | ||
1741 | {}.rc{$(_OBJDIR)\}.res: | |
1742 | $(RCOMPILER) $(RCFLAGS) -fo$@ $(MAKEDIR)\$< | |
1743 | ||
1744 | {..\}.rc{$(_OBJDIR)\}.res: | |
1745 | $(RCOMPILER) $(RCFLAGS) -fo$@ $(MAKEDIR)\$< | |
1746 | ||
1747 | !ENDIF | |
1748 | ||
1749 | # | |
1750 | # And explicit rules for the targets | |
1751 | # the -map line here used to be conditional on WINCEMAP but now | |
1752 | # we always want to generate map files since they are useful, and in particular romimage | |
1753 | # reads them for some (nk*) to find some symbols | |
1754 | # | |
1755 | # -savebaserelocations will only generate a .REL file in the case where a | |
1756 | # .RELOC section is also being emitted into the PE (when /FIXED:NO is set) | |
1757 | # | |
1758 | $(_RELEASEDIR)\$(TARGETNAME).exe: $(TARGETOBJFILES) $(TARGETLIBS) | |
1759 | set LIB=$(LIBPATH) | |
1760 | $(LINKER) -out:$(_RELEASEDIR)\$(TARGETNAME).exe $(MACHINEOPTION) @<< | |
1761 | -nodefaultlib | |
1762 | $(EXEENTRYOPTION) | |
1763 | $(LINKER_DEBUG) -pdb:$(TARGET_PDB_NAME) | |
1764 | -map:$(_RELEASEDIR)\$(TARGETNAME).map | |
1765 | !IF "$(_TGTOS)"=="CE" | |
1766 | -savebaserelocations:$(_RELEASEDIR)\$(TARGETNAME).rel | |
1767 | !ENDIF | |
1768 | $(LDEFINES) | |
1769 | $(LINKER_SUBSYSTEM) | |
1770 | -base:$(EXEBASE) | |
1771 | $(TARGETOBJFILES) | |
1772 | $(TARGETLIBS) | |
1773 | <<NOKEEP | |
1774 | !IF "$(BUILD_SIGN)" == "1" | |
1775 | signbin $(_RELEASEDIR)\$(TARGETNAME).exe | |
1776 | !ENDIF | |
1777 | ||
1778 | !IF DEFINED(LINT_TYPE) | |
1779 | !IF "$(LINT_TYPE)" == "lob" | |
1780 | @type << | |
1781 | $(LINT_CMD2_MSG) $(_OBJDIR)\*.lob | |
1782 | <<NOKEEP | |
1783 | @echo $(LINT_CMD2) | |
1784 | @$(LINT_CMD2) $(_OBJDIR)\*.lob | |
1785 | !ENDIF | |
1786 | !IFDEF LINT_COPY2SRC | |
1787 | copy $(_OBJDIR)\$(LINT_OUTPUT).$(LINT_EXT) . | |
1788 | !ENDIF | |
1789 | !ENDIF | |
1790 | ||
1791 | ||
1792 | !IF "$(WINCEREL)" == "1" | |
1793 | -$(__COPYCMD) $(_RELEASEDIR)\$(TARGETNAME).exe $(_FLATRELEASEDIR)\$(TARGETNAME).exe | |
1794 | -$(__COPYCMD) $(_RELEASEDIR)\$(TARGETNAME).map $(_FLATRELEASEDIR)\$(TARGETNAME).map | |
1795 | -$(__COPYCMD) $(TARGET_PDB_NAME) $(_FLATRELEASEDIR) | |
1796 | -if exist $(_RELEASEDIR)\$(TARGETNAME).rel $(__COPYCMD) $(_RELEASEDIR)\$(TARGETNAME).rel $(_FLATRELEASEDIR)\$(TARGETNAME).rel | |
1797 | !ENDIF | |
1798 | !IFDEF CPPBROWSE | |
1799 | !IFNDEF NO_AUTOMATIC_BSC | |
1800 | bscmake /n /o $(_RELEASEDIR)\$(TARGETNAME).bsc $(TEMP)\*.sbr | |
1801 | !ENDIF | |
1802 | !ENDIF | |
1803 | ||
1804 | !IF "$(NOEXPORTS)" != "1" | |
1805 | EXPORTFILE=$(_RELEASELIBDIR)\$(TARGETNAME).exp | |
1806 | DEFFILEFLAG=-def:$(DEFFILE) | |
1807 | !ELSE | |
1808 | EXPORTFILE= | |
1809 | DEFFILEFLAG= | |
1810 | !ENDIF | |
1811 | ||
1812 | # the -map line here used to be conditional on WINCEMAP but now | |
1813 | # we always want to generate map files since they are useful, and in particular romimage | |
1814 | # reads them for some (nk*) to find some symbols | |
1815 | !IF "$(DEFFILE)" == "NO_DEF_FILE" | |
1816 | $(_RELEASEDIR)\$(TARGETNAME).dll: $(TARGETOBJFILES) $(TARGETLIBS) $(SOURCELIBS) | |
1817 | set LIB=$(LIBPATH) | |
1818 | $(LINKER) -out:$(_RELEASEDIR)\$(TARGETNAME).dll -dll $(MACHINEOPTION) @<< | |
1819 | -nodefaultlib | |
1820 | $(DLLENTRYOPTION) | |
1821 | $(LINKER_DEBUG) -pdb:$(TARGET_PDB_NAME) | |
1822 | -map:$(_RELEASEDIR)\$(TARGETNAME).map | |
1823 | !IF "$(_TGTOS)"=="CE" | |
1824 | -savebaserelocations:$(_RELEASEDIR)\$(TARGETNAME).rel | |
1825 | !ENDIF | |
1826 | $(LDEFINES) | |
1827 | $(LINKER_SUBSYSTEM) | |
1828 | /base:$(DLLBASE) | |
1829 | $(TARGETOBJFILES) | |
1830 | $(SOURCELIBS) | |
1831 | $(TARGETLIBS) | |
1832 | <<NOKEEP | |
1833 | !ELSE | |
1834 | $(_RELEASEDIR)\$(TARGETNAME).dll: $(TARGETOBJFILES) $(TARGETLIBS) $(_RELEASELIBDIR)\$(TARGETNAME).lib $(EXPORTFILE) $(SOURCELIBS) | |
1835 | set LIB=$(LIBPATH) | |
1836 | $(LINKER) -out:$(_RELEASEDIR)\$(TARGETNAME).dll -dll $(MACHINEOPTION) @<< | |
1837 | -nodefaultlib | |
1838 | $(DLLENTRYOPTION) | |
1839 | $(LINKER_DEBUG) -pdb:$(TARGET_PDB_NAME) | |
1840 | -map:$(_RELEASEDIR)\$(TARGETNAME).map | |
1841 | !IF "$(_TGTOS)"=="CE" | |
1842 | -savebaserelocations:$(_RELEASEDIR)\$(TARGETNAME).rel | |
1843 | !ENDIF | |
1844 | $(LDEFINES) | |
1845 | $(LINKER_SUBSYSTEM) | |
1846 | /base:$(DLLBASE) | |
1847 | $(TARGETOBJFILES) | |
1848 | $(SOURCELIBS) | |
1849 | $(TARGETLIBS) | |
1850 | $(EXPORTFILE) | |
1851 | <<NOKEEP | |
1852 | !ENDIF | |
1853 | !IF "$(BUILD_SIGN)" == "1" | |
1854 | signbin $(_RELEASEDIR)\$(TARGETNAME).dll | |
1855 | !ENDIF | |
1856 | ||
1857 | !IF "$(CPL)"=="1" | |
1858 | copy $(_RELEASEDIR)\$(TARGETNAME).dll $(_RELEASEDIR)\$(TARGETNAME).cpl | |
1859 | @del $(_RELEASEDIR)\$(TARGETNAME).dll | |
1860 | !ELSEIF "$(MUI)"=="1" | |
1861 | copy $(_RELEASEDIR)\$(TARGETNAME).dll $(_RELEASEDIR)\$(TARGETNAME).mui | |
1862 | @del $(_RELEASEDIR)\$(TARGETNAME).dll | |
1863 | !ENDIF | |
1864 | !IF "$(WINCEREL)" == "1" | |
1865 | -$(__COPYCMD) $(_RELEASEDIR)\$(TARGETNAME).map $(_FLATRELEASEDIR)\$(TARGETNAME).map | |
1866 | -$(__COPYCMD) $(TARGET_PDB_NAME) $(_FLATRELEASEDIR) | |
1867 | -if exist $(_RELEASEDIR)\$(TARGETNAME).rel $(__COPYCMD) $(_RELEASEDIR)\$(TARGETNAME).rel $(_FLATRELEASEDIR)\$(TARGETNAME).rel | |
1868 | !IF "$(CPL)"=="1" | |
1869 | -$(__COPYCMD) $(_RELEASEDIR)\$(TARGETNAME).cpl $(_FLATRELEASEDIR)\$(TARGETNAME).cpl | |
1870 | !ELSEIF "$(MUI)"=="1" | |
1871 | -$(__COPYCMD) $(_RELEASEDIR)\$(TARGETNAME).mui $(_FLATRELEASEDIR)\$(TARGETNAME).mui | |
1872 | !ELSE | |
1873 | -$(__COPYCMD) $(_RELEASEDIR)\$(TARGETNAME).dll $(_FLATRELEASEDIR)\$(TARGETNAME).dll | |
1874 | !ENDIF | |
1875 | !ENDIF | |
1876 | ||
1877 | !IF "$(TARGETTYPE)" == "LIBRARY" | |
1878 | $(_RELEASELIBDIR)\$(TARGETNAME).lib: $(TARGETOBJFILES) $(SOURCELIBS) | |
1879 | $(LIBRARIAN) -ignore:4001 -out:$(_RELEASELIBDIR)\$(TARGETNAME).lib $(MACHINEOPTION) @<< | |
1880 | $(LIBDEFINES) | |
1881 | -nologo | |
1882 | -nodefaultlib | |
1883 | $(LINKER_SUBSYSTEM) | |
1884 | $(TARGETOBJFILES) | |
1885 | $(SOURCELIBS) | |
1886 | <<NOKEEP | |
1887 | !IF "$(SOURCEPDBS)" != "" | |
1888 | -@for %%a in ($(SOURCEPDBS)) do @copy %%a $(_RELEASELIBDIR) | |
1889 | !ENDIF | |
1890 | !IF "$(SOURCELIBS)" != "" | |
1891 | !IF "$(NOCOPYSOURCELIBPDB)" == "" | |
1892 | -@for %%a in ($(SOURCELIBS:.lib=.pdb)) do @copy %%a $(_RELEASELIBDIR) | |
1893 | !ENDIF | |
1894 | !ENDIF | |
1895 | ||
1896 | !IF DEFINED(LINT_TYPE) | |
1897 | !IF "$(LINT_TYPE)" == "lob" | |
1898 | @type << | |
1899 | $(LINT_CMD2_MSG) $(_OBJDIR)\*.lob | |
1900 | <<NOKEEP | |
1901 | @$(LINT_CMD2) $(_OBJDIR)\*.lob | |
1902 | !ENDIF | |
1903 | !IFDEF LINT_COPY2SRC | |
1904 | copy $(_OBJDIR)\$(LINT_OUTPUT).$(LINT_EXT) . | |
1905 | !ENDIF | |
1906 | !ENDIF | |
1907 | ||
1908 | !ENDIF | |
1909 | !if "$(_XREF_GEN_DATA)" != "" | |
1910 | XrefSourcesFile $(_TGTCPU) $(WINCEDEBUG) | |
1911 | XrefSlib $(_TGTCPU) $(WINCEDEBUG) $(TARGETNAME) $(_RELEASELIBDIR)\$(TARGETNAME).lib $(TARGETOBJFILES) $(SOURCELIBS) | |
1912 | !endif | |
1913 | ||
1914 | !IF "$(TARGETTYPE)" == "DYNLINK" | |
1915 | !IFDEF PREPROCESSDEFFILE | |
1916 | $(_RELEASELIBDIR)\$(TARGETNAME).lib $(EXPORTFILE): $(_RELEASELIBDIR)\$(TARGETDEFNAME).def $(TARGETOBJFILES) $(SOURCELIBS) | |
1917 | $(LIBRARIAN) -nodefaultlib -ignore:4001 -out:$(_RELEASELIBDIR)\$(TARGETNAME).lib \ | |
1918 | -def:$(_RELEASELIBDIR)\$(TARGETDEFNAME).def $(MACHINEOPTION) @<< | |
1919 | $(LIBDEFINES) | |
1920 | $(LINKER_SUBSYSTEM) | |
1921 | $(TARGETOBJFILES) | |
1922 | $(SOURCELIBS) ..\ce\hif\sdio\obj\$(_TGTCPU)\$(WINCEDEBUG)\ndisload.obj | |
1923 | <<NOKEEP | |
1924 | !if "$(_XREF_GEN_DATA)" != "" | |
1925 | XrefDefFile $(_OBJDIR)\$(TARGETNAME).def | |
1926 | !endif | |
1927 | !ELSE | |
1928 | $(_RELEASELIBDIR)\$(TARGETNAME).lib $(EXPORTFILE): $(DEFFILE) $(TARGETOBJFILES) $(SOURCELIBS) | |
1929 | $(LIBRARIAN) -nodefaultlib -ignore:4001 -out:$(_RELEASELIBDIR)\$(TARGETNAME).lib \ | |
1930 | $(DEFFILEFLAG) $(MACHINEOPTION) @<< | |
1931 | $(LIBDEFINES) | |
1932 | $(LINKER_SUBSYSTEM) | |
1933 | $(TARGETOBJFILES) | |
1934 | $(SOURCELIBS) | |
1935 | <<NOKEEP | |
1936 | !if "$(_XREF_GEN_DATA)" != "" | |
1937 | XrefDefFile $(DEFFILE) | |
1938 | !endif | |
1939 | ||
1940 | !IFDEF LINT_TYPE | |
1941 | !IF "$(LINT_TYPE)" == "lob" | |
1942 | @type << | |
1943 | $(LINT_CMD2_MSG) $(_OBJDIR)\*.lob | |
1944 | <<NOKEEP | |
1945 | @$(LINT_CMD2) $(_OBJDIR)\*.lob | |
1946 | !ENDIF | |
1947 | !IFDEF LINT_COPY2SRC | |
1948 | copy $(_OBJDIR)\$(LINT_OUTPUT).$(LINT_EXT) . | |
1949 | !ENDIF | |
1950 | !ENDIF | |
1951 | ||
1952 | !ENDIF | |
1953 | ||
1954 | !IFDEF CPPBROWSE | |
1955 | !IFNDEF NO_AUTOMATIC_BSC | |
1956 | bscmake /n /o $(_RELEASEDIR)\$(TARGETNAME).bsc $(TEMP)\*.sbr | |
1957 | !ENDIF | |
1958 | !ENDIF | |
1959 | !ENDIF | |
1960 | ||
1961 | !IFDEF PREPROCESSDEFFILE | |
1962 | $(_RELEASELIBDIR)\$(TARGETDEFNAME).def: $(_OBJDIR)\$(TARGETDEFNAME).def | |
1963 | $(DEFPREPROCESS) $(DEFPREPROCINC) -Tc$(DEFFILE) > $@ | |
1964 | $(_OBJDIR)\$(TARGETDEFNAME).def: $(DEFFILE) | |
1965 | $(DEFPREPROCESS) $(DEFPREPROCINC) -Tc$(DEFFILE) > $@ | |
1966 | !if "$(_XREF_GEN_DATA)" != "" | |
1967 | XrefDefFile $@ | |
1968 | !endif | |
1969 | !ELSE | |
1970 | $(_RELEASELIBDIR)\$(TARGETDEFNAME).def: | |
1971 | copy $(DEFFILE) $@ > nul | |
1972 | !if "$(_XREF_GEN_DATA)" != "" | |
1973 | XrefDefFile $@ | |
1974 | !endif | |
1975 | !ENDIF | |
1976 | ||
1977 | !IFDEF COPYRES | |
1978 | !IF "$(TARGETRESNAME)" == "" | |
1979 | !IF "$(RESFILE)" == "" | |
1980 | $(_RELEASELIBDIR)\$(TARGETNAME).res: $(_OBJDIR)\$(TARGETNAME).res | |
1981 | copy $? $@ | |
1982 | !ELSE | |
1983 | $(_RELEASELIBDIR)\$(TARGETNAME).res: $(_OBJDIR)\$(RESFILE) | |
1984 | copy $? $@ | |
1985 | !ENDIF | |
1986 | !ELSE | |
1987 | !IF "$(RESFILE)" == "" | |
1988 | $(_RELEASELIBDIR)\$(TARGETRESNAME).res: $(_OBJDIR)\$(TARGETNAME).res | |
1989 | copy $? $@ | |
1990 | !ELSE | |
1991 | $(_RELEASELIBDIR)\$(TARGETRESNAME).res: $(_OBJDIR)\$(RESFILE) | |
1992 | copy $? $@ | |
1993 | !ENDIF | |
1994 | !ENDIF | |
1995 | !ENDIF | |
1996 | ||
1997 | !IF DEFINED(LINT_TYPE) && ( "$(LINT_TYPE)" == "all" ) | |
1998 | $(_OBJDIR)\$(LINT_OUTPUT).$(LINT_EXT): $(TARGETOBJFILES) | |
1999 | @type << | |
2000 | $(LINT_ALL_CMD) $(SOURCES) | |
2001 | <<NOKEEP | |
2002 | @$(LINT_ALL_CMD) $(SOURCES) | |
2003 | !IFDEF LINT_COPY2SRC | |
2004 | copy $(_OBJDIR)\$(LINT_OUTPUT).$(LINT_EXT) . | |
2005 | !ENDIF | |
2006 | !ENDIF | |
2007 | ||
2008 | ||
2009 | !IFDEF WINCETARGETFILES | |
2010 | !IF EXIST(.\makefile.inc) | |
2011 | !INCLUDE .\makefile.inc | |
2012 | !ENDIF | |
2013 | !ELSE | |
2014 | !IFDEF WINCETARGETFILE0 | |
2015 | !IF EXIST(.\makefile.inc) | |
2016 | !INCLUDE .\makefile.inc | |
2017 | !ENDIF | |
2018 | !ELSE | |
2019 | # | |
2020 | # Added for internationalization | |
2021 | # | |
2022 | !IF "$(SPECIAL_IRC_DEPENDENT)" != "0" && "$(SPECIAL_IRC_DEPENDENT)" != "" | |
2023 | !IF EXIST(.\makefile.inc) | |
2024 | !INCLUDE .\makefile.inc | |
2025 | !ENDIF | |
2026 | !ENDIF | |
2027 | !ENDIF | |
2028 | !ENDIF | |
2029 | ||
2030 | !IF EXIST($(_PROJECTROOT)\oak\misc\makefilepost.inc) | |
2031 | !INCLUDE $(_PROJECTROOT)\oak\misc\makefilepost.inc | |
2032 | !ENDIF | |
2033 |