]>
git.proxmox.com Git - mirror_edk2.git/blob - Tools/Conf/BuildMacro.xml
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">
18 <var name=
"OBJECTS" value=
"" />
19 <var name=
"SDB_FILES" value=
"" />
25 macro definitions for building files with different types
30 <macrodef name=
"Build_CCode">
31 <attribute name=
"FILEPATH"/>
32 <attribute name=
"FILENAME"/>
33 <attribute name=
"FILEEXT" default=
"c"/>
35 <element name=
"EXTRA.INC" optional=
"yes"/>
36 <element name=
"EXTRA.ARG" optional=
"yes"/>
39 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
40 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
41 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
44 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
46 <makedeps DepsFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">
47 <input file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
48 <input file=
"${DEST_DIR_DEBUG}/AutoGen.h"/>
56 <file ListFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>
59 <file Name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
63 <!-- Use pre-compiled header if available -->
66 <equals arg1=
"${CC_FAMILY}" arg2=
"MSFT" casesensitive=
"false"/>
67 <available file=
"${DEST_DIR_DEBUG}/AutoGen.pch"/>
70 <var name=
"LOCAL_CC_FLAGS" value=
"${CC_FLAGS} /Yu${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_DEBUG}/AutoGen.pch"/>
73 <var name=
"LOCAL_CC_FLAGS" value=
"${CC_FLAGS}"/>
78 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${CC_FAMILY}"
79 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">
81 <argument value=
"${LOCAL_CC_FLAGS}"/>
83 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
88 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
90 <equals arg1=
"@{FILEPATH}" arg2=
"." />
92 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
95 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
102 <macrodef name=
"Build_AUTOGEN">
103 <attribute name=
"FILEPATH"/>
104 <attribute name=
"FILENAME"/>
105 <attribute name=
"FILEEXT" default=
"c"/>
107 <element name=
"EXTRA.INC" optional=
"yes"/>
108 <element name=
"EXTRA.ARG" optional=
"yes"/>
111 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
112 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
113 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
116 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
118 <makedeps DepsFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">
119 <input file=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
120 <input file=
"${DEST_DIR_DEBUG}/AutoGen.h"/>
128 <file ListFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>
131 <file Name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
135 <!-- Generate pre-compiled header -->
137 <equals arg1=
"${CC_FAMILY}" arg2=
"MSFT" casesensitive=
"false"/>
139 <var name=
"LOCAL_CC_FLAGS" value=
"${CC_FLAGS} /Yc${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_DEBUG}/AutoGen.pch"/>
142 <var name=
"LOCAL_CC_FLAGS" value=
"${CC_FLAGS}"/>
147 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${CC_FAMILY}"
148 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">
150 <argument value=
"${LOCAL_CC_FLAGS}"/>
152 <fileset casesensitive=
"on" file=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
157 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
159 <equals arg1=
"@{FILEPATH}" arg2=
"." />
161 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
164 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
170 <macrodef name=
"Build_DPX">
171 <attribute name=
"FILEPATH"/>
172 <attribute name=
"FILENAME"/>
173 <attribute name=
"FILEEXT" default=
"dxs"/>
175 <element name=
"EXTRA.INC" optional=
"yes"/>
176 <element name=
"EXTRA.ARG" optional=
"yes"/>
180 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
181 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
182 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
186 <file name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
189 <file name=
"${DEST_DIR_OUTPUT}/${BASE_NAME}.depex"/>
194 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}" family=
"${CC_FAMILY}"
195 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i">
197 <argument value=
"${PP_FLAGS}"/>
198 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
202 <gendepex inputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i" outputFile=
"${DEST_DIR_OUTPUT}/${BASE_NAME}.depex"/>
208 <macrodef name=
"Build_ASM">
209 <attribute name=
"FILEPATH"/>
210 <attribute name=
"FILENAME"/>
211 <attribute name=
"FILEEXT" default=
"asm"/>
213 <element name=
"EXTRA.INC" optional=
"yes"/>
214 <element name=
"EXTRA.ARG" optional=
"yes"/>
216 <!-- Dispath ASM file, there are three type.
218 S - Build_Gcc_Assembly
219 s - Build_Ipf_Assembly -->
222 <equals arg1=
"@{FILEEXT}" arg2=
"asm" />
224 <Build_Assembly FILEPATH=
"@{FILEPATH}" FILENAME=
"@{FILENAME}" FILEEXT=
"@{FILEEXT}">
225 <EXTRA.INC
.1><EXTRA.INC
/></EXTRA.INC
.1>
226 <EXTRA.ARG
.1><EXTRA.ARG
/></EXTRA.ARG
.1>
230 <equals arg1=
"@{FILEEXT}" arg2=
"S" />
232 <Build_Gcc_Assembly FILEPATH=
"@{FILEPATH}" FILENAME=
"@{FILENAME}" FILEEXT=
"@{FILEEXT}">
233 <EXTRA.INC
.1><EXTRA.INC
/></EXTRA.INC
.1>
234 <EXTRA.ARG
.1><EXTRA.ARG
/></EXTRA.ARG
.1>
235 </Build_Gcc_Assembly>
239 <equals arg1=
"@{FILEEXT}" arg2=
"s" />
241 <Build_IPF_Assembly_Code FILEPATH=
"@{FILEPATH}" FILENAME=
"@{FILENAME}" FILEEXT=
"@{FILEEXT}">
242 <EXTRA.INC
.1><EXTRA.INC
/></EXTRA.INC
.1>
243 <EXTRA.ARG
.1><EXTRA.ARG
/></EXTRA.ARG
.1>
244 </Build_IPF_Assembly_Code>
254 <macrodef name=
"Build_Assembly">
255 <attribute name=
"FILEPATH"/>
256 <attribute name=
"FILENAME"/>
257 <attribute name=
"FILEEXT" default=
"asm"/>
259 <element name=
"EXTRA.INC.1" optional=
"yes"/>
260 <element name=
"EXTRA.ARG.1" optional=
"yes"/>
263 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
264 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
265 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
269 <file Name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
272 <file Name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
277 <command type=
"PP" cmd=
"${PP}" workdir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}" family=
"${PP_FAMILY}">
279 <argument value=
"${PP_FLAGS}"/>
280 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
284 <replaceregexp file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"
285 match=
"^(#line +1 +.*@{FILEPATH}/@{FILENAME}\.@{FILEEXT}").+\1"
288 <replaceregexp file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"
292 <replaceregexp file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"
293 match=
"([^_a-zA-Z])0x([0-9a-fA-F]+)"
299 <command type=
"ASM" cmd=
"${ASM}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${ASM_FAMILY}"
300 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">
303 <argument value=
"${ASM_FLAGS}"/>
306 <fileset casesensitive=
"on" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"/>
311 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
313 <equals arg1=
"@{FILEPATH}" arg2=
"." />
315 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
318 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
325 Build GCC assembly code
327 <macrodef name=
"Build_Gcc_Assembly">
328 <attribute name=
"FILEPATH"/>
329 <attribute name=
"FILENAME"/>
330 <attribute name=
"FILEEXT" default=
"asm"/>
332 <element name=
"EXTRA.INC.1" optional=
"yes"/>
333 <element name=
"EXTRA.ARG.1" optional=
"yes"/>
336 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
337 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
338 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
342 <file Name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
345 <file Name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
350 <command type=
"ASM" cmd=
"${ASM}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${ASM_FAMILY}"
351 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">
354 <argument value=
"${ASM_FLAGS}"/>
357 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
362 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
364 <equals arg1=
"@{FILEPATH}" arg2=
"." />
366 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
369 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
378 <macrodef name=
"Build_IPF_Assembly_Code">
379 <attribute name=
"FILEPATH"/>
380 <attribute name=
"FILENAME"/>
381 <attribute name=
"FILEEXT" default=
"s"/>
383 <element name=
"EXTRA.INC.1" optional=
"yes"/>
384 <element name=
"EXTRA.ARG.1" optional=
"yes"/>
387 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
390 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
392 <makedeps DepsFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">
393 <input file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
394 <input file=
"${DEST_DIR_DEBUG}/AutoGen.h"/>
402 <file listfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>
405 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
410 <command type=
"PP" cmd=
"${PP}" workdir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}" family=
"${PP_FAMILY}">
412 <argument value=
"${PP_FLAGS}"/>
413 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
418 <command type=
"ASM" cmd=
"${ASM}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${ASM_FAMILY}"
419 includepathDelimiter=
"-I" outputDelimiter=
"-o"
420 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">
422 <argument value=
"${ASM_FLAGS}"/>
424 <fileset casesensitive=
"on" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"/>
429 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
431 <equals arg1=
"@{FILEPATH}" arg2=
"." />
433 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
436 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
443 <macrodef name=
"Build_IPF_PP_Code">
444 <attribute name=
"FILEPATH"/>
445 <attribute name=
"FILENAME"/>
446 <attribute name=
"FILEEXT" default=
"i"/>
448 <element name=
"EXTRA.INC" optional=
"yes"/>
449 <element name=
"EXTRA.ARG" optional=
"yes"/>
452 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
455 <command type=
"ASM" includepathDelimiter=
"-I">
456 <includepath path=
"${WORKSPACE_DIR}"/>
457 <includepath path=
"${MODULE_DIR}"/>
458 <includepath path=
"${MODULE_DIR}/${ARCH}"/>
461 <argument value=
"${ASM_FLAGS}"/>
463 <OutputFile File=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
465 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
473 Library private HashMap map = new HashMap();
475 <macrodef name=
"Build_Library">
476 <attribute name=
"FILENAME" />
477 <attribute name=
"FILEEXT" default=
"obj"/>
480 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
481 <var name=
"FILE_PATH" value=
"." />
482 <mkdir dir=
"${BIN_DIR}"/>
486 <fileset dir=
"${DEST_DIR_OUTPUT}" includes=
"${OBJECTS}" />
489 <file name=
"${BIN_DIR}/@{FILENAME}.lib"/>
494 <command type=
"SLINK" cmd=
"${SLINK}" family=
"${SLINK_FAMILY}"
495 outputFile=
"${BIN_DIR}/@{FILENAME}.lib">
496 <argument value=
"${SLINK_FLAGS}"/>
498 <fileset dir=
"${DEST_DIR_OUTPUT}" includes=
"${OBJECTS}"/>
509 <macrodef name=
"Build_UNI">
510 <attribute name=
"FILEPATH"/>
511 <attribute name=
"FILENAME"/>
512 <attribute name=
"FILEEXT" default=
"uni"/>
514 <element name=
"EXTRA.INC" optional=
"yes"/>
515 <element name=
"EXTRA.ARG" optional=
"yes"/>
518 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
522 <file name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
525 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
529 <strgather commandtype=
"parse" newdatabase=
"true">
530 <database name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
533 <inputfile name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
538 <var name=
"SDB_FILES" value=
"${SDB_FILES}, ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
543 .sdb(s) -> .c, .h -> .obj
545 <macrodef name=
"Build_Unicode_Database">
546 <attribute name=
"FILEPATH"/>
547 <attribute name=
"FILENAME"/>
548 <attribute name=
"FILEEXT" default=
"sdb"/>
550 <element name=
"EXTRA.INC" optional=
"yes"/>
551 <element name=
"EXTRA.ARG" optional=
"yes"/>
554 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
555 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
558 <file list=
"${SDB_FILES}"/>
559 <file list=
"${SOURCE_FILES}"/>
562 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
566 <strgather commandtype=
"scan" outputdatabase=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb" verbose=
"read">
567 <skipext name=
".uni"/>
569 <database list=
"${SDB_FILES}"/>
570 <inputfile name=
"${SOURCE_FILES}"/>
577 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
580 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}StrDefs.h"/>
581 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.hpk"/>
582 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>
586 <strgather basename=
"@{FILENAME}Strings" commandtype=
"dump"
587 outputdefines=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}StrDefs.h"
588 outputhpk=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.hpk"
589 outputstring=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c">
590 <database name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
597 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>
600 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj"/>
604 <!-- Use pre-compiled header if available -->
607 <equals arg1=
"${CC_FAMILY}" arg2=
"MSFT" casesensitive=
"false"/>
608 <available file=
"${DEST_DIR_DEBUG}/AutoGen.pch"/>
611 <var name=
"LOCAL_CC_FLAGS" value=
"${CC_FLAGS} /Yc${DEST_DIR_DEBUG}/AutoGen.h /Yu${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_DEBUG}/AutoGen.pch"/>
614 <var name=
"LOCAL_CC_FLAGS" value=
"${CC_FLAGS}"/>
619 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${CC_FAMILY}"
620 includepathDelimiter=
"-I"
621 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj">
622 <argument value=
"${LOCAL_CC_FLAGS}"/>
624 <fileset casesensitive=
"on" file=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>
630 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
632 <equals arg1=
"@{FILEPATH}" arg2=
"." />
634 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}Strings.obj" />
637 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}Strings.obj" />
646 <macrodef name=
"Build_VFR">
647 <attribute name=
"FILEPATH"/>
648 <attribute name=
"FILENAME"/>
649 <attribute name=
"FILEEXT" default=
"vfr"/>
651 <element name=
"EXTRA.INC" optional=
"yes"/>
652 <element name=
"EXTRA.ARG" optional=
"yes"/>
655 <mkdir dir=
"${DEST_DIR_DEBUG}/@{FILEPATH}"/>
658 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
660 <makedeps DepsFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">
661 <input file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
662 <input file=
"${DEST_DIR_DEBUG}/AutoGen.h"/>
670 <file listfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>
673 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
677 <vfrcompile createIfrBinFile=
"on" createListFile=
"on" outPutDir=
"${DEST_DIR_DEBUG}/@{FILEPATH}" vfrFile=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}">
681 <!-- Use pre-compiled header if available -->
684 <equals arg1=
"${CC_FAMILY}" arg2=
"MSFT" casesensitive=
"false"/>
685 <available file=
"${DEST_DIR_DEBUG}/AutoGen.pch"/>
688 <var name=
"LOCAL_CC_FLAGS" value=
"${CC_FLAGS} /Yu${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_DEBUG}/AutoGen.pch"/>
691 <var name=
"LOCAL_CC_FLAGS" value=
"${CC_FLAGS}"/>
696 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}"
697 includepathDelimiter=
"-I" family=
"${CC_FAMILY}"
698 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" >
699 <argument value=
"${LOCAL_CC_FLAGS}"/>
702 <fileset casesensitive=
"on" file=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.c"/>
707 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
709 <equals arg1=
"@{FILEPATH}" arg2=
"." />
711 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
714 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
723 <macrodef name=
"Build_DUMMY">
724 <attribute name=
"FILEPATH"/>
725 <attribute name=
"FILENAME"/>
726 <attribute name=
"FILEEXT"/>
728 <element name=
"EXTRA.INC" optional=
"yes"/>
729 <element name=
"EXTRA.ARG" optional=
"yes"/>
732 <echo message=
"Ignoring ${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
736 <!--############################################################################
738 #############################################################################-->
742 <macrodef name=
"GenDll">
743 <attribute name=
"FILEPATH"/>
744 <attribute name=
"FILENAME"/>
745 <attribute name=
"FILEEXT"/>
747 <element name=
"LIB.ARG" optional=
"yes"/>
748 <element name=
"LINK.ARG" optional=
"yes"/>
751 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
752 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
755 <file list=
"${LIBS}"/>
756 <fileset dir=
"${DEST_DIR_OUTPUT}" includes=
"${OBJECTS}" />
759 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll"/>
764 <command type=
"SLINK" cmd=
"${SLINK}" family=
"${SLINK_FAMILY}"
765 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Local.lib">
766 <argument value=
"${SLINK_FLAGS}"/>
768 <fileset dir=
"${DEST_DIR_OUTPUT}" includes=
"${OBJECTS}"/>
772 <command type=
"DLINK" cmd=
"${DLINK}" family=
"${DLINK_FAMILY}"
773 outputFile=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll" >
774 <argument value=
"${DLINK_FLAGS}"/>
775 <libset libs=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Local.lib ${LIBS} ${DLINK_SPATH}"/>
787 <macrodef name=
"GenEfi">
788 <attribute name=
"FILEPATH"/>
789 <attribute name=
"FILENAME"/>
790 <attribute name=
"FILEEXT" default=
"dll"/>
795 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
798 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>
802 <fwimage componentType=
"${MODULE_TYPE}" outImage=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"
803 peImage=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" time=
"0"/>
810 EFI_SECTION_FREEFORM_SUBTYPE_GUID
812 EFI_SECTION_USER_INTERFACE
813 EFI_SECTION_DXE_DEPEX
814 EFI_SECTION_PEI_DEPEX
819 EFI_SECTION_COMPRESSION
820 EFI_SECTION_GUID_DEFINED
821 EFI_SECTION_COMPATIBILITY16
822 EFI_SECTION_FIRMWARE_VOLUME_IMAGE
828 <macrodef name=
"EFI_SECTION_TE">
829 <attribute name=
"FILEPATH"/>
830 <attribute name=
"FILENAME"/>
831 <attribute name=
"FILEEXT" default=
"" />
833 <element name=
"PRE.PROCESS" optional=
"yes"/>
834 <element name=
"POST.PROCESS" optional=
"yes"/>
840 <equals arg1=
"${LIBS}" arg2=
""/>
844 <GenDll FILEPATH=
"." FILENAME=
"@{FILENAME}" FILEEXT=
"">
846 <LINK.ARG
></LINK.ARG
>
849 <GenEfi FILEPATH=
"." FILENAME=
"@{FILENAME}" FILEEXT=
"dll"/>
855 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>
858 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.tes"/>
862 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile=
"${BIN_DIR}/@{FILENAME}.efi" />
863 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile=
"${DEST_DIR_DEBUG}/@{FILENAME}.efi" />
864 <genteimage Dump=
"false" Verbose=
"false" OutputDir=
"" OutputFile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.te" InputFile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>
865 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.te" tofile=
"${BIN_DIR}/@{FILENAME}.te" />
866 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.te"
867 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.tes"
868 sectiontype=
"EFI_SECTION_TE"/>
875 <macrodef name=
"EFI_SECTION_PE32">
876 <attribute name=
"FILEPATH"/>
877 <attribute name=
"FILENAME"/>
878 <attribute name=
"FILEEXT" default=
"" />
880 <element name=
"PRE.PROCESS" optional=
"yes"/>
881 <element name=
"POST.PROCESS" optional=
"yes"/>
887 <!-- TBD ${OBJECTS} -->
888 <equals arg1=
"${LIBS}" arg2=
""/>
892 <GenDll FILEPATH=
"." FILENAME=
"@{FILENAME}" FILEEXT=
"">
894 <LINK.ARG
></LINK.ARG
>
897 <GenEfi FILEPATH=
"." FILENAME=
"@{FILENAME}" FILEEXT=
"dll"/>
903 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>
906 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.pe32"/>
910 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile=
"${BIN_DIR}/@{FILENAME}.efi" />
912 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"
913 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.pe32"
914 sectiontype=
"EFI_SECTION_PE32"/>
919 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile=
"${DEST_DIR_DEBUG}/@{FILENAME}.efi" />
926 <macrodef name=
"EFI_SECTION_VERSION">
927 <attribute name=
"FILEPATH"/>
928 <attribute name=
"FILENAME"/>
929 <attribute name=
"FILEEXT" default=
"" />
930 <attribute name=
"VERSION" default=
"0000"/>
932 <element name=
"PRE.PROCESS" optional=
"yes"/>
933 <element name=
"POST.PROCESS" optional=
"yes"/>
938 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ver"/>
943 <gensection outputfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ver"
944 versionnum=
"@{VERSION}"
945 sectiontype=
"EFI_SECTION_VERSION"/>
953 EFI_SECTION_USER_INTERFACE
955 <macrodef name=
"EFI_SECTION_USER_INTERFACE">
956 <attribute name=
"FILEPATH"/>
957 <attribute name=
"FILENAME"/>
958 <attribute name=
"FILEEXT" default=
"" />
959 <attribute name=
"UI" default=
"${BASE_NAME}"/>
961 <element name=
"PRE.PROCESS" optional=
"yes"/>
962 <element name=
"POST.PROCESS" optional=
"yes"/>
967 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ui"/>
972 <gensection interfacestring=
"@{UI}"
973 outputfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ui"
974 sectiontype=
"EFI_SECTION_USER_INTERFACE"/>
982 EFI_SECTION_DXE_DEPEX
984 <macrodef name=
"EFI_SECTION_DXE_DEPEX">
985 <attribute name=
"FILEPATH"/>
986 <attribute name=
"FILENAME"/>
987 <attribute name=
"FILEEXT" default=
"dxs"/>
989 <element name=
"PRE.PROCESS" optional=
"yes"/>
990 <element name=
"POST.PROCESS" optional=
"yes"/>
996 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>
1000 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>
1003 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1006 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"
1007 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"
1008 sectiontype=
"EFI_SECTION_DXE_DEPEX"/>
1015 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1018 <touch file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1029 EFI_SECTION_PEI_DEPEX
1031 <macrodef name=
"EFI_SECTION_PEI_DEPEX">
1032 <attribute name=
"FILEPATH"/>
1033 <attribute name=
"FILENAME"/>
1034 <attribute name=
"FILEEXT" default=
"dxs"/>
1036 <element name=
"PRE.PROCESS" optional=
"yes"/>
1037 <element name=
"POST.PROCESS" optional=
"yes"/>
1041 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>
1045 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>
1048 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1052 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"
1053 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"
1054 sectiontype=
"EFI_SECTION_PEI_DEPEX"/>
1062 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1065 <touch file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1078 <macrodef name=
"EFI_SECTION_RAW">
1079 <attribute name=
"FILEPATH"/>
1080 <attribute name=
"FILENAME"/>
1081 <attribute name=
"FILEEXT" default=
"bin"/>
1083 <element name=
"PRE.PROCESS" optional=
"yes"/>
1084 <element name=
"POST.PROCESS" optional=
"yes"/>
1089 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}"/>
1092 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.sec"/>
1097 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}"
1098 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.sec"
1099 sectiontype=
"EFI_SECTION_RAW"/>
1107 EFI_SECTION_FIRMWARE_VOLUME_IMAGE
1109 <macrodef name=
"EFI_SECTION_FIRMWARE_VOLUME_IMAGE">
1110 <attribute name=
"FILEPATH"/>
1111 <attribute name=
"FILENAME"/>
1112 <attribute name=
"FILEEXT" default=
"fv"/>
1114 <element name=
"PRE.PROCESS" optional=
"yes"/>
1115 <element name=
"POST.PROCESS" optional=
"yes"/>
1120 <file name=
"${FV_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
1123 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}fv.sec"/>
1129 <copy file=
"${FV_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1130 tofile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1132 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1133 outputfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}fv.sec"
1134 sectiontype=
"EFI_SECTION_FIRMWARE_VOLUME_IMAGE"/>
1145 <macrodef name=
"Build_Binary">
1146 <attribute name=
"FILEPATH"/>
1147 <attribute name=
"FILENAME"/>
1148 <attribute name=
"FILEEXT" default=
"bin"/>
1150 <element name=
"EXTRA.INC" optional=
"yes"/>
1151 <element name=
"EXTRA.ARG" optional=
"yes"/>
1154 <copy file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1155 tofile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.bin"/>
1161 <macrodef name=
"Build_MICROCODE">
1162 <attribute name=
"FILEPATH"/>
1163 <attribute name=
"FILENAME"/>
1164 <attribute name=
"FILEEXT" default=
"TXT"/>
1166 <element name=
"EXTRA.INC" optional=
"yes"/>
1167 <element name=
"EXTRA.ARG" optional=
"yes"/>
1170 <mkdir dir=
"${TARGET_DIR}/Microcode"/>
1171 <flashmap MCIFile=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" MCOFILE=
"${TARGET_DIR}/Microcode/@{FILENAME}.bin"/>
1178 <macrodef name=
"Build_Graphics">
1179 <attribute name=
"FILEPATH"/>
1180 <attribute name=
"FILENAME"/>
1181 <attribute name=
"FILEEXT" default=
"bmp"/>
1183 <element name=
"EXTRA.INC" optional=
"yes"/>
1184 <element name=
"EXTRA.ARG" optional=
"yes"/>
1187 <mkdir dir=
"${MODULE_DIR}/@{FILEPATH}" />
1188 <copy file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1189 tofile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.bin"/>
1192 <macrodef name=
"Build_EFI">
1193 <attribute name=
"FILEPATH"/>
1194 <attribute name=
"FILENAME"/>
1195 <attribute name=
"FILEEXT" default=
"efi"/>
1197 <element name=
"EXTRA.INC" optional=
"yes"/>
1198 <element name=
"EXTRA.ARG" optional=
"yes"/>
1201 <mkdir dir=
"${MODULE_DIR}/@{FILEPATH}" />
1202 <copy file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1203 tofile=
"${DEST_DIR_OUTPUT}/${BASE_NAME}.efi"/>