]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - Tools/Conf/BuildMacro.xml
Removed create/modified/update data, PacakgeType from headers, added HexWordArrayType...
[mirror_edk2.git] / Tools / Conf / BuildMacro.xml
... / ...
CommitLineData
1<?xml version="1.0" encoding="UTF-8"?>\r
2<!--\r
3Copyright (c) 2006, Intel Corporation\r
4All rights reserved. This program and the accompanying materials\r
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11-->\r
12<project name="common">\r
13 <!--\r
14 macro definitions for building files with different types\r
15 -->\r
16 <!--\r
17 C Code\r
18 -->\r
19 <macrodef name="Build_C_Code">\r
20 <attribute name="FILEPATH"/>\r
21 <attribute name="FILENAME"/>\r
22 <attribute name="FILEEXT" default="c"/>\r
23\r
24 <element name="EXTRA.INC" optional="yes"/>\r
25 <element name="EXTRA.ARG" optional="yes"/>\r
26\r
27 <sequential>\r
28 <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
29\r
30 <if>\r
31 <available type="file" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
32 <then>\r
33 <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">\r
34 <input file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
35 <input file="${DEST_DIR_DEBUG}/AutoGen.h"/>\r
36 <includepath path="${WORKSPACE_DIR}"/>\r
37 <includepath path="${MODULE_DIR}"/>\r
38 <includepath path="${MODULE_DIR}/${ARCH}"/>\r
39 <EXTRA.INC/>\r
40 </makedeps>\r
41 </then>\r
42 </if>\r
43\r
44 <OnDependency>\r
45 <sourcefiles>\r
46 <file ListFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
47 </sourcefiles>\r
48 <targetfiles>\r
49 <file Name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
50 </targetfiles>\r
51\r
52 <sequential>\r
53 <cc userdefine="on">\r
54 <command type="CC" workdir="${DEST_DIR_OUTPUT}">\r
55 <includepath path="${WORKSPACE_DIR}"/>\r
56 <includepath path="${MODULE_DIR}"/>\r
57 <includepath path="${MODULE_DIR}/${ARCH}"/>\r
58 <EXTRA.INC/>\r
59\r
60 <argument value="${CC_FLAGS}"/>\r
61 <EXTRA.ARG/>\r
62 <!-- <argument value="/FI${DEST_DIR_DEBUG}/AutoGen.h" /> -->\r
63 <includeFile value="${DEST_DIR_DEBUG}/AutoGen.h"/>\r
64 <!-- <argument value="/Fo${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/> -->\r
65 <outputFile value="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
66\r
67 <fileset casesensitive="off" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
68 </command>\r
69 </cc>\r
70 </sequential>\r
71 </OnDependency>\r
72\r
73 <!--\r
74 for library generation later\r
75 -->\r
76 <bl NAME="OBJECTS" VALUE="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/> \r
77 </sequential>\r
78 </macrodef>\r
79\r
80\r
81 <macrodef name="Build_AUTOGEN">\r
82 <attribute name="FILEPATH"/>\r
83 <attribute name="FILENAME"/>\r
84 <attribute name="FILEEXT" default="c"/>\r
85\r
86 <element name="EXTRA.INC" optional="yes"/>\r
87 <element name="EXTRA.ARG" optional="yes"/>\r
88\r
89 <sequential>\r
90 <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
91\r
92 <if>\r
93 <available type="file" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
94 <then>\r
95 <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">\r
96 <input file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
97 <input file="${DEST_DIR_DEBUG}/AutoGen.h"/>\r
98 <includepath path="${WORKSPACE_DIR}"/>\r
99 <includepath path="${MODULE_DIR}"/>\r
100 <includepath path="${MODULE_DIR}/${ARCH}"/>\r
101 <EXTRA.INC/>\r
102 </makedeps>\r
103 </then>\r
104 </if>\r
105\r
106 <OnDependency>\r
107 <sourcefiles>\r
108 <file ListFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
109 </sourcefiles>\r
110 <targetfiles>\r
111 <file Name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
112 </targetfiles>\r
113\r
114 <sequential>\r
115 <cc userdefine="on">\r
116 <command type="CC" workdir="${DEST_DIR_OUTPUT}">\r
117 <includepath path="${WORKSPACE_DIR}"/>\r
118 <includepath path="${MODULE_DIR}"/>\r
119 <includepath path="${MODULE_DIR}/${ARCH}"/>\r
120 <EXTRA.INC/>\r
121 \r
122 <argument value="${CC_FLAGS}"/>\r
123 <EXTRA.ARG/>\r
124 <!-- <argument value="/FI${DEST_DIR_DEBUG}/AutoGen.h" /> -->\r
125 <includeFile value="${DEST_DIR_DEBUG}/AutoGen.h"/>\r
126 <!-- <argument value="/Fo${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/> -->\r
127 <outputFile value="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
128 \r
129 <fileset casesensitive="off" file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
130 </command>\r
131 </cc>\r
132 </sequential>\r
133 </OnDependency>\r
134 <!--\r
135 for library generation later\r
136 -->\r
137 <bl NAME="OBJECTS" VALUE="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/> \r
138 </sequential>\r
139 </macrodef>\r
140\r
141 <macrodef name="Build_Dependency_File">\r
142 <attribute name="FILEPATH"/>\r
143 <attribute name="FILENAME"/>\r
144 <attribute name="FILEEXT" default="dxs"/>\r
145\r
146 <element name="EXTRA.INC" optional="yes"/>\r
147 <element name="EXTRA.ARG" optional="yes"/>\r
148\r
149 <sequential>\r
150 <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
151\r
152 <OnDependency>\r
153 <sourcefiles>\r
154 <file name="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
155 </sourcefiles>\r
156 <targetfiles>\r
157 <file name="${DEST_DIR_OUTPUT}/${BASE_NAME}.@{FILEEXT}.depex"/>\r
158 </targetfiles>\r
159\r
160 <sequential>\r
161 <copy file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
162 tofile="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.c"/>\r
163\r
164 <cc userdefine="on">\r
165 <command type="CC" workdir=".">\r
166 <includepath path="${DEST_DIR_DEBUG}" /> \r
167 <includepath path="${WORKSPACE_DIR}"/>\r
168 <includepath path="${MODULE_DIR}"/>\r
169 <includepath path="${MODULE_DIR}/${ARCH}"/>\r
170 <EXTRA.INC/>\r
171 <argument value="${PP_FLAGS}"/>\r
172 <fileset casesensitive="off" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.c"/>\r
173 <outputFile value="@{FILENAME}.@{FILEEXT}.i"/>\r
174 </command>\r
175 </cc>\r
176 \r
177 <gendepex inputFile="@{FILENAME}.@{FILEEXT}.i" outputFile="${DEST_DIR_OUTPUT}/${BASE_NAME}.@{FILEEXT}.depex"/>\r
178 <delete file="@{FILENAME}.@{FILEEXT}.i" />\r
179 <delete file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.c" /> \r
180 </sequential>\r
181 </OnDependency>\r
182 </sequential>\r
183 </macrodef>\r
184 \r
185<!-- Usage Example\r
186 <Build_C_Code\r
187 FILEPATH="."\r
188 FILENAME="${SOURCE_NAME}"\r
189 FILEEXT="c">\r
190 <EXTRA.INC>\r
191 <includepath path="${PACKAGE_DIR}/Include"/>\r
192 <includepath path="${PACKAGE_DIR}/Include/${ARCH}"/>\r
193 </EXTRA.INC>\r
194\r
195 <EXTRA.ARG>\r
196 <argument value="/D EFI_DEBUG /D EFI_WHATEVER_FLAG"/>\r
197 </EXTRA.ARG>\r
198 </Build_C_Code>\r
199 -->\r
200\r
201 <!--\r
202 IA32/x64 Assembly\r
203 -->\r
204 <macrodef name="Build_Assembly">\r
205 <attribute name="FILEPATH"/>\r
206 <attribute name="FILENAME"/>\r
207 <attribute name="FILEEXT" default="asm"/>\r
208\r
209 <element name="EXTRA.INC" optional="yes"/>\r
210 <element name="EXTRA.ARG" optional="yes"/>\r
211\r
212 <sequential>\r
213 <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
214\r
215 <OnDependency>\r
216 <sourcefiles>\r
217 <file Name="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
218 </sourcefiles>\r
219 <targetfiles>\r
220 <file Name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
221 </targetfiles>\r
222\r
223 <sequential>\r
224 <cc userdefine="on">\r
225 <command type="ASM">\r
226 <includepath path="${WORKSPACE_DIR}"/>\r
227 <includepath path="${MODULE_DIR}"/>\r
228 <includepath path="${MODULE_DIR}/${ARCH}"/>\r
229 <EXTRA.INC/>\r
230 \r
231 <argument value="${ASM_FLAGS}"/>\r
232 <EXTRA.ARG/>\r
233 <argument value="/Fl${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.lst"/>\r
234 <OutputFile value="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
235 \r
236 <fileset casesensitive="off" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
237 </command>\r
238 </cc>\r
239 </sequential>\r
240 </OnDependency>\r
241 <!--\r
242 for library generation later\r
243 -->\r
244 <bl NAME="OBJECTS" VALUE="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
245 </sequential>\r
246 </macrodef>\r
247\r
248 <!--\r
249 Library private HashMap map = new HashMap();\r
250 -->\r
251 <macrodef name="Build_Library">\r
252 <attribute name="FILENAME" />\r
253 <attribute name="FILEEXT" default="obj"/>\r
254\r
255 <element name="EXTRA.INC" optional="yes"/>\r
256 <element name="EXTRA.ARG" optional="yes"/>\r
257\r
258 <sequential>\r
259 <mkdir dir="${BIN_DIR}"/>\r
260\r
261 <OnDependency>\r
262 <sourcefiles>\r
263 <file list="${OBJECTS}"/>\r
264 </sourcefiles>\r
265 <targetfiles>\r
266 <file name="${BIN_DIR}/@{FILENAME}.lib"/>\r
267 </targetfiles>\r
268\r
269 <sequential>\r
270 <!-- <echo>re-generate library</echo> -->\r
271 <cc userdefine="on">\r
272 <command type="LIB">\r
273 <argument value="${LIB_FLAGS}"/>\r
274 <!--<argument value="${OBJECTS}"/>-->\r
275 <FileList dir="" files="${OBJECTS}"/>\r
276 <!-- <argument value="/out:${BIN_DIR}/@{FILENAME}.lib"/> -->\r
277 <OutputFile value="${BIN_DIR}/@{FILENAME}.lib"/>\r
278 </command>\r
279 </cc>\r
280 </sequential>\r
281 </OnDependency>\r
282 </sequential>\r
283 </macrodef>\r
284\r
285 <!--\r
286 GCC Assembly\r
287 -->\r
288 <macrodef name="Build_GCC_Assembly_Code">\r
289 <attribute name="FILEPATH"/>\r
290 <attribute name="FILENAME"/>\r
291 <attribute name="FILEEXT" default="s"/>\r
292\r
293 <element name="EXTRA.INC" optional="yes"/>\r
294 <element name="EXTRA.ARG" optional="yes"/>\r
295\r
296 <sequential>\r
297 <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
298\r
299 <if>\r
300 <available type="file" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
301 <then>\r
302 <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">\r
303 <input file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
304 <includepath path="${WORKSPACE_DIR}"/>\r
305 <includepath path="${MODULE_DIR}"/>\r
306 <includepath path="${MODULE_DIR}/${ARCH}"/>\r
307 <EXTRA.INC/>\r
308 </makedeps>\r
309 </then>\r
310 </if>\r
311\r
312 <OnDependency>\r
313 <sourcefiles>\r
314 <file listfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
315 </sourcefiles>\r
316 <targetfiles>\r
317 <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
318 </targetfiles>\r
319\r
320 <sequential>\r
321 \r
322 <cc userdefine="on">\r
323 <command type="ASM" includepathDelimiter="-I">\r
324 <EXTRA.INC/>\r
325 \r
326 <argument value="${ASM_FLAGS}"/>\r
327 <EXTRA.ARG/>\r
328 <!-- <argument value="-o ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/> -->\r
329 <OutputFile value="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
330 \r
331 <fileset casesensitive="off" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
332 </command>\r
333 </cc>\r
334 </sequential>\r
335 </OnDependency>\r
336 <!--\r
337 for library generation later\r
338 -->\r
339 <bl NAME="OBJECTS" VALUE="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
340 </sequential>\r
341 </macrodef>\r
342\r
343 <!--\r
344 IPF Assembly\r
345 -->\r
346 <macrodef name="Build_IPF_Assembly_Code">\r
347 <attribute name="FILEPATH"/>\r
348 <attribute name="FILENAME"/>\r
349 <attribute name="FILEEXT" default="s"/>\r
350\r
351 <element name="EXTRA.INC" optional="yes"/>\r
352 <element name="EXTRA.ARG" optional="yes"/>\r
353\r
354 <sequential>\r
355 <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
356\r
357 <if>\r
358 <available type="file" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
359 <then>\r
360 <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">\r
361 <input file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
362 <includepath path="${WORKSPACE_DIR}"/>\r
363 <includepath path="${MODULE_DIR}"/>\r
364 <includepath path="${MODULE_DIR}/${ARCH}"/>\r
365 <EXTRA.INC/>\r
366 </makedeps>\r
367 </then>\r
368 </if>\r
369\r
370 <OnDependency>\r
371 <sourcefiles>\r
372 <file listfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
373 </sourcefiles>\r
374 <targetfiles>\r
375 <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
376 </targetfiles>\r
377\r
378 <sequential>\r
379 <copy file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
380 tofile="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.c"/>\r
381 <cc userdefine="on">\r
382 <command type="CC" workdir="."> \r
383 <includepath path="${WORKSPACE_DIR}"/>\r
384 <includepath path="${MODULE_DIR}"/>\r
385 <includepath path="${MODULE_DIR}/${ARCH}"/>\r
386 <EXTRA.INC/>\r
387 <argument value="${PP_FLAGS}"/>\r
388 <fileset casesensitive="off" file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.c"/>\r
389 </command>\r
390 </cc>\r
391 <move file="@{FILENAME}.@{FILEEXT}.i" \r
392 tofile="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.pro"/>\r
393 \r
394 <cc userdefine="on">\r
395 <command type="ASM" includepathDelimiter="-I">\r
396 <includepath path="${WORKSPACE_DIR}"/>\r
397 <includepath path="${MODULE_DIR}"/>\r
398 <includepath path="${MODULE_DIR}/${ARCH}"/>\r
399 <EXTRA.INC/>\r
400 \r
401 <argument value="${ASM_FLAGS}"/>\r
402 <EXTRA.ARG/>\r
403 <!-- <argument value="-o ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/> -->\r
404 <OutputFile value="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
405 \r
406 <fileset casesensitive="off" file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.pro"/>\r
407 </command>\r
408 </cc>\r
409 </sequential>\r
410 </OnDependency>\r
411 <!--\r
412 for library generation later\r
413 -->\r
414 <bl NAME="OBJECTS" VALUE="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
415 </sequential>\r
416 </macrodef>\r
417\r
418\r
419 <macrodef name="Build_IPF_PP_Code">\r
420 <attribute name="FILEPATH"/>\r
421 <attribute name="FILENAME"/>\r
422 <attribute name="FILEEXT" default="i"/>\r
423\r
424 <element name="EXTRA.INC" optional="yes"/>\r
425 <element name="EXTRA.ARG" optional="yes"/>\r
426\r
427 <sequential>\r
428 <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
429 \r
430 <cc userdefine="on">\r
431 <command type="ASM" includepathDelimiter="-I">\r
432 <includepath path="${WORKSPACE_DIR}"/>\r
433 <includepath path="${MODULE_DIR}"/>\r
434 <includepath path="${MODULE_DIR}/${ARCH}"/>\r
435 <EXTRA.INC/>\r
436 \r
437 <argument value="${ASM_FLAGS}"/>\r
438 <EXTRA.ARG/>\r
439 <!-- <argument value="-o ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/> -->\r
440 <OutputFile File="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
441 \r
442 <fileset casesensitive="off" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
443 </command>\r
444 </cc>\r
445 \r
446 <!--\r
447 for library generation later\r
448 -->\r
449 <bl NAME="OBJECTS" VALUE="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
450 </sequential>\r
451 </macrodef>\r
452 \r
453 <!--\r
454 [Build.Ia32.Makefile,Build.Ipf.Makefile,Build.Ebc.Makefile]\r
455 [Build.Ia32.Custom_Makefile,Build.Ipf.Custom_Makefile,Build.Ebc.Custom_Makefile]\r
456 -->\r
457 <macrodef name="Build_Custom_Build">\r
458 <attribute name="FILEPATH"/>\r
459 <attribute name="FILENAME"/>\r
460 <attribute name="FILEEXT" default="c"/>\r
461\r
462 <element name="EXTRA.INC" optional="yes"/>\r
463 <element name="EXTRA.ARG" optional="yes"/>\r
464\r
465 <sequential>\r
466\r
467 </sequential>\r
468 </macrodef>\r
469\r
470 <!--\r
471 Unicode -> .sdb\r
472 -->\r
473 <macrodef name="Build_Unicode">\r
474 <attribute name="FILEPATH"/>\r
475 <attribute name="FILENAME"/>\r
476 <attribute name="FILEEXT" default="uni"/>\r
477\r
478 <element name="EXTRA.INC" optional="yes"/>\r
479 <element name="EXTRA.ARG" optional="yes"/>\r
480\r
481 <sequential>\r
482 <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
483\r
484 <OnDependency>\r
485 <sourcefiles>\r
486 <file name="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
487 </sourcefiles>\r
488 <targetfiles>\r
489 <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
490 </targetfiles>\r
491\r
492 <sequential>\r
493 <strgather commandtype="parse" newdatabase="true">\r
494 <database name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
495 <includepath path="${WORKSPACE_DIR}"/>\r
496 <includepath path="${MODULE_DIR}"/>\r
497 <includepath path="${MODULE_DIR}/${ARCH}"/>\r
498 <EXTRA.INC/>\r
499 <EXTRA.ARG/>\r
500 <inputfile name="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
501 </strgather>\r
502 </sequential>\r
503 </OnDependency>\r
504\r
505 <bl name="SDB_FILES" value="${SDB_FILES}, ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
506 </sequential>\r
507 </macrodef>\r
508\r
509 <!--\r
510 .sdb(s) -> .c, .h -> .obj\r
511 -->\r
512 <macrodef name="Build_Unicode_Database">\r
513 <attribute name="FILEPATH"/>\r
514 <attribute name="FILENAME"/>\r
515 <attribute name="FILEEXT" default="sdb"/>\r
516\r
517 <element name="EXTRA.INC" optional="yes"/>\r
518 <element name="EXTRA.ARG" optional="yes"/>\r
519\r
520 <sequential>\r
521 <OnDependency>\r
522 <sourcefiles>\r
523 <file list="${SDB_FILES}"/>\r
524 <file list="${SOURCE_FILES}"/>\r
525 </sourcefiles>\r
526 <targetfiles>\r
527 <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
528 </targetfiles>\r
529 \r
530 <sequential>\r
531 <strgather commandtype="scan" outputdatabase="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb" verbose="read">\r
532 <skipext name=".uni"/>\r
533 <skipext name=".h"/>\r
534 <database list="${SDB_FILES}"/>\r
535 <inputfile name="${SOURCE_FILES}"/>\r
536 </strgather>\r
537 </sequential>\r
538 </OnDependency>\r
539\r
540 <OnDependency>\r
541 <sourcefiles>\r
542 <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
543 </sourcefiles>\r
544 <targetfiles>\r
545 <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}StrDefs.h"/>\r
546 <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.hpk"/>\r
547 <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>\r
548 </targetfiles>\r
549 \r
550 <sequential>\r
551 <strgather basename="@{FILENAME}Strings" commandtype="dump"\r
552 outputdefines="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}StrDefs.h"\r
553 outputhpk="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.hpk"\r
554 outputstring="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c">\r
555 <database name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
556 </strgather>\r
557 </sequential>\r
558 </OnDependency>\r
559\r
560 <OnDependency>\r
561 <sourcefiles>\r
562 <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>\r
563 </sourcefiles>\r
564 <targetfiles>\r
565 <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj"/>\r
566 </targetfiles>\r
567 \r
568 <sequential>\r
569 <cc userdefine="on">\r
570 <command type="CC" workdir="${DEST_DIR_OUTPUT}" includepathDelimiter="-I">\r
571 <includepath path="${WORKSPACE_DIR}"/>\r
572 <includepath path="${MODULE_DIR}"/>\r
573 <includepath path="${MODULE_DIR}/${ARCH}"/>\r
574\r
575 <argument value="${CC_FLAGS}"/>\r
576 <OutputFile value="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj"/>\r
577\r
578 <fileset casesensitive="off" file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>\r
579 </command>\r
580 </cc>\r
581 </sequential>\r
582 </OnDependency>\r
583\r
584 <bl name="OBJECTS" value="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj"/>\r
585 </sequential>\r
586 </macrodef>\r
587\r
588 <!--\r
589 Vfr\r
590 -->\r
591 <macrodef name="Build_Vfr">\r
592 <attribute name="FILEPATH"/>\r
593 <attribute name="FILENAME"/>\r
594 <attribute name="FILEEXT" default="vfr"/>\r
595\r
596 <element name="EXTRA.INC" optional="yes"/>\r
597 <element name="EXTRA.ARG" optional="yes"/>\r
598\r
599 <sequential>\r
600 <mkdir dir="${DEST_DIR_DEBUG}/@{FILEPATH}"/>\r
601\r
602 <if>\r
603 <available type="file" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
604 <then>\r
605 <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">\r
606 <input file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
607 <!-- <input file="${DEST_DIR_DEBUG}/AutoGen.h"/> -->\r
608 <includepath path="${WORKSPACE_DIR}"/>\r
609 <includepath path="${MODULE_DIR}"/>\r
610 <includepath path="${MODULE_DIR}/${ARCH}"/>\r
611 <EXTRA.INC/>\r
612 </makedeps>\r
613 </then>\r
614 </if>\r
615\r
616 <OnDependency>\r
617 <sourcefiles>\r
618 <file listfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
619 </sourcefiles>\r
620 <targetfiles>\r
621 <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
622 </targetfiles>\r
623\r
624 <sequential>\r
625 <vfrcompile createIfrBinFile="on" createListFile="on" outPutDir="${DEST_DIR_DEBUG}/@{FILEPATH}" vfrFile="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}">\r
626 <includepath path="${WORKSPACE_DIR}"/>\r
627 <includepath path="${MODULE_DIR}"/>\r
628 <includepath path="${MODULE_DIR}/${ARCH}"/>\r
629 <EXTRA.INC/>\r
630 </vfrcompile>\r
631 \r
632 <cc userdefine="on">\r
633 <command type="CC" workdir="${DEST_DIR_OUTPUT}" includepathDelimiter="-I">\r
634 <includepath path="${WORKSPACE_DIR}"/>\r
635 <includepath path="${MODULE_DIR}"/>\r
636 <includepath path="${MODULE_DIR}/${ARCH}"/>\r
637 <argument value="${CC_FLAGS}"/>\r
638 <OutputFile value="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
639 <EXTRA.ARG/>\r
640 \r
641 <fileset casesensitive="off" file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.c"/>\r
642 </command>\r
643 </cc>\r
644 \r
645 <delete file="@{FILENAME}.i"/>\r
646 </sequential>\r
647 </OnDependency>\r
648 <bl name="OBJECTS" value="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
649 </sequential>\r
650 </macrodef>\r
651\r
652<!--############################################################################\r
653 Build Sections\r
654#############################################################################-->\r
655 <!--\r
656 DLL\r
657 -->\r
658 <macrodef name="GenDll">\r
659 <attribute name="FILEPATH"/>\r
660 <attribute name="FILENAME"/>\r
661 <attribute name="FILEEXT"/>\r
662\r
663 <element name="LIB.ARG" optional="yes"/>\r
664 <element name="LINK.ARG" optional="yes"/>\r
665\r
666 <sequential>\r
667 <OnDependency>\r
668 <sourcefiles>\r
669 <file list="${OBJECTS}"/>\r
670 <file list="${LIBS}"/>\r
671 </sourcefiles>\r
672 <targetfiles>\r
673 <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll"/>\r
674 </targetfiles>\r
675\r
676 <sequential>\r
677 <cc userdefine="on">\r
678 <command type="LIB">\r
679 <argument value="${LIB_FLAGS}"/>\r
680 <FileList dir="" files="${OBJECTS}"/>\r
681 <LIB.ARG/>\r
682 <OutputFile value="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Local.lib"/>\r
683 </command>\r
684 </cc>\r
685 <cc userdefine="on">\r
686 <command type="LINK">\r
687 <argument value="${LINK_FLAGS}"/>\r
688 <libset libs="${LIBS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Local.lib"/>\r
689 <LINK.ARG/>\r
690 <EntryPoint value="_ModuleEntryPoint"/>\r
691 <map value="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.map"/>\r
692 <pdb value="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.pdb"/>\r
693 <OutputFile value="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll"/>\r
694 <!-- <FileList dir="" files="${OBJECTS}"/> -->\r
695 </command>\r
696 </cc>\r
697 </sequential>\r
698 </OnDependency>\r
699 </sequential>\r
700 </macrodef>\r
701\r
702 <!--\r
703 EFI\r
704 -->\r
705 <macrodef name="GenEfi">\r
706 <attribute name="FILEPATH"/>\r
707 <attribute name="FILENAME"/>\r
708 <attribute name="FILEEXT" default="dll"/>\r
709\r
710 <sequential>\r
711 <OnDependency>\r
712 <sourcefiles>\r
713 <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
714 </sourcefiles>\r
715 <targetfiles>\r
716 <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>\r
717 </targetfiles>\r
718\r
719 <sequential>\r
720 <fwimage componenttype="${COMPONENT_TYPE}" outImage="${DEST_DIR_OUTPUT}/@{FILENAME}.efi" \r
721 peImage="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" time="0"/>\r
722 <copy file="${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile="${DEST_DIR_DEBUG}/@{FILENAME}.efi" />\r
723 </sequential>\r
724 </OnDependency>\r
725 </sequential>\r
726 </macrodef>\r
727\r
728<!--\r
729 EFI_SECTION_FREEFORM_SUBTYPE_GUID\r
730 EFI_SECTION_VERSION\r
731 EFI_SECTION_USER_INTERFACE\r
732 EFI_SECTION_DXE_DEPEX\r
733 EFI_SECTION_PEI_DEPEX\r
734 EFI_SECTION_PE32\r
735 EFI_SECTION_PIC\r
736 EFI_SECTION_TE\r
737 EFI_SECTION_RAW\r
738 EFI_SECTION_COMPRESSION\r
739 EFI_SECTION_GUID_DEFINED\r
740 EFI_SECTION_COMPATIBILITY16\r
741 EFI_SECTION_FIRMWARE_VOLUME_IMAGE\r
742 -->\r
743 <!--\r
744 EFI_SECTION_PE32\r
745 -->\r
746 <macrodef name="EFI_SECTION_PE32">\r
747 <attribute name="FILEPATH"/>\r
748 <attribute name="FILENAME"/>\r
749 <attribute name="FILEEXT" default="" />\r
750\r
751 <element name="PRE.PROCESS" optional="yes"/>\r
752 <element name="POST.PROCESS" optional="yes"/>\r
753\r
754 <sequential>\r
755 <PRE.PROCESS/>\r
756\r
757 <if>\r
758 <not>\r
759 <equals arg1="${OBJECTS}" arg2=""/>\r
760 </not>\r
761\r
762 <then>\r
763 <GenDll FILEPATH="." FILENAME="@{FILENAME}" FILEEXT="">\r
764 <LIB.ARG></LIB.ARG>\r
765 <LINK.ARG></LINK.ARG>\r
766 </GenDll>\r
767 \r
768 <GenEfi FILEPATH="." FILENAME="@{FILENAME}" FILEEXT="dll"/>\r
769 </then>\r
770 </if>\r
771\r
772 <OnDependency>\r
773 <sourcefiles>\r
774 <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>\r
775 </sourcefiles>\r
776 <targetfiles>\r
777 <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.pe32"/>\r
778 </targetfiles>\r
779\r
780 <sequential>\r
781 <copy file="${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile="${BIN_DIR}/@{FILENAME}.efi" />\r
782 <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.efi" \r
783 outputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.pe32" \r
784 sectiontype="EFI_SECTION_PE32"/>\r
785 \r
786 <POST.PROCESS/>\r
787 </sequential>\r
788 </OnDependency>\r
789 </sequential>\r
790 </macrodef>\r
791\r
792 <!--\r
793 EFI_SECTION_VERSION\r
794 -->\r
795 <macrodef name="EFI_SECTION_VERSION">\r
796 <attribute name="FILEPATH"/>\r
797 <attribute name="FILENAME"/>\r
798 <attribute name="FILEEXT" default="" />\r
799 <attribute name="VERSION" default="0000"/>\r
800\r
801 <element name="PRE.PROCESS" optional="yes"/>\r
802 <element name="POST.PROCESS" optional="yes"/>\r
803\r
804 <sequential>\r
805 <if>\r
806 <not>\r
807 <available type="file" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ver"/>\r
808 </not>\r
809\r
810 <then>\r
811 <PRE.PROCESS/>\r
812 <gensection outputfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ver" \r
813 versionnum="@{VERSION}"\r
814 sectiontype="EFI_SECTION_VERSION"/>\r
815 <POST.PROCESS/>\r
816 </then>\r
817 </if>\r
818 </sequential>\r
819 </macrodef>\r
820\r
821 <!--\r
822 EFI_SECTION_USER_INTERFACE\r
823 -->\r
824 <macrodef name="EFI_SECTION_USER_INTERFACE">\r
825 <attribute name="FILEPATH"/>\r
826 <attribute name="FILENAME"/>\r
827 <attribute name="FILEEXT" default="" />\r
828 <attribute name="UI" default="${BASE_NAME}"/>\r
829\r
830 <element name="PRE.PROCESS" optional="yes"/>\r
831 <element name="POST.PROCESS" optional="yes"/>\r
832\r
833 <sequential>\r
834 <if>\r
835 <not>\r
836 <available type="file" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ui"/>\r
837 </not>\r
838\r
839 <then>\r
840 <PRE.PROCESS/>\r
841 <gensection interfacestring="@{UI}"\r
842 outputfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ui" \r
843 sectiontype="EFI_SECTION_USER_INTERFACE"/>\r
844 <POST.PROCESS/>\r
845 </then>\r
846 </if>\r
847 </sequential>\r
848 </macrodef>\r
849\r
850 <!--\r
851 EFI_SECTION_FREEFORM_SUBTYPE_GUID\r
852 <macrodef name="EFI_SECTION_FREEFORM_SUBTYPE_GUID">\r
853 <attribute name="FILEPATH"/>\r
854 <attribute name="FILENAME"/>\r
855 <attribute name="FILEEXT" default=""/>\r
856 \r
857 <element name="EXTRA.INC" optional="yes"/>\r
858 <element name="EXTRA.ARG" optional="yes"/>\r
859 \r
860 <sequential>\r
861 <gensection inputfile="" \r
862 outputfile="" \r
863 sectiontype="EFI_SECTION_FREEFORM_SUBTYPE_GUID"/>\r
864 </sequential>\r
865 </macrodef>\r
866 -->\r
867\r
868 <!--\r
869 EFI_SECTION_DXE_DEPEX\r
870 -->\r
871 <macrodef name="EFI_SECTION_DXE_DEPEX">\r
872 <attribute name="FILEPATH"/>\r
873 <attribute name="FILENAME"/>\r
874 <attribute name="FILEEXT" default="dxs"/>\r
875\r
876 <element name="PRE.PROCESS" optional="yes"/>\r
877 <element name="POST.PROCESS" optional="yes"/>\r
878\r
879 <sequential>\r
880 <PRE.PROCESS/>\r
881\r
882 <if>\r
883 <available type="file" file="${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}.depex"/>\r
884 <then>\r
885 <OnDependency>\r
886 <sourcefiles>\r
887 <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}.depex"/>\r
888 </sourcefiles>\r
889 <targetfiles>\r
890 <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
891 </targetfiles>\r
892 <sequential>\r
893 <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}.depex" \r
894 outputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx" \r
895 sectiontype="EFI_SECTION_DXE_DEPEX"/>\r
896 </sequential>\r
897 </OnDependency>\r
898 </then>\r
899 <else>\r
900 <if>\r
901 <not>\r
902 <available type="file" file="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
903 </not>\r
904 <then>\r
905 <touch file="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
906 </then>\r
907 </if>\r
908 </else>\r
909 </if>\r
910\r
911 <POST.PROCESS/>\r
912 </sequential>\r
913 </macrodef>\r
914\r
915 <!--\r
916 EFI_SECTION_PEI_DEPEX\r
917 -->\r
918 <macrodef name="EFI_SECTION_PEI_DEPEX">\r
919 <attribute name="FILEPATH"/>\r
920 <attribute name="FILENAME"/>\r
921 <attribute name="FILEEXT" default="dxs"/>\r
922\r
923 <element name="PRE.PROCESS" optional="yes"/>\r
924 <element name="POST.PROCESS" optional="yes"/>\r
925 <sequential>\r
926 <PRE.PROCESS/>\r
927 <if>\r
928 <available type="file" file="${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}.depex"/>\r
929 <then>\r
930 <OnDependency>\r
931 <sourcefiles>\r
932 <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}.depex"/>\r
933 </sourcefiles>\r
934 <targetfiles>\r
935 <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
936 </targetfiles>\r
937\r
938 <sequential>\r
939 <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}.depex" \r
940 outputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx" \r
941 sectiontype="EFI_SECTION_PEI_DEPEX"/>\r
942 </sequential>\r
943 </OnDependency>\r
944 \r
945 </then>\r
946 <else>\r
947 <if>\r
948 <not>\r
949 <available type="file" file="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
950 </not>\r
951 <then>\r
952 <touch file="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
953 </then>\r
954 </if>\r
955 </else>\r
956 </if>\r
957 <POST.PROCESS/>\r
958 </sequential>\r
959 </macrodef>\r
960\r
961 <!--\r
962 EFI_SECTION_PIC\r
963 <macrodef name="EFI_SECTION_PIC">\r
964 <attribute name="FILEPATH"/>\r
965 <attribute name="FILENAME"/>\r
966 <attribute name="FILEEXT" default=""/>\r
967 \r
968 <element name="EXTRA.INC" optional="yes"/>\r
969 <element name="EXTRA.ARG" optional="yes"/>\r
970 \r
971 <sequential>\r
972 <gensection inputfile="${BIN_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
973 outputfile="${BIN_DIR}/@{FILENAME}.pe32" \r
974 sectiontype="EFI_SECTION_PIC"/>\r
975 </sequential>\r
976 </macrodef>\r
977 -->\r
978\r
979 <!--\r
980 EFI_SECTION_TE\r
981 <macrodef name="EFI_SECTION_TE">\r
982 <attribute name="FILEPATH"/>\r
983 <attribute name="FILENAME"/>\r
984 <attribute name="FILEEXT" default=""/>\r
985 \r
986 <element name="EXTRA.INC" optional="yes"/>\r
987 <element name="EXTRA.ARG" optional="yes"/>\r
988 \r
989 <sequential>\r
990 <gensection inputfile="${BIN_DIR}/@{FILENAME}.@{FILEEXT}" \r
991 outputfile="${BIN_DIR}/@{FILENAME}.pe32" \r
992 sectiontype="EFI_SECTION_PE32"/>\r
993 </sequential>\r
994 </macrodef>\r
995 -->\r
996\r
997 <!--\r
998 EFI_SECTION_RAW\r
999 -->\r
1000 <macrodef name="EFI_SECTION_RAW">\r
1001 <attribute name="FILEPATH"/>\r
1002 <attribute name="FILENAME"/>\r
1003 <attribute name="FILEEXT" default="bin"/>\r
1004\r
1005 <element name="PRE.PROCESS" optional="yes"/>\r
1006 <element name="POST.PROCESS" optional="yes"/>\r
1007\r
1008 <sequential>\r
1009 <OnDependency>\r
1010 <sourcefiles>\r
1011 <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}"/>\r
1012 </sourcefiles>\r
1013 <targetfiles>\r
1014 <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.sec"/>\r
1015 </targetfiles>\r
1016\r
1017 <sequential>\r
1018 <PRE.PROCESS/>\r
1019 <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}" \r
1020 outputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.sec" \r
1021 sectiontype="EFI_SECTION_RAW"/>\r
1022 <POST.PROCESS/>\r
1023 </sequential>\r
1024 </OnDependency>\r
1025 </sequential>\r
1026 </macrodef>\r
1027\r
1028 <!--\r
1029 EFI_SECTION_COMPRESSION\r
1030 <macrodef name="EFI_SECTION_COMPRESSION">\r
1031 <attribute name="FILEPATH"/>\r
1032 <attribute name="FILENAME"/>\r
1033 <attribute name="FILEEXT" default=""/>\r
1034 \r
1035 <element name="EXTRA.INC" optional="yes"/>\r
1036 <element name="EXTRA.ARG" optional="yes"/>\r
1037 \r
1038 <sequential>\r
1039 <gensection inputfile="${BIN_DIR}/@{FILENAME}.@{FILEEXT}" \r
1040 outputfile="${BIN_DIR}/@{FILENAME}.pe32" \r
1041 sectiontype="EFI_SECTION_PE32"/>\r
1042 </sequential>\r
1043 </macrodef>\r
1044 -->\r
1045\r
1046 <!--\r
1047 EFI_SECTION_GUID_DEFINED\r
1048 <macrodef name="EFI_SECTION_GUID_DEFINED">\r
1049 <attribute name="FILEPATH"/>\r
1050 <attribute name="FILENAME"/>\r
1051 <attribute name="FILEEXT" default=""/>\r
1052 \r
1053 <element name="EXTRA.INC" optional="yes"/>\r
1054 <element name="EXTRA.ARG" optional="yes"/>\r
1055 \r
1056 <sequential>\r
1057 <gensection inputfile="${BIN_DIR}/@{FILENAME}.@{FILEEXT}" \r
1058 outputfile="${BIN_DIR}/@{FILENAME}.pe32" \r
1059 sectiontype="EFI_SECTION_PE32"/>\r
1060 </sequential>\r
1061 </macrodef>\r
1062 -->\r
1063\r
1064 <!--\r
1065 EFI_SECTION_COMPATIBILITY16\r
1066 <macrodef name="EFI_SECTION_COMPATIBILITY16">\r
1067 <attribute name="FILEPATH"/>\r
1068 <attribute name="FILENAME"/>\r
1069 <attribute name="FILEEXT" default=""/>\r
1070 \r
1071 <element name="EXTRA.INC" optional="yes"/>\r
1072 <element name="EXTRA.ARG" optional="yes"/>\r
1073 \r
1074 <sequential>\r
1075 <gensection inputfile="${BIN_DIR}/@{FILENAME}.@{FILEEXT}" \r
1076 outputfile="${BIN_DIR}/@{FILENAME}.pe32" \r
1077 sectiontype="EFI_SECTION_PE32"/>\r
1078 </sequential>\r
1079 </macrodef>\r
1080 \r
1081 -->\r
1082 <!--\r
1083 EFI_SECTION_FIRMWARE_VOLUME_IMAGE\r
1084 -->\r
1085 <macrodef name="EFI_SECTION_FIRMWARE_VOLUME_IMAGE">\r
1086 <attribute name="FILEPATH"/>\r
1087 <attribute name="FILENAME"/>\r
1088 <attribute name="FILEEXT" default="fv"/>\r
1089\r
1090 <element name="PRE.PROCESS" optional="yes"/>\r
1091 <element name="POST.PROCESS" optional="yes"/>\r
1092\r
1093 <sequential>\r
1094 <OnDependency>\r
1095 <sourcefiles>\r
1096 <file name="${FV_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
1097 </sourcefiles>\r
1098 <targetfiles>\r
1099 <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}fv.sec"/>\r
1100 </targetfiles>\r
1101\r
1102 <sequential>\r
1103 <PRE.PROCESS/>\r
1104 \r
1105 <copy file="${FV_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
1106 tofile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
1107 overwrite="true"/>\r
1108 <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
1109 outputfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}fv.sec" \r
1110 sectiontype="EFI_SECTION_FIRMWARE_VOLUME_IMAGE"/>\r
1111 \r
1112 <POST.PROCESS/>\r
1113 </sequential>\r
1114 </OnDependency>\r
1115 </sequential>\r
1116 </macrodef>\r
1117\r
1118 <!--\r
1119 Binary\r
1120 -->\r
1121 <macrodef name="Build_Binary">\r
1122 <attribute name="FILEPATH"/>\r
1123 <attribute name="FILENAME"/>\r
1124 <attribute name="FILEEXT" default="bin"/>\r
1125\r
1126 <element name="EXTRA.INC" optional="yes"/>\r
1127 <element name="EXTRA.ARG" optional="yes"/>\r
1128\r
1129 <sequential>\r
1130 <copy file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
1131 tofile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.bin"/>\r
1132 </sequential>\r
1133 </macrodef>\r
1134\r
1135 <!--\r
1136 Graphics (bmp, ...)\r
1137 -->\r
1138 <macrodef name="Build_Graphics">\r
1139 <attribute name="FILEPATH"/>\r
1140 <attribute name="FILENAME"/>\r
1141 <attribute name="FILEEXT" default="bmp"/>\r
1142\r
1143 <element name="EXTRA.INC" optional="yes"/>\r
1144 <element name="EXTRA.ARG" optional="yes"/>\r
1145\r
1146 <sequential>\r
1147 <mkdir dir="${MODULE_DIR}/@{FILEPATH}" /> \r
1148 <copy file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
1149 tofile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.bin"/>\r
1150 </sequential>\r
1151 </macrodef>\r
1152 <macrodef name="Build_EFI">\r
1153 <attribute name="FILEPATH"/>\r
1154 <attribute name="FILENAME"/>\r
1155 <attribute name="FILEEXT" default="efi"/>\r
1156\r
1157 <element name="EXTRA.INC" optional="yes"/>\r
1158 <element name="EXTRA.ARG" optional="yes"/>\r
1159\r
1160 <sequential>\r
1161 <mkdir dir="${MODULE_DIR}/@{FILEPATH}" /> \r
1162 <copy file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
1163 tofile="${DEST_DIR_OUTPUT}/${BASE_NAME}.efi"/>\r
1164 </sequential>\r
1165 </macrodef>\r
1166</project>\r