]>
git.proxmox.com Git - mirror_edk2.git/blob - Tools/Conf/BuildMacro.xml
85118fb73faad5e828bdbd0aabe3dc5551df9597
1 <?xml version=
"1.0" encoding=
"UTF-8"?>
3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 <project name=
"common">
14 Macro for intialize some properties. This Macro build will be called before source file build.
16 <macrodef name=
"Build_Init">
17 <element name=
"EXTRA.INC" optional=
"yes"/>
18 <element name=
"EXTRA.ARG" optional=
"yes"/>
21 <var name=
"OBJECTS" value=
"" />
22 <var name=
"SDB_FILES" value=
"" />
25 <isset property=
"PCH"/>
28 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/AutoGen.h.gch"/>
30 <makedeps DepsFile=
"${DEST_DIR_OUTPUT}/AutoGen.h.dep">
31 <input file=
"${DEST_DIR_DEBUG}/AutoGen.h"/>
39 <file ListFile=
"${DEST_DIR_OUTPUT}/AutoGen.h.dep"/>
42 <file Name=
"${DEST_DIR_OUTPUT}/AutoGen.h.gch"/>
46 <!-- Generate pre-compiled header -->
48 <command type=
"CC" cmd=
"${PCH}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${CC_FAMILY}"
49 outputFile=
"${DEST_DIR_OUTPUT}/AutoGen.h.obj">
51 <argument value=
"${PCH_FLAGS}"/>
53 <fileset casesensitive=
"on" file=
"${DEST_DIR_DEBUG}/AutoGen.h"/>
58 <equals arg1=
"${CC_FAMILY}" arg2=
"GCC"/>
60 <move file=
"${DEST_DIR_OUTPUT}/AutoGen.h.obj" tofile=
"${DEST_DIR_DEBUG}/AutoGen.h.gch" overwrite=
"true"/>
68 <equals arg1=
"${CC_FAMILY}" arg2=
"GCC"/>
71 <var name=
"OBJECTS" value=
"${OBJECTS} AutoGen.h.obj"/>
81 macro definitions for building files with different types
86 <macrodef name=
"Build_CCode">
87 <attribute name=
"FILEPATH"/>
88 <attribute name=
"FILENAME"/>
89 <attribute name=
"FILEEXT" default=
"c"/>
91 <element name=
"EXTRA.INC" optional=
"yes"/>
92 <element name=
"EXTRA.ARG" optional=
"yes"/>
95 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
96 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
97 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
100 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
102 <makedeps DepsFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">
103 <input file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
104 <input file=
"${DEST_DIR_DEBUG}/AutoGen.h"/>
112 <file ListFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>
115 <file Name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
120 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${CC_FAMILY}"
121 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" dpath=
"${CC_DPATH}">
123 <argument value=
"${CC_FLAGS}"/>
125 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
130 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
132 <equals arg1=
"@{FILEPATH}" arg2=
"." />
134 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
137 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
144 <macrodef name=
"Build_AUTOGEN">
145 <attribute name=
"FILEPATH"/>
146 <attribute name=
"FILENAME"/>
147 <attribute name=
"FILEEXT" default=
"c"/>
149 <element name=
"EXTRA.INC" optional=
"yes"/>
150 <element name=
"EXTRA.ARG" optional=
"yes"/>
153 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
154 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
155 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
158 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
160 <makedeps DepsFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">
161 <input file=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
162 <input file=
"${DEST_DIR_DEBUG}/AutoGen.h"/>
170 <file ListFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>
173 <file Name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
178 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${CC_FAMILY}"
179 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" dpath=
"${CC_DPATH}">
181 <argument value=
"${CC_FLAGS}"/>
183 <fileset casesensitive=
"on" file=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
188 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
190 <equals arg1=
"@{FILEPATH}" arg2=
"." />
192 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
195 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
201 <macrodef name=
"Build_DPX">
202 <attribute name=
"FILEPATH"/>
203 <attribute name=
"FILENAME"/>
204 <attribute name=
"FILEEXT" default=
"dxs"/>
206 <element name=
"EXTRA.INC" optional=
"yes"/>
207 <element name=
"EXTRA.ARG" optional=
"yes"/>
211 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
212 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
213 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
217 <file name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
220 <file name=
"${DEST_DIR_OUTPUT}/${BASE_NAME}.depex"/>
225 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}" family=
"${CC_FAMILY}"
226 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i" dpath=
"${CC_DPATH}">
228 <argument value=
"${PP_FLAGS}"/>
229 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
233 <gendepex inputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i" outputFile=
"${DEST_DIR_OUTPUT}/${BASE_NAME}.depex"/>
239 <macrodef name=
"Build_ASM">
240 <attribute name=
"FILEPATH"/>
241 <attribute name=
"FILENAME"/>
242 <attribute name=
"FILEEXT" default=
"asm"/>
244 <element name=
"EXTRA.INC" optional=
"yes"/>
245 <element name=
"EXTRA.ARG" optional=
"yes"/>
247 <!-- Dispath ASM file, there are three type.
249 S - Build_Gcc_Assembly
250 s - Build_Ipf_Assembly -->
253 <equals arg1=
"@{FILEEXT}" arg2=
"asm" />
255 <Build_Assembly FILEPATH=
"@{FILEPATH}" FILENAME=
"@{FILENAME}" FILEEXT=
"@{FILEEXT}">
256 <EXTRA.INC
.1><EXTRA.INC
/></EXTRA.INC
.1>
257 <EXTRA.ARG
.1><EXTRA.ARG
/></EXTRA.ARG
.1>
261 <equals arg1=
"@{FILEEXT}" arg2=
"S" />
263 <Build_Gcc_Assembly FILEPATH=
"@{FILEPATH}" FILENAME=
"@{FILENAME}" FILEEXT=
"@{FILEEXT}">
264 <EXTRA.INC
.1><EXTRA.INC
/></EXTRA.INC
.1>
265 <EXTRA.ARG
.1><EXTRA.ARG
/></EXTRA.ARG
.1>
266 </Build_Gcc_Assembly>
270 <equals arg1=
"@{FILEEXT}" arg2=
"s" />
272 <Build_IPF_Assembly_Code FILEPATH=
"@{FILEPATH}" FILENAME=
"@{FILENAME}" FILEEXT=
"@{FILEEXT}">
273 <EXTRA.INC
.1><EXTRA.INC
/></EXTRA.INC
.1>
274 <EXTRA.ARG
.1><EXTRA.ARG
/></EXTRA.ARG
.1>
275 </Build_IPF_Assembly_Code>
285 <macrodef name=
"Build_Assembly">
286 <attribute name=
"FILEPATH"/>
287 <attribute name=
"FILENAME"/>
288 <attribute name=
"FILEEXT" default=
"asm"/>
290 <element name=
"EXTRA.INC.1" optional=
"yes"/>
291 <element name=
"EXTRA.ARG.1" optional=
"yes"/>
294 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
295 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
296 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
300 <file Name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
303 <file Name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
308 <command type=
"PP" cmd=
"${PP}" workdir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}" family=
"${PP_FAMILY}" dpath=
"${PP_DPATH}">
310 <argument value=
"${PP_FLAGS}"/>
311 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
315 <replaceregexp file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"
316 match=
"^(#line +1 +.*@{FILEPATH}/@{FILENAME}\.@{FILEEXT}").+\1"
319 <replaceregexp file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"
323 <replaceregexp file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"
324 match=
"([^_a-zA-Z])0x([0-9a-fA-F]+)"
330 <command type=
"ASM" cmd=
"${ASM}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${ASM_FAMILY}"
331 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" dpath=
"${ASM_DPATH}">
334 <argument value=
"${ASM_FLAGS}"/>
337 <fileset casesensitive=
"on" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"/>
342 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
344 <equals arg1=
"@{FILEPATH}" arg2=
"." />
346 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
349 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
356 Build GCC assembly code
358 <macrodef name=
"Build_Gcc_Assembly">
359 <attribute name=
"FILEPATH"/>
360 <attribute name=
"FILENAME"/>
361 <attribute name=
"FILEEXT" default=
"asm"/>
363 <element name=
"EXTRA.INC.1" optional=
"yes"/>
364 <element name=
"EXTRA.ARG.1" optional=
"yes"/>
367 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
368 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
369 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
373 <file Name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
376 <file Name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
381 <command type=
"ASM" cmd=
"${ASM}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${ASM_FAMILY}"
382 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" dpath=
"${ASM_DPATH}">
385 <argument value=
"${ASM_FLAGS}"/>
388 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
393 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
395 <equals arg1=
"@{FILEPATH}" arg2=
"." />
397 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
400 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
409 <macrodef name=
"Build_IPF_Assembly_Code">
410 <attribute name=
"FILEPATH"/>
411 <attribute name=
"FILENAME"/>
412 <attribute name=
"FILEEXT" default=
"s"/>
414 <element name=
"EXTRA.INC.1" optional=
"yes"/>
415 <element name=
"EXTRA.ARG.1" optional=
"yes"/>
418 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
421 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
423 <makedeps DepsFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">
424 <input file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
425 <input file=
"${DEST_DIR_DEBUG}/AutoGen.h"/>
433 <file listfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>
436 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
441 <command type=
"PP" cmd=
"${PP}" workdir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}" family=
"${PP_FAMILY}" dpath=
"${PP_DPATH}">
443 <argument value=
"${PP_FLAGS}"/>
444 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
449 <command type=
"ASM" cmd=
"${ASM}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${ASM_FAMILY}"
450 includepathDelimiter=
"-I" outputDelimiter=
"-o" dpath=
"${ASM_DPATH}"
451 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">
453 <argument value=
"${ASM_FLAGS}"/>
455 <fileset casesensitive=
"on" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"/>
460 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
462 <equals arg1=
"@{FILEPATH}" arg2=
"." />
464 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
467 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
474 <macrodef name=
"Build_IPF_PP_Code">
475 <attribute name=
"FILEPATH"/>
476 <attribute name=
"FILENAME"/>
477 <attribute name=
"FILEEXT" default=
"i"/>
479 <element name=
"EXTRA.INC" optional=
"yes"/>
480 <element name=
"EXTRA.ARG" optional=
"yes"/>
483 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
486 <command type=
"ASM" includepathDelimiter=
"-I" dpath=
"${ASM_DPATH}">
487 <includepath path=
"${WORKSPACE_DIR}"/>
488 <includepath path=
"${MODULE_DIR}"/>
489 <includepath path=
"${MODULE_DIR}/${ARCH}"/>
492 <argument value=
"${ASM_FLAGS}"/>
494 <OutputFile File=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
496 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
504 Library private HashMap map = new HashMap();
506 <macrodef name=
"Build_Library">
507 <attribute name=
"FILENAME" />
508 <attribute name=
"FILEEXT" default=
"obj"/>
511 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
512 <var name=
"FILE_PATH" value=
"." />
513 <mkdir dir=
"${BIN_DIR}"/>
517 <fileset dir=
"${DEST_DIR_OUTPUT}" includes=
"${OBJECTS}" />
520 <file name=
"${BIN_DIR}/@{FILENAME}.lib"/>
525 <command type=
"SLINK" cmd=
"${SLINK}" family=
"${SLINK_FAMILY}"
526 outputFile=
"${BIN_DIR}/@{FILENAME}.lib" dpath=
"${SLINK_DPATH}">
527 <argument value=
"${SLINK_FLAGS}"/>
529 <fileset dir=
"${DEST_DIR_OUTPUT}" includes=
"${OBJECTS}"/>
540 <macrodef name=
"Build_UNI">
541 <attribute name=
"FILEPATH"/>
542 <attribute name=
"FILENAME"/>
543 <attribute name=
"FILEEXT" default=
"uni"/>
545 <element name=
"EXTRA.INC" optional=
"yes"/>
546 <element name=
"EXTRA.ARG" optional=
"yes"/>
549 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
553 <file name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
556 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
560 <strgather commandtype=
"parse" newdatabase=
"true">
561 <database name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
564 <inputfile name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
569 <var name=
"SDB_FILES" value=
"${SDB_FILES}, ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
574 .sdb(s) -> .c, .h -> .obj
576 <macrodef name=
"Build_Unicode_Database">
577 <attribute name=
"FILEPATH"/>
578 <attribute name=
"FILENAME"/>
579 <attribute name=
"FILEEXT" default=
"sdb"/>
581 <element name=
"EXTRA.INC" optional=
"yes"/>
582 <element name=
"EXTRA.ARG" optional=
"yes"/>
585 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
586 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
589 <file list=
"${SDB_FILES}"/>
590 <file list=
"${SOURCE_FILES}"/>
593 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
597 <strgather commandtype=
"scan" outputdatabase=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb" verbose=
"read">
598 <skipext name=
".uni"/>
600 <database list=
"${SDB_FILES}"/>
601 <inputfile name=
"${SOURCE_FILES}"/>
608 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
611 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}StrDefs.h"/>
612 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.hpk"/>
613 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>
617 <strgather basename=
"@{FILENAME}Strings" commandtype=
"dump"
618 outputdefines=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}StrDefs.h"
619 outputhpk=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.hpk"
620 outputstring=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c">
621 <database name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
628 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>
631 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj"/>
636 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${CC_FAMILY}"
637 includepathDelimiter=
"-I" dpath=
"${CC_DPATH}"
638 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj">
639 <argument value=
"${CC_FLAGS}"/>
641 <fileset casesensitive=
"on" file=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>
647 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
649 <equals arg1=
"@{FILEPATH}" arg2=
"." />
651 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}Strings.obj" />
654 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}Strings.obj" />
663 <macrodef name=
"Build_VFR">
664 <attribute name=
"FILEPATH"/>
665 <attribute name=
"FILENAME"/>
666 <attribute name=
"FILEEXT" default=
"vfr"/>
668 <element name=
"EXTRA.INC" optional=
"yes"/>
669 <element name=
"EXTRA.ARG" optional=
"yes"/>
672 <mkdir dir=
"${DEST_DIR_DEBUG}/@{FILEPATH}"/>
675 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
677 <makedeps DepsFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">
678 <input file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
679 <input file=
"${DEST_DIR_DEBUG}/AutoGen.h"/>
687 <file listfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>
690 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
694 <vfrcompile createIfrBinFile=
"on" createListFile=
"on" outPutDir=
"${DEST_DIR_DEBUG}/@{FILEPATH}" vfrFile=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}">
699 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}"
700 includepathDelimiter=
"-I" family=
"${CC_FAMILY}" dpath=
"${CC_DPATH}"
701 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" >
702 <argument value=
"${CC_FLAGS}"/>
705 <fileset casesensitive=
"on" file=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.c"/>
710 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
712 <equals arg1=
"@{FILEPATH}" arg2=
"." />
714 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
717 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
726 <macrodef name=
"Build_DUMMY">
727 <attribute name=
"FILEPATH"/>
728 <attribute name=
"FILENAME"/>
729 <attribute name=
"FILEEXT"/>
731 <element name=
"EXTRA.INC" optional=
"yes"/>
732 <element name=
"EXTRA.ARG" optional=
"yes"/>
735 <echo message=
"Ignoring ${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" level=
"info" />
739 <!--############################################################################
741 #############################################################################-->
745 <macrodef name=
"GenDll">
746 <attribute name=
"FILEPATH"/>
747 <attribute name=
"FILENAME"/>
748 <attribute name=
"FILEEXT"/>
750 <element name=
"LIB.ARG" optional=
"yes"/>
751 <element name=
"LINK.ARG" optional=
"yes"/>
754 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
755 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
758 <file list=
"${LIBS}"/>
759 <fileset dir=
"${DEST_DIR_OUTPUT}" includes=
"${OBJECTS}" />
762 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll"/>
767 <command type=
"SLINK" cmd=
"${SLINK}" family=
"${SLINK_FAMILY}" dpath=
"${SLINK_DPATH}"
768 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Local.lib">
769 <argument value=
"${SLINK_FLAGS}"/>
771 <fileset dir=
"${DEST_DIR_OUTPUT}" includes=
"${OBJECTS}"/>
775 <command type=
"DLINK" cmd=
"${DLINK}" family=
"${DLINK_FAMILY}"
776 outputFile=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll" dpath=
"${DLINK_DPATH}" >
777 <argument value=
"${DLINK_FLAGS}"/>
778 <libset libs=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Local.lib ${LIBS} ${DLINK_SPATH}"/>
790 <macrodef name=
"GenEfi">
791 <attribute name=
"FILEPATH"/>
792 <attribute name=
"FILENAME"/>
793 <attribute name=
"FILEEXT" default=
"dll"/>
798 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
801 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>
805 <fwimage componentType=
"${MODULE_TYPE}" outImage=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"
806 peImage=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" time=
"0"/>
813 EFI_SECTION_FREEFORM_SUBTYPE_GUID
815 EFI_SECTION_USER_INTERFACE
816 EFI_SECTION_DXE_DEPEX
817 EFI_SECTION_PEI_DEPEX
822 EFI_SECTION_COMPRESSION
823 EFI_SECTION_GUID_DEFINED
824 EFI_SECTION_COMPATIBILITY16
825 EFI_SECTION_FIRMWARE_VOLUME_IMAGE
831 <macrodef name=
"EFI_SECTION_TE">
832 <attribute name=
"FILEPATH"/>
833 <attribute name=
"FILENAME"/>
834 <attribute name=
"FILEEXT" default=
"" />
836 <element name=
"PRE.PROCESS" optional=
"yes"/>
837 <element name=
"POST.PROCESS" optional=
"yes"/>
843 <equals arg1=
"${LIBS}" arg2=
""/>
847 <GenDll FILEPATH=
"." FILENAME=
"@{FILENAME}" FILEEXT=
"">
849 <LINK.ARG
></LINK.ARG
>
852 <GenEfi FILEPATH=
"." FILENAME=
"@{FILENAME}" FILEEXT=
"dll"/>
858 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>
861 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.tes"/>
865 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile=
"${BIN_DIR}/@{FILENAME}.efi" />
866 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile=
"${DEST_DIR_DEBUG}/@{FILENAME}.efi" />
867 <genteimage Dump=
"false" Verbose=
"false" OutputDir=
"" OutputFile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.te" InputFile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>
868 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.te"
869 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.tes"
870 sectiontype=
"EFI_SECTION_TE"/>
877 <macrodef name=
"EFI_SECTION_PE32">
878 <attribute name=
"FILEPATH"/>
879 <attribute name=
"FILENAME"/>
880 <attribute name=
"FILEEXT" default=
"" />
882 <element name=
"PRE.PROCESS" optional=
"yes"/>
883 <element name=
"POST.PROCESS" optional=
"yes"/>
889 <!-- TBD ${OBJECTS} -->
890 <equals arg1=
"${LIBS}" arg2=
""/>
894 <GenDll FILEPATH=
"." FILENAME=
"@{FILENAME}" FILEEXT=
"">
896 <LINK.ARG
></LINK.ARG
>
899 <GenEfi FILEPATH=
"." FILENAME=
"@{FILENAME}" FILEEXT=
"dll"/>
905 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>
908 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.pe32"/>
912 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile=
"${BIN_DIR}/@{FILENAME}.efi" />
913 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile=
"${DEST_DIR_DEBUG}/@{FILENAME}.efi" />
914 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"
915 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.pe32"
916 sectiontype=
"EFI_SECTION_PE32"/>
927 <macrodef name=
"EFI_SECTION_VERSION">
928 <attribute name=
"FILEPATH"/>
929 <attribute name=
"FILENAME"/>
930 <attribute name=
"FILEEXT" default=
"" />
931 <attribute name=
"VERSION" default=
"0000"/>
933 <element name=
"PRE.PROCESS" optional=
"yes"/>
934 <element name=
"POST.PROCESS" optional=
"yes"/>
939 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ver"/>
944 <gensection outputfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ver"
945 versionnum=
"@{VERSION}"
946 sectiontype=
"EFI_SECTION_VERSION"/>
954 EFI_SECTION_USER_INTERFACE
956 <macrodef name=
"EFI_SECTION_USER_INTERFACE">
957 <attribute name=
"FILEPATH"/>
958 <attribute name=
"FILENAME"/>
959 <attribute name=
"FILEEXT" default=
"" />
960 <attribute name=
"UI" default=
"${BASE_NAME}"/>
962 <element name=
"PRE.PROCESS" optional=
"yes"/>
963 <element name=
"POST.PROCESS" optional=
"yes"/>
968 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ui"/>
973 <gensection interfacestring=
"@{UI}"
974 outputfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ui"
975 sectiontype=
"EFI_SECTION_USER_INTERFACE"/>
983 EFI_SECTION_DXE_DEPEX
985 <macrodef name=
"EFI_SECTION_DXE_DEPEX">
986 <attribute name=
"FILEPATH"/>
987 <attribute name=
"FILENAME"/>
988 <attribute name=
"FILEEXT" default=
"dxs"/>
990 <element name=
"PRE.PROCESS" optional=
"yes"/>
991 <element name=
"POST.PROCESS" optional=
"yes"/>
997 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>
1001 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>
1004 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1007 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"
1008 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"
1009 sectiontype=
"EFI_SECTION_DXE_DEPEX"/>
1016 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1019 <touch file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1030 EFI_SECTION_PEI_DEPEX
1032 <macrodef name=
"EFI_SECTION_PEI_DEPEX">
1033 <attribute name=
"FILEPATH"/>
1034 <attribute name=
"FILENAME"/>
1035 <attribute name=
"FILEEXT" default=
"dxs"/>
1037 <element name=
"PRE.PROCESS" optional=
"yes"/>
1038 <element name=
"POST.PROCESS" optional=
"yes"/>
1042 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>
1046 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>
1049 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1053 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"
1054 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"
1055 sectiontype=
"EFI_SECTION_PEI_DEPEX"/>
1063 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1066 <touch file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1079 <macrodef name=
"EFI_SECTION_RAW">
1080 <attribute name=
"FILEPATH"/>
1081 <attribute name=
"FILENAME"/>
1082 <attribute name=
"FILEEXT" default=
"bin"/>
1084 <element name=
"PRE.PROCESS" optional=
"yes"/>
1085 <element name=
"POST.PROCESS" optional=
"yes"/>
1090 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}"/>
1093 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.sec"/>
1098 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}"
1099 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.sec"
1100 sectiontype=
"EFI_SECTION_RAW"/>
1108 EFI_SECTION_FIRMWARE_VOLUME_IMAGE
1110 <macrodef name=
"EFI_SECTION_FIRMWARE_VOLUME_IMAGE">
1111 <attribute name=
"FILEPATH"/>
1112 <attribute name=
"FILENAME"/>
1113 <attribute name=
"FILEEXT" default=
"fv"/>
1115 <element name=
"PRE.PROCESS" optional=
"yes"/>
1116 <element name=
"POST.PROCESS" optional=
"yes"/>
1121 <file name=
"${FV_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
1124 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}fv.sec"/>
1130 <copy file=
"${FV_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1131 tofile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1133 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1134 outputfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}fv.sec"
1135 sectiontype=
"EFI_SECTION_FIRMWARE_VOLUME_IMAGE"/>
1146 <macrodef name=
"Build_Binary">
1147 <attribute name=
"FILEPATH"/>
1148 <attribute name=
"FILENAME"/>
1149 <attribute name=
"FILEEXT" default=
"bin"/>
1151 <element name=
"EXTRA.INC" optional=
"yes"/>
1152 <element name=
"EXTRA.ARG" optional=
"yes"/>
1155 <copy file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1156 tofile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.bin"/>
1162 <macrodef name=
"Build_MICROCODE">
1163 <attribute name=
"FILEPATH"/>
1164 <attribute name=
"FILENAME"/>
1165 <attribute name=
"FILEEXT" default=
"TXT"/>
1167 <element name=
"EXTRA.INC" optional=
"yes"/>
1168 <element name=
"EXTRA.ARG" optional=
"yes"/>
1171 <mkdir dir=
"${TARGET_DIR}/Microcode"/>
1172 <flashmap MCIFile=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" MCOFILE=
"${TARGET_DIR}/Microcode/@{FILENAME}.bin"/>
1179 <macrodef name=
"Build_Graphics">
1180 <attribute name=
"FILEPATH"/>
1181 <attribute name=
"FILENAME"/>
1182 <attribute name=
"FILEEXT" default=
"bmp"/>
1184 <element name=
"EXTRA.INC" optional=
"yes"/>
1185 <element name=
"EXTRA.ARG" optional=
"yes"/>
1188 <mkdir dir=
"${MODULE_DIR}/@{FILEPATH}" />
1189 <copy file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1190 tofile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.bin"/>
1193 <macrodef name=
"Build_EFI">
1194 <attribute name=
"FILEPATH"/>
1195 <attribute name=
"FILENAME"/>
1196 <attribute name=
"FILEEXT" default=
"efi"/>
1198 <element name=
"EXTRA.INC" optional=
"yes"/>
1199 <element name=
"EXTRA.ARG" optional=
"yes"/>
1202 <mkdir dir=
"${MODULE_DIR}/@{FILEPATH}" />
1203 <copy file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1204 tofile=
"${DEST_DIR_OUTPUT}/${BASE_NAME}.efi"/>