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=
"" />
26 <isset property=
"PCH"/>
28 <equals arg1=
"${PCH}" arg2=
""/>
33 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/AutoGen.h.gch"/>
35 <makedeps DepsFile=
"${DEST_DIR_OUTPUT}/AutoGen.h.dep">
36 <input file=
"${DEST_DIR_DEBUG}/AutoGen.h"/>
44 <file ListFile=
"${DEST_DIR_OUTPUT}/AutoGen.h.dep"/>
47 <file Name=
"${DEST_DIR_OUTPUT}/AutoGen.h.gch"/>
51 <!-- Generate pre-compiled header -->
53 <command type=
"CC" cmd=
"${PCH}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${CC_FAMILY}"
54 outputFile=
"${DEST_DIR_OUTPUT}/AutoGen.h.obj">
56 <argument value=
"${PCH_FLAGS}"/>
58 <fileset casesensitive=
"on" file=
"${DEST_DIR_DEBUG}/AutoGen.h"/>
63 <equals arg1=
"${CC_FAMILY}" arg2=
"GCC"/>
65 <move file=
"${DEST_DIR_OUTPUT}/AutoGen.h.obj" tofile=
"${DEST_DIR_DEBUG}/AutoGen.h.gch" overwrite=
"true"/>
73 <equals arg1=
"${CC_FAMILY}" arg2=
"GCC"/>
76 <var name=
"OBJECTS" value=
"${OBJECTS} AutoGen.h.obj"/>
86 macro definitions for building files with different types
91 <macrodef name=
"Build_CCode">
92 <attribute name=
"FILEPATH"/>
93 <attribute name=
"FILENAME"/>
94 <attribute name=
"FILEEXT" default=
"c"/>
96 <element name=
"EXTRA.INC" optional=
"yes"/>
97 <element name=
"EXTRA.ARG" optional=
"yes"/>
100 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
101 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
102 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
105 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
107 <makedeps DepsFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">
108 <input file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
109 <input file=
"${DEST_DIR_DEBUG}/AutoGen.h"/>
117 <file ListFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>
120 <file Name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
125 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${CC_FAMILY}"
126 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" dpath=
"${CC_DPATH}">
128 <argument value=
"${CC_FLAGS}"/>
130 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
135 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
137 <equals arg1=
"@{FILEPATH}" arg2=
"." />
139 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
142 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
149 <macrodef name=
"Build_AUTOGEN">
150 <attribute name=
"FILEPATH"/>
151 <attribute name=
"FILENAME"/>
152 <attribute name=
"FILEEXT" default=
"c"/>
154 <element name=
"EXTRA.INC" optional=
"yes"/>
155 <element name=
"EXTRA.ARG" optional=
"yes"/>
158 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
159 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
160 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
163 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
165 <makedeps DepsFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">
166 <input file=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
167 <input file=
"${DEST_DIR_DEBUG}/AutoGen.h"/>
175 <file ListFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>
178 <file Name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
183 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${CC_FAMILY}"
184 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" dpath=
"${CC_DPATH}">
186 <argument value=
"${CC_FLAGS}"/>
188 <fileset casesensitive=
"on" file=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
193 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
195 <equals arg1=
"@{FILEPATH}" arg2=
"." />
197 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
200 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
206 <macrodef name=
"Build_DPX">
207 <attribute name=
"FILEPATH"/>
208 <attribute name=
"FILENAME"/>
209 <attribute name=
"FILEEXT" default=
"dxs"/>
211 <element name=
"EXTRA.INC" optional=
"yes"/>
212 <element name=
"EXTRA.ARG" optional=
"yes"/>
216 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
217 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
218 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
222 <file name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
225 <file name=
"${DEST_DIR_OUTPUT}/${BASE_NAME}.depex"/>
230 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}" family=
"${CC_FAMILY}"
231 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i" dpath=
"${CC_DPATH}">
233 <argument value=
"${PP_FLAGS}"/>
234 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
238 <gendepex inputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i" outputFile=
"${DEST_DIR_OUTPUT}/${BASE_NAME}.depex"/>
244 <macrodef name=
"Build_ASM">
245 <attribute name=
"FILEPATH"/>
246 <attribute name=
"FILENAME"/>
247 <attribute name=
"FILEEXT" default=
"asm"/>
249 <element name=
"EXTRA.INC" optional=
"yes"/>
250 <element name=
"EXTRA.ARG" optional=
"yes"/>
252 <!-- Dispath ASM file, there are three type.
254 S - Build_Gcc_Assembly
255 s - Build_Ipf_Assembly -->
258 <equals arg1=
"@{FILEEXT}" arg2=
"asm" />
260 <Build_Assembly FILEPATH=
"@{FILEPATH}" FILENAME=
"@{FILENAME}" FILEEXT=
"@{FILEEXT}">
261 <EXTRA.INC
.1><EXTRA.INC
/></EXTRA.INC
.1>
262 <EXTRA.ARG
.1><EXTRA.ARG
/></EXTRA.ARG
.1>
266 <equals arg1=
"@{FILEEXT}" arg2=
"S" />
268 <Build_Gcc_Assembly FILEPATH=
"@{FILEPATH}" FILENAME=
"@{FILENAME}" FILEEXT=
"@{FILEEXT}">
269 <EXTRA.INC
.1><EXTRA.INC
/></EXTRA.INC
.1>
270 <EXTRA.ARG
.1><EXTRA.ARG
/></EXTRA.ARG
.1>
271 </Build_Gcc_Assembly>
275 <equals arg1=
"@{FILEEXT}" arg2=
"s" />
277 <Build_IPF_Assembly_Code FILEPATH=
"@{FILEPATH}" FILENAME=
"@{FILENAME}" FILEEXT=
"@{FILEEXT}">
278 <EXTRA.INC
.1><EXTRA.INC
/></EXTRA.INC
.1>
279 <EXTRA.ARG
.1><EXTRA.ARG
/></EXTRA.ARG
.1>
280 </Build_IPF_Assembly_Code>
290 <macrodef name=
"Build_Assembly">
291 <attribute name=
"FILEPATH"/>
292 <attribute name=
"FILENAME"/>
293 <attribute name=
"FILEEXT" default=
"asm"/>
295 <element name=
"EXTRA.INC.1" optional=
"yes"/>
296 <element name=
"EXTRA.ARG.1" optional=
"yes"/>
299 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
300 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
301 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
305 <file Name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
308 <file Name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
313 <command type=
"PP" cmd=
"${PP}" workdir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}" family=
"${PP_FAMILY}" dpath=
"${PP_DPATH}">
315 <argument value=
"${PP_FLAGS}"/>
316 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
320 <replaceregexp file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"
321 match=
"^(#line +1 +.*@{FILEPATH}/@{FILENAME}\.@{FILEEXT}").+\1"
324 <replaceregexp file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"
328 <replaceregexp file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"
329 match=
"([^_a-zA-Z])0x([0-9a-fA-F]+)"
335 <command type=
"ASM" cmd=
"${ASM}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${ASM_FAMILY}"
336 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" dpath=
"${ASM_DPATH}">
339 <argument value=
"${ASM_FLAGS}"/>
342 <fileset casesensitive=
"on" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"/>
347 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
349 <equals arg1=
"@{FILEPATH}" arg2=
"." />
351 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
354 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
361 Build GCC assembly code
363 <macrodef name=
"Build_Gcc_Assembly">
364 <attribute name=
"FILEPATH"/>
365 <attribute name=
"FILENAME"/>
366 <attribute name=
"FILEEXT" default=
"asm"/>
368 <element name=
"EXTRA.INC.1" optional=
"yes"/>
369 <element name=
"EXTRA.ARG.1" optional=
"yes"/>
372 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
373 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
374 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
378 <file Name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
381 <file Name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
386 <command type=
"ASM" cmd=
"${ASM}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${ASM_FAMILY}"
387 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" dpath=
"${ASM_DPATH}">
390 <argument value=
"${ASM_FLAGS}"/>
393 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
398 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
400 <equals arg1=
"@{FILEPATH}" arg2=
"." />
402 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
405 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
414 <macrodef name=
"Build_IPF_Assembly_Code">
415 <attribute name=
"FILEPATH"/>
416 <attribute name=
"FILENAME"/>
417 <attribute name=
"FILEEXT" default=
"s"/>
419 <element name=
"EXTRA.INC.1" optional=
"yes"/>
420 <element name=
"EXTRA.ARG.1" optional=
"yes"/>
423 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
426 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
428 <makedeps DepsFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">
429 <input file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
430 <input file=
"${DEST_DIR_DEBUG}/AutoGen.h"/>
438 <file listfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>
441 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
446 <command type=
"PP" cmd=
"${APP}" workdir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}" family=
"${APP_FAMILY}" dpath=
"${APP_DPATH}">
448 <argument value=
"${APP_FLAGS}"/>
449 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
454 <command type=
"ASM" cmd=
"${ASM}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${ASM_FAMILY}"
455 includepathDelimiter=
"-I" outputDelimiter=
"-o" dpath=
"${ASM_DPATH}"
456 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">
458 <argument value=
"${ASM_FLAGS}"/>
460 <fileset casesensitive=
"on" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"/>
465 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
467 <equals arg1=
"@{FILEPATH}" arg2=
"." />
469 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
472 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
479 <macrodef name=
"Build_IPF_PP_Code">
480 <attribute name=
"FILEPATH"/>
481 <attribute name=
"FILENAME"/>
482 <attribute name=
"FILEEXT" default=
"i"/>
484 <element name=
"EXTRA.INC" optional=
"yes"/>
485 <element name=
"EXTRA.ARG" optional=
"yes"/>
488 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
491 <command type=
"ASM" includepathDelimiter=
"-I" dpath=
"${ASM_DPATH}">
492 <includepath path=
"${WORKSPACE_DIR}"/>
493 <includepath path=
"${MODULE_DIR}"/>
494 <includepath path=
"${MODULE_DIR}/${ARCH}"/>
497 <argument value=
"${ASM_FLAGS}"/>
499 <OutputFile File=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
501 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
509 Library private HashMap map = new HashMap();
511 <macrodef name=
"Build_Library">
512 <attribute name=
"FILENAME" />
513 <attribute name=
"FILEEXT" default=
"obj"/>
516 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
517 <var name=
"FILE_PATH" value=
"." />
518 <mkdir dir=
"${BIN_DIR}"/>
522 <fileset dir=
"${DEST_DIR_OUTPUT}" includes=
"${OBJECTS}" />
525 <file name=
"${BIN_DIR}/@{FILENAME}.lib"/>
530 <command type=
"SLINK" cmd=
"${SLINK}" family=
"${SLINK_FAMILY}"
531 outputFile=
"${BIN_DIR}/@{FILENAME}.lib" dpath=
"${SLINK_DPATH}">
532 <argument value=
"${SLINK_FLAGS}"/>
534 <fileset dir=
"${DEST_DIR_OUTPUT}" includes=
"${OBJECTS}"/>
545 <macrodef name=
"Build_UNI">
546 <attribute name=
"FILEPATH"/>
547 <attribute name=
"FILENAME"/>
548 <attribute name=
"FILEEXT" default=
"uni"/>
550 <element name=
"EXTRA.INC" optional=
"yes"/>
551 <element name=
"EXTRA.ARG" optional=
"yes"/>
554 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
558 <file name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
561 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
565 <strgather commandtype=
"parse" newdatabase=
"true">
566 <database name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
569 <inputfile name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
574 <var name=
"SDB_FILES" value=
"${SDB_FILES}, ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
579 .sdb(s) -> .c, .h -> .obj
581 <macrodef name=
"Build_Unicode_Database">
582 <attribute name=
"FILEPATH"/>
583 <attribute name=
"FILENAME"/>
584 <attribute name=
"FILEEXT" default=
"sdb"/>
586 <element name=
"EXTRA.INC" optional=
"yes"/>
587 <element name=
"EXTRA.ARG" optional=
"yes"/>
590 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
591 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
594 <file list=
"${SDB_FILES}"/>
595 <file list=
"${SOURCE_FILES}"/>
598 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
602 <strgather commandtype=
"scan" outputdatabase=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb" verbose=
"read">
603 <skipext name=
".uni"/>
605 <database list=
"${SDB_FILES}"/>
606 <inputfile name=
"${SOURCE_FILES}"/>
613 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
616 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}StrDefs.h"/>
617 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.hpk"/>
618 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>
622 <strgather basename=
"@{FILENAME}Strings" commandtype=
"dump"
623 outputdefines=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}StrDefs.h"
624 outputhpk=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.hpk"
625 outputstring=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c">
626 <database name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
633 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>
636 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj"/>
641 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${CC_FAMILY}"
642 includepathDelimiter=
"-I" dpath=
"${CC_DPATH}"
643 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj">
644 <argument value=
"${CC_FLAGS}"/>
646 <fileset casesensitive=
"on" file=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>
652 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
654 <equals arg1=
"@{FILEPATH}" arg2=
"." />
656 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}Strings.obj" />
659 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}Strings.obj" />
668 <macrodef name=
"Build_VFR">
669 <attribute name=
"FILEPATH"/>
670 <attribute name=
"FILENAME"/>
671 <attribute name=
"FILEEXT" default=
"vfr"/>
673 <element name=
"EXTRA.INC" optional=
"yes"/>
674 <element name=
"EXTRA.ARG" optional=
"yes"/>
677 <mkdir dir=
"${DEST_DIR_DEBUG}/@{FILEPATH}"/>
680 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
682 <makedeps DepsFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">
683 <input file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
684 <input file=
"${DEST_DIR_DEBUG}/AutoGen.h"/>
692 <file listfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>
695 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
699 <vfrcompile createIfrBinFile=
"on" createListFile=
"on" outPutDir=
"${DEST_DIR_DEBUG}/@{FILEPATH}" vfrFile=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}">
704 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}"
705 includepathDelimiter=
"-I" family=
"${CC_FAMILY}" dpath=
"${CC_DPATH}"
706 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" >
707 <argument value=
"${CC_FLAGS}"/>
710 <fileset casesensitive=
"on" file=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.c"/>
715 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
717 <equals arg1=
"@{FILEPATH}" arg2=
"." />
719 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
722 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
731 <macrodef name=
"Build_DUMMY">
732 <attribute name=
"FILEPATH"/>
733 <attribute name=
"FILENAME"/>
734 <attribute name=
"FILEEXT"/>
736 <element name=
"EXTRA.INC" optional=
"yes"/>
737 <element name=
"EXTRA.ARG" optional=
"yes"/>
740 <echo message=
"Ignoring ${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" level=
"info" />
744 <!--############################################################################
746 #############################################################################-->
750 <macrodef name=
"GenDll">
751 <attribute name=
"FILEPATH"/>
752 <attribute name=
"FILENAME"/>
753 <attribute name=
"FILEEXT"/>
755 <element name=
"LIB.ARG" optional=
"yes"/>
756 <element name=
"LINK.ARG" optional=
"yes"/>
759 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
760 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
763 <file list=
"${LIBS}"/>
764 <fileset dir=
"${DEST_DIR_OUTPUT}" includes=
"${OBJECTS}" />
767 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll"/>
772 <command type=
"SLINK" cmd=
"${SLINK}" family=
"${SLINK_FAMILY}" dpath=
"${SLINK_DPATH}"
773 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Local.lib">
774 <argument value=
"${SLINK_FLAGS}"/>
776 <fileset dir=
"${DEST_DIR_OUTPUT}" includes=
"${OBJECTS}"/>
780 <command type=
"DLINK" cmd=
"${DLINK}" family=
"${DLINK_FAMILY}"
781 outputFile=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll" dpath=
"${DLINK_DPATH}" >
782 <argument value=
"${DLINK_FLAGS}"/>
783 <libset libs=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Local.lib ${LIBS} ${DLINK_SPATH}"/>
795 <macrodef name=
"GenEfi">
796 <attribute name=
"FILEPATH"/>
797 <attribute name=
"FILENAME"/>
798 <attribute name=
"FILEEXT" default=
"dll"/>
803 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
806 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>
810 <fwimage componentType=
"${MODULE_TYPE}" outImage=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"
811 peImage=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" time=
"0"/>
818 EFI_SECTION_FREEFORM_SUBTYPE_GUID
820 EFI_SECTION_USER_INTERFACE
821 EFI_SECTION_DXE_DEPEX
822 EFI_SECTION_PEI_DEPEX
827 EFI_SECTION_COMPRESSION
828 EFI_SECTION_GUID_DEFINED
829 EFI_SECTION_COMPATIBILITY16
830 EFI_SECTION_FIRMWARE_VOLUME_IMAGE
836 <macrodef name=
"EFI_SECTION_TE">
837 <attribute name=
"FILEPATH"/>
838 <attribute name=
"FILENAME"/>
839 <attribute name=
"FILEEXT" default=
"" />
841 <element name=
"PRE.PROCESS" optional=
"yes"/>
842 <element name=
"POST.PROCESS" optional=
"yes"/>
848 <equals arg1=
"${LIBS}" arg2=
""/>
852 <GenDll FILEPATH=
"." FILENAME=
"@{FILENAME}" FILEEXT=
"">
854 <LINK.ARG
></LINK.ARG
>
857 <GenEfi FILEPATH=
"." FILENAME=
"@{FILENAME}" FILEEXT=
"dll"/>
863 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>
866 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.tes"/>
870 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile=
"${BIN_DIR}/@{FILENAME}.efi" />
871 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile=
"${DEST_DIR_DEBUG}/@{FILENAME}.efi" />
872 <genteimage Dump=
"false" Verbose=
"false" OutputDir=
"" OutputFile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.te" InputFile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>
873 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.te"
874 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.tes"
875 sectiontype=
"EFI_SECTION_TE"/>
882 <macrodef name=
"EFI_SECTION_PE32">
883 <attribute name=
"FILEPATH"/>
884 <attribute name=
"FILENAME"/>
885 <attribute name=
"FILEEXT" default=
"" />
887 <element name=
"PRE.PROCESS" optional=
"yes"/>
888 <element name=
"POST.PROCESS" optional=
"yes"/>
894 <!-- TBD ${OBJECTS} -->
895 <equals arg1=
"${LIBS}" arg2=
""/>
899 <GenDll FILEPATH=
"." FILENAME=
"@{FILENAME}" FILEEXT=
"">
901 <LINK.ARG
></LINK.ARG
>
904 <GenEfi FILEPATH=
"." FILENAME=
"@{FILENAME}" FILEEXT=
"dll"/>
910 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>
913 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.pe32"/>
917 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile=
"${BIN_DIR}/@{FILENAME}.efi" />
918 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile=
"${DEST_DIR_DEBUG}/@{FILENAME}.efi" />
919 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"
920 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.pe32"
921 sectiontype=
"EFI_SECTION_PE32"/>
932 <macrodef name=
"EFI_SECTION_VERSION">
933 <attribute name=
"FILEPATH"/>
934 <attribute name=
"FILENAME"/>
935 <attribute name=
"FILEEXT" default=
"" />
936 <attribute name=
"VERSION" default=
"0000"/>
938 <element name=
"PRE.PROCESS" optional=
"yes"/>
939 <element name=
"POST.PROCESS" optional=
"yes"/>
944 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ver"/>
949 <gensection outputfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ver"
950 versionnum=
"@{VERSION}"
951 sectiontype=
"EFI_SECTION_VERSION"/>
959 EFI_SECTION_USER_INTERFACE
961 <macrodef name=
"EFI_SECTION_USER_INTERFACE">
962 <attribute name=
"FILEPATH"/>
963 <attribute name=
"FILENAME"/>
964 <attribute name=
"FILEEXT" default=
"" />
965 <attribute name=
"UI" default=
"${BASE_NAME}"/>
967 <element name=
"PRE.PROCESS" optional=
"yes"/>
968 <element name=
"POST.PROCESS" optional=
"yes"/>
973 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ui"/>
978 <gensection interfacestring=
"@{UI}"
979 outputfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ui"
980 sectiontype=
"EFI_SECTION_USER_INTERFACE"/>
988 EFI_SECTION_DXE_DEPEX
990 <macrodef name=
"EFI_SECTION_DXE_DEPEX">
991 <attribute name=
"FILEPATH"/>
992 <attribute name=
"FILENAME"/>
993 <attribute name=
"FILEEXT" default=
"dxs"/>
995 <element name=
"PRE.PROCESS" optional=
"yes"/>
996 <element name=
"POST.PROCESS" optional=
"yes"/>
1002 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>
1006 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>
1009 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1012 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"
1013 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"
1014 sectiontype=
"EFI_SECTION_DXE_DEPEX"/>
1021 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1024 <touch file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1035 EFI_SECTION_PEI_DEPEX
1037 <macrodef name=
"EFI_SECTION_PEI_DEPEX">
1038 <attribute name=
"FILEPATH"/>
1039 <attribute name=
"FILENAME"/>
1040 <attribute name=
"FILEEXT" default=
"dxs"/>
1042 <element name=
"PRE.PROCESS" optional=
"yes"/>
1043 <element name=
"POST.PROCESS" optional=
"yes"/>
1047 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>
1051 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>
1054 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1058 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"
1059 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"
1060 sectiontype=
"EFI_SECTION_PEI_DEPEX"/>
1068 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1071 <touch file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1084 <macrodef name=
"EFI_SECTION_RAW">
1085 <attribute name=
"FILEPATH"/>
1086 <attribute name=
"FILENAME"/>
1087 <attribute name=
"FILEEXT" default=
"bin"/>
1089 <element name=
"PRE.PROCESS" optional=
"yes"/>
1090 <element name=
"POST.PROCESS" optional=
"yes"/>
1095 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}"/>
1098 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.sec"/>
1103 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}"
1104 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.sec"
1105 sectiontype=
"EFI_SECTION_RAW"/>
1113 EFI_SECTION_FIRMWARE_VOLUME_IMAGE
1115 <macrodef name=
"EFI_SECTION_FIRMWARE_VOLUME_IMAGE">
1116 <attribute name=
"FILEPATH"/>
1117 <attribute name=
"FILENAME"/>
1118 <attribute name=
"FILEEXT" default=
"fv"/>
1120 <element name=
"PRE.PROCESS" optional=
"yes"/>
1121 <element name=
"POST.PROCESS" optional=
"yes"/>
1126 <file name=
"${FV_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
1129 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}fv.sec"/>
1135 <copy file=
"${FV_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1136 tofile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1138 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1139 outputfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}fv.sec"
1140 sectiontype=
"EFI_SECTION_FIRMWARE_VOLUME_IMAGE"/>
1151 <macrodef name=
"Build_Binary">
1152 <attribute name=
"FILEPATH"/>
1153 <attribute name=
"FILENAME"/>
1154 <attribute name=
"FILEEXT" default=
"bin"/>
1156 <element name=
"EXTRA.INC" optional=
"yes"/>
1157 <element name=
"EXTRA.ARG" optional=
"yes"/>
1160 <copy file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1161 tofile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.bin"/>
1168 <macrodef name=
"Build_MICROCODE">
1169 <attribute name=
"FILEPATH"/>
1170 <attribute name=
"FILENAME"/>
1171 <attribute name=
"FILEEXT" default=
"TXT"/>
1173 <element name=
"EXTRA.INC" optional=
"yes"/>
1174 <element name=
"EXTRA.ARG" optional=
"yes"/>
1177 <mkdir dir=
"${TARGET_DIR}/Microcode"/>
1178 <flashmap MCIFile=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" MCOFILE=
"${TARGET_DIR}/Microcode/@{FILENAME}.bin"/>
1185 <macrodef name=
"Build_BMP">
1186 <attribute name=
"FILEPATH"/>
1187 <attribute name=
"FILENAME"/>
1188 <attribute name=
"FILEEXT" default=
"bmp"/>
1190 <element name=
"EXTRA.INC" optional=
"yes"/>
1191 <element name=
"EXTRA.ARG" optional=
"yes"/>
1194 <mkdir dir=
"${MODULE_DIR}/@{FILEPATH}" />
1195 <copy file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1196 tofile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.bin"/>
1203 <macrodef name=
"Build_EFI">
1204 <attribute name=
"FILEPATH"/>
1205 <attribute name=
"FILENAME"/>
1206 <attribute name=
"FILEEXT" default=
"efi"/>
1208 <element name=
"EXTRA.INC" optional=
"yes"/>
1209 <element name=
"EXTRA.ARG" optional=
"yes"/>
1212 <mkdir dir=
"${MODULE_DIR}/@{FILEPATH}" />
1213 <copy file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1214 tofile=
"${DEST_DIR_OUTPUT}/${BASE_NAME}.efi"/>