]>
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"/>
64 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${CC_FAMILY}"
65 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">
67 <argument value=
"${CC_FLAGS}"/>
69 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
74 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
76 <equals arg1=
"@{FILEPATH}" arg2=
"." />
78 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
81 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
88 <macrodef name=
"Build_AUTOGEN">
89 <attribute name=
"FILEPATH"/>
90 <attribute name=
"FILENAME"/>
91 <attribute name=
"FILEEXT" default=
"c"/>
93 <element name=
"EXTRA.INC" optional=
"yes"/>
94 <element name=
"EXTRA.ARG" optional=
"yes"/>
97 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
98 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
99 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
102 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
104 <makedeps DepsFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">
105 <input file=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
106 <input file=
"${DEST_DIR_DEBUG}/AutoGen.h"/>
114 <file ListFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>
117 <file Name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
122 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${CC_FAMILY}"
123 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">
125 <argument value=
"${CC_FLAGS}"/>
127 <fileset casesensitive=
"on" file=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
132 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
134 <equals arg1=
"@{FILEPATH}" arg2=
"." />
136 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
139 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
145 <macrodef name=
"Build_DPX">
146 <attribute name=
"FILEPATH"/>
147 <attribute name=
"FILENAME"/>
148 <attribute name=
"FILEEXT" default=
"dxs"/>
150 <element name=
"EXTRA.INC" optional=
"yes"/>
151 <element name=
"EXTRA.ARG" optional=
"yes"/>
155 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
156 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
157 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
161 <file name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
164 <file name=
"${DEST_DIR_OUTPUT}/${BASE_NAME}.depex"/>
169 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}" family=
"${CC_FAMILY}"
170 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i">
172 <argument value=
"${PP_FLAGS}"/>
173 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
177 <gendepex inputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i" outputFile=
"${DEST_DIR_OUTPUT}/${BASE_NAME}.depex"/>
183 <macrodef name=
"Build_ASM">
184 <attribute name=
"FILEPATH"/>
185 <attribute name=
"FILENAME"/>
186 <attribute name=
"FILEEXT" default=
"asm"/>
188 <element name=
"EXTRA.INC" optional=
"yes"/>
189 <element name=
"EXTRA.ARG" optional=
"yes"/>
191 <!-- Dispath ASM file, there are three type.
193 S - Build_Gcc_Assembly
194 s - Build_Ipf_Assembly -->
197 <equals arg1=
"@{FILEEXT}" arg2=
"asm" />
199 <Build_Assembly FILEPATH=
"@{FILEPATH}" FILENAME=
"@{FILENAME}" FILEEXT=
"@{FILEEXT}">
200 <EXTRA.INC
.1><EXTRA.INC
/></EXTRA.INC
.1>
201 <EXTRA.ARG
.1><EXTRA.ARG
/></EXTRA.ARG
.1>
205 <equals arg1=
"@{FILEEXT}" arg2=
"S" />
207 <Build_Gcc_Assembly FILEPATH=
"@{FILEPATH}" FILENAME=
"@{FILENAME}" FILEEXT=
"@{FILEEXT}">
208 <EXTRA.INC
.1><EXTRA.INC
/></EXTRA.INC
.1>
209 <EXTRA.ARG
.1><EXTRA.ARG
/></EXTRA.ARG
.1>
210 </Build_Gcc_Assembly>
214 <equals arg1=
"@{FILEEXT}" arg2=
"s" />
216 <Build_IPF_Assembly_Code FILEPATH=
"@{FILEPATH}" FILENAME=
"@{FILENAME}" FILEEXT=
"@{FILEEXT}">
217 <EXTRA.INC
.1><EXTRA.INC
/></EXTRA.INC
.1>
218 <EXTRA.ARG
.1><EXTRA.ARG
/></EXTRA.ARG
.1>
219 </Build_IPF_Assembly_Code>
229 <macrodef name=
"Build_Assembly">
230 <attribute name=
"FILEPATH"/>
231 <attribute name=
"FILENAME"/>
232 <attribute name=
"FILEEXT" default=
"asm"/>
234 <element name=
"EXTRA.INC.1" optional=
"yes"/>
235 <element name=
"EXTRA.ARG.1" optional=
"yes"/>
238 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
239 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
240 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
244 <file Name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
247 <file Name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
252 <command type=
"PP" cmd=
"${PP}" workdir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}" family=
"${PP_FAMILY}">
254 <argument value=
"${PP_FLAGS}"/>
255 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
259 <replaceregexp file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"
260 match=
"^(#line +1 +.*@{FILEPATH}/@{FILENAME}\.@{FILEEXT}").+\1"
263 <replaceregexp file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"
267 <replaceregexp file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"
268 match=
"([^_a-zA-Z])0x([0-9a-fA-F]+)"
274 <command type=
"ASM" cmd=
"${ASM}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${ASM_FAMILY}"
275 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">
278 <argument value=
"${ASM_FLAGS}"/>
281 <fileset casesensitive=
"on" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"/>
286 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
288 <equals arg1=
"@{FILEPATH}" arg2=
"." />
290 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
293 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
300 Build GCC assembly code
302 <macrodef name=
"Build_Gcc_Assembly">
303 <attribute name=
"FILEPATH"/>
304 <attribute name=
"FILENAME"/>
305 <attribute name=
"FILEEXT" default=
"asm"/>
307 <element name=
"EXTRA.INC.1" optional=
"yes"/>
308 <element name=
"EXTRA.ARG.1" optional=
"yes"/>
311 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
312 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
313 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
317 <file Name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
320 <file Name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
325 <command type=
"ASM" cmd=
"${ASM}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${ASM_FAMILY}"
326 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">
329 <argument value=
"${ASM_FLAGS}"/>
332 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
337 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
339 <equals arg1=
"@{FILEPATH}" arg2=
"." />
341 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
344 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
353 <macrodef name=
"Build_IPF_Assembly_Code">
354 <attribute name=
"FILEPATH"/>
355 <attribute name=
"FILENAME"/>
356 <attribute name=
"FILEEXT" default=
"s"/>
358 <element name=
"EXTRA.INC.1" optional=
"yes"/>
359 <element name=
"EXTRA.ARG.1" optional=
"yes"/>
362 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
365 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
367 <makedeps DepsFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">
368 <input file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
376 <file listfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>
379 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
384 <command type=
"PP" cmd=
"${PP}" workdir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}" family=
"${PP_FAMILY}">
386 <argument value=
"${PP_FLAGS}"/>
387 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
392 <command type=
"ASM" cmd=
"${ASM}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${ASM_FAMILY}"
393 includepathDelimiter=
"-I" outputDelimiter=
"-o"
394 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">
396 <argument value=
"${ASM_FLAGS}"/>
398 <fileset casesensitive=
"on" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"/>
403 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
405 <equals arg1=
"@{FILEPATH}" arg2=
"." />
407 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
410 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
417 <macrodef name=
"Build_IPF_PP_Code">
418 <attribute name=
"FILEPATH"/>
419 <attribute name=
"FILENAME"/>
420 <attribute name=
"FILEEXT" default=
"i"/>
422 <element name=
"EXTRA.INC" optional=
"yes"/>
423 <element name=
"EXTRA.ARG" optional=
"yes"/>
426 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
429 <command type=
"ASM" includepathDelimiter=
"-I">
430 <includepath path=
"${WORKSPACE_DIR}"/>
431 <includepath path=
"${MODULE_DIR}"/>
432 <includepath path=
"${MODULE_DIR}/${ARCH}"/>
435 <argument value=
"${ASM_FLAGS}"/>
437 <OutputFile File=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
439 <fileset casesensitive=
"on" file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
447 Library private HashMap map = new HashMap();
449 <macrodef name=
"Build_Library">
450 <attribute name=
"FILENAME" />
451 <attribute name=
"FILEEXT" default=
"obj"/>
454 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
455 <var name=
"FILE_PATH" value=
"." />
456 <mkdir dir=
"${BIN_DIR}"/>
460 <fileset dir=
"${DEST_DIR_OUTPUT}" includes=
"${OBJECTS}" />
463 <file name=
"${BIN_DIR}/@{FILENAME}.lib"/>
468 <command type=
"SLINK" cmd=
"${SLINK}" family=
"${SLINK_FAMILY}"
469 outputFile=
"${BIN_DIR}/@{FILENAME}.lib">
470 <argument value=
"${SLINK_FLAGS}"/>
472 <fileset dir=
"${DEST_DIR_OUTPUT}" includes=
"${OBJECTS}"/>
483 <macrodef name=
"Build_UNI">
484 <attribute name=
"FILEPATH"/>
485 <attribute name=
"FILENAME"/>
486 <attribute name=
"FILEEXT" default=
"uni"/>
488 <element name=
"EXTRA.INC" optional=
"yes"/>
489 <element name=
"EXTRA.ARG" optional=
"yes"/>
492 <mkdir dir=
"${DEST_DIR_OUTPUT}/@{FILEPATH}"/>
496 <file name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
499 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
503 <strgather commandtype=
"parse" newdatabase=
"true">
504 <database name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
507 <inputfile name=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
512 <var name=
"SDB_FILES" value=
"${SDB_FILES}, ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
517 .sdb(s) -> .c, .h -> .obj
519 <macrodef name=
"Build_Unicode_Database">
520 <attribute name=
"FILEPATH"/>
521 <attribute name=
"FILENAME"/>
522 <attribute name=
"FILEEXT" default=
"sdb"/>
524 <element name=
"EXTRA.INC" optional=
"yes"/>
525 <element name=
"EXTRA.ARG" optional=
"yes"/>
528 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
529 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
532 <file list=
"${SDB_FILES}"/>
533 <file list=
"${SOURCE_FILES}"/>
536 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
540 <strgather commandtype=
"scan" outputdatabase=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb" verbose=
"read">
541 <skipext name=
".uni"/>
543 <database list=
"${SDB_FILES}"/>
544 <inputfile name=
"${SOURCE_FILES}"/>
551 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
554 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}StrDefs.h"/>
555 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.hpk"/>
556 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>
560 <strgather basename=
"@{FILENAME}Strings" commandtype=
"dump"
561 outputdefines=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}StrDefs.h"
562 outputhpk=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.hpk"
563 outputstring=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c">
564 <database name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>
571 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>
574 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj"/>
579 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}" family=
"${CC_FAMILY}"
580 includepathDelimiter=
"-I"
581 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj">
582 <argument value=
"${CC_FLAGS}"/>
584 <fileset casesensitive=
"on" file=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>
589 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
591 <equals arg1=
"@{FILEPATH}" arg2=
"." />
593 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}Strings.obj" />
596 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}Strings.obj" />
605 <macrodef name=
"Build_VFR">
606 <attribute name=
"FILEPATH"/>
607 <attribute name=
"FILENAME"/>
608 <attribute name=
"FILEEXT" default=
"vfr"/>
610 <element name=
"EXTRA.INC" optional=
"yes"/>
611 <element name=
"EXTRA.ARG" optional=
"yes"/>
614 <mkdir dir=
"${DEST_DIR_DEBUG}/@{FILEPATH}"/>
617 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
619 <makedeps DepsFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">
620 <input file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
628 <file listfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>
631 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>
635 <vfrcompile createIfrBinFile=
"on" createListFile=
"on" outPutDir=
"${DEST_DIR_DEBUG}/@{FILEPATH}" vfrFile=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}">
640 <command type=
"CC" cmd=
"${CC}" workdir=
"${DEST_DIR_OUTPUT}"
641 includepathDelimiter=
"-I" family=
"${CC_FAMILY}"
642 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" >
643 <argument value=
"${CC_FLAGS}"/>
646 <fileset casesensitive=
"on" file=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.c"/>
649 <delete file=
"${PLATFORM_DIR}/@{FILENAME}.i" />
652 <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->
654 <equals arg1=
"@{FILEPATH}" arg2=
"." />
656 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILENAME}.obj" />
659 <var name=
"OBJECTS" value=
"${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />
668 <macrodef name=
"Build_DUMMY">
669 <attribute name=
"FILEPATH"/>
670 <attribute name=
"FILENAME"/>
671 <attribute name=
"FILEEXT"/>
673 <element name=
"EXTRA.INC" optional=
"yes"/>
674 <element name=
"EXTRA.ARG" optional=
"yes"/>
677 <echo message=
"Ignoring ${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
681 <!--############################################################################
683 #############################################################################-->
687 <macrodef name=
"GenDll">
688 <attribute name=
"FILEPATH"/>
689 <attribute name=
"FILENAME"/>
690 <attribute name=
"FILEEXT"/>
692 <element name=
"LIB.ARG" optional=
"yes"/>
693 <element name=
"LINK.ARG" optional=
"yes"/>
696 <var name=
"FILE_BASENAME" value=
"@{FILENAME}" />
697 <var name=
"FILE_PATH" value=
"@{FILEPATH}" />
700 <file list=
"${LIBS}"/>
701 <fileset dir=
"${DEST_DIR_OUTPUT}" includes=
"${OBJECTS}" />
704 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll"/>
709 <command type=
"SLINK" cmd=
"${SLINK}" family=
"${SLINK_FAMILY}"
710 outputFile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Local.lib">
711 <argument value=
"${SLINK_FLAGS}"/>
713 <fileset dir=
"${DEST_DIR_OUTPUT}" includes=
"${OBJECTS}"/>
717 <command type=
"DLINK" cmd=
"${DLINK}" family=
"${DLINK_FAMILY}"
718 outputFile=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll" >
719 <argument value=
"${DLINK_FLAGS}"/>
720 <libset libs=
"${LIBS}"/>
721 <libset libs=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Local.lib"/>
722 <libset libs=
"${DLINK_SPATH}" />
734 <macrodef name=
"GenEfi">
735 <attribute name=
"FILEPATH"/>
736 <attribute name=
"FILENAME"/>
737 <attribute name=
"FILEEXT" default=
"dll"/>
742 <file name=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
745 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>
749 <fwimage componentType=
"${MODULE_TYPE}" outImage=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"
750 peImage=
"${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" time=
"0"/>
757 EFI_SECTION_FREEFORM_SUBTYPE_GUID
759 EFI_SECTION_USER_INTERFACE
760 EFI_SECTION_DXE_DEPEX
761 EFI_SECTION_PEI_DEPEX
766 EFI_SECTION_COMPRESSION
767 EFI_SECTION_GUID_DEFINED
768 EFI_SECTION_COMPATIBILITY16
769 EFI_SECTION_FIRMWARE_VOLUME_IMAGE
775 <macrodef name=
"EFI_SECTION_TE">
776 <attribute name=
"FILEPATH"/>
777 <attribute name=
"FILENAME"/>
778 <attribute name=
"FILEEXT" default=
"" />
780 <element name=
"PRE.PROCESS" optional=
"yes"/>
781 <element name=
"POST.PROCESS" optional=
"yes"/>
787 <equals arg1=
"${LIBS}" arg2=
""/>
791 <GenDll FILEPATH=
"." FILENAME=
"@{FILENAME}" FILEEXT=
"">
793 <LINK.ARG
></LINK.ARG
>
796 <GenEfi FILEPATH=
"." FILENAME=
"@{FILENAME}" FILEEXT=
"dll"/>
802 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>
805 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.tes"/>
809 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile=
"${BIN_DIR}/@{FILENAME}.efi" />
810 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile=
"${DEST_DIR_DEBUG}/@{FILENAME}.efi" />
811 <genteimage Dump=
"false" Verbose=
"false" OutputDir=
"" OutputFile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.te" InputFile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>
812 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.te" tofile=
"${BIN_DIR}/@{FILENAME}.te" />
813 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.te"
814 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.tes"
815 sectiontype=
"EFI_SECTION_TE"/>
822 <macrodef name=
"EFI_SECTION_PE32">
823 <attribute name=
"FILEPATH"/>
824 <attribute name=
"FILENAME"/>
825 <attribute name=
"FILEEXT" default=
"" />
827 <element name=
"PRE.PROCESS" optional=
"yes"/>
828 <element name=
"POST.PROCESS" optional=
"yes"/>
834 <!-- TBD ${OBJECTS} -->
835 <equals arg1=
"${LIBS}" arg2=
""/>
839 <GenDll FILEPATH=
"." FILENAME=
"@{FILENAME}" FILEEXT=
"">
841 <LINK.ARG
></LINK.ARG
>
844 <GenEfi FILEPATH=
"." FILENAME=
"@{FILENAME}" FILEEXT=
"dll"/>
850 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>
853 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.pe32"/>
857 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile=
"${BIN_DIR}/@{FILENAME}.efi" />
859 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi"
860 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.pe32"
861 sectiontype=
"EFI_SECTION_PE32"/>
866 <copy file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile=
"${DEST_DIR_DEBUG}/@{FILENAME}.efi" />
873 <macrodef name=
"EFI_SECTION_VERSION">
874 <attribute name=
"FILEPATH"/>
875 <attribute name=
"FILENAME"/>
876 <attribute name=
"FILEEXT" default=
"" />
877 <attribute name=
"VERSION" default=
"0000"/>
879 <element name=
"PRE.PROCESS" optional=
"yes"/>
880 <element name=
"POST.PROCESS" optional=
"yes"/>
885 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ver"/>
890 <gensection outputfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ver"
891 versionnum=
"@{VERSION}"
892 sectiontype=
"EFI_SECTION_VERSION"/>
900 EFI_SECTION_USER_INTERFACE
902 <macrodef name=
"EFI_SECTION_USER_INTERFACE">
903 <attribute name=
"FILEPATH"/>
904 <attribute name=
"FILENAME"/>
905 <attribute name=
"FILEEXT" default=
"" />
906 <attribute name=
"UI" default=
"${BASE_NAME}"/>
908 <element name=
"PRE.PROCESS" optional=
"yes"/>
909 <element name=
"POST.PROCESS" optional=
"yes"/>
914 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ui"/>
919 <gensection interfacestring=
"@{UI}"
920 outputfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ui"
921 sectiontype=
"EFI_SECTION_USER_INTERFACE"/>
929 EFI_SECTION_DXE_DEPEX
931 <macrodef name=
"EFI_SECTION_DXE_DEPEX">
932 <attribute name=
"FILEPATH"/>
933 <attribute name=
"FILENAME"/>
934 <attribute name=
"FILEEXT" default=
"dxs"/>
936 <element name=
"PRE.PROCESS" optional=
"yes"/>
937 <element name=
"POST.PROCESS" optional=
"yes"/>
943 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>
947 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>
950 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
953 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"
954 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"
955 sectiontype=
"EFI_SECTION_DXE_DEPEX"/>
962 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
965 <touch file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
976 EFI_SECTION_PEI_DEPEX
978 <macrodef name=
"EFI_SECTION_PEI_DEPEX">
979 <attribute name=
"FILEPATH"/>
980 <attribute name=
"FILENAME"/>
981 <attribute name=
"FILEEXT" default=
"dxs"/>
983 <element name=
"PRE.PROCESS" optional=
"yes"/>
984 <element name=
"POST.PROCESS" optional=
"yes"/>
988 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>
992 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>
995 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
999 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.depex"
1000 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"
1001 sectiontype=
"EFI_SECTION_PEI_DEPEX"/>
1009 <available type=
"file" file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1012 <touch file=
"${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>
1025 <macrodef name=
"EFI_SECTION_RAW">
1026 <attribute name=
"FILEPATH"/>
1027 <attribute name=
"FILENAME"/>
1028 <attribute name=
"FILEEXT" default=
"bin"/>
1030 <element name=
"PRE.PROCESS" optional=
"yes"/>
1031 <element name=
"POST.PROCESS" optional=
"yes"/>
1036 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}"/>
1039 <file name=
"${DEST_DIR_OUTPUT}/@{FILENAME}.sec"/>
1044 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}"
1045 outputfile=
"${DEST_DIR_OUTPUT}/@{FILENAME}.sec"
1046 sectiontype=
"EFI_SECTION_RAW"/>
1054 EFI_SECTION_FIRMWARE_VOLUME_IMAGE
1056 <macrodef name=
"EFI_SECTION_FIRMWARE_VOLUME_IMAGE">
1057 <attribute name=
"FILEPATH"/>
1058 <attribute name=
"FILENAME"/>
1059 <attribute name=
"FILEEXT" default=
"fv"/>
1061 <element name=
"PRE.PROCESS" optional=
"yes"/>
1062 <element name=
"POST.PROCESS" optional=
"yes"/>
1067 <file name=
"${FV_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
1070 <file name=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}fv.sec"/>
1076 <copy file=
"${FV_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1077 tofile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1079 <gensection inputfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1080 outputfile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}fv.sec"
1081 sectiontype=
"EFI_SECTION_FIRMWARE_VOLUME_IMAGE"/>
1092 <macrodef name=
"Build_Binary">
1093 <attribute name=
"FILEPATH"/>
1094 <attribute name=
"FILENAME"/>
1095 <attribute name=
"FILEEXT" default=
"bin"/>
1097 <element name=
"EXTRA.INC" optional=
"yes"/>
1098 <element name=
"EXTRA.ARG" optional=
"yes"/>
1101 <copy file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1102 tofile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.bin"/>
1109 <macrodef name=
"Build_Graphics">
1110 <attribute name=
"FILEPATH"/>
1111 <attribute name=
"FILENAME"/>
1112 <attribute name=
"FILEEXT" default=
"bmp"/>
1114 <element name=
"EXTRA.INC" optional=
"yes"/>
1115 <element name=
"EXTRA.ARG" optional=
"yes"/>
1118 <mkdir dir=
"${MODULE_DIR}/@{FILEPATH}" />
1119 <copy file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1120 tofile=
"${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.bin"/>
1123 <macrodef name=
"Build_EFI">
1124 <attribute name=
"FILEPATH"/>
1125 <attribute name=
"FILENAME"/>
1126 <attribute name=
"FILEEXT" default=
"efi"/>
1128 <element name=
"EXTRA.INC" optional=
"yes"/>
1129 <element name=
"EXTRA.ARG" optional=
"yes"/>
1132 <mkdir dir=
"${MODULE_DIR}/@{FILEPATH}" />
1133 <copy file=
"${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"
1134 tofile=
"${DEST_DIR_OUTPUT}/${BASE_NAME}.efi"/>