Added the DbTools that will update the FrameworkDatabase.db file based on what is...
authorlhauch <lhauch@de2fecce-e211-0410-80a6-f3fac2684e05>
Wed, 25 Oct 2006 16:17:28 +0000 (16:17 +0000)
committerlhauch <lhauch@de2fecce-e211-0410-80a6-f3fac2684e05>
Wed, 25 Oct 2006 16:17:28 +0000 (16:17 +0000)
Modified AllResource to include only files that are not compiled.
Added the MSA entries to the SPD file for all modules that are compiled, both Java and C.

git-svn-id: https://edk2.tianocore.org/svn/edk2/trunk@1839 de2fecce-e211-0410-80a6-f3fac2684e05

18 files changed:
edk2/Tools/AllResourceFiles.msa
edk2/Tools/Java/Source/CheckTools/CheckTools.msa [new file with mode: 0644]
edk2/Tools/Java/Source/CheckTools/src/org/tianocore/CheckTools/CheckTools.java
edk2/Tools/Java/Source/CheckTools/src/org/tianocore/CheckTools/ToolChecks.java
edk2/Tools/Java/Source/CheckTools/src/org/tianocore/CheckTools/ToolInfo.java [new file with mode: 0644]
edk2/Tools/Java/Source/ContextTool/ContextTool.msa [new file with mode: 0644]
edk2/Tools/Java/Source/DbTools/DbTools.msa [new file with mode: 0644]
edk2/Tools/Java/Source/DbTools/build.xml [new file with mode: 0644]
edk2/Tools/Java/Source/DbTools/src/org/tianocore/DbTools/DbCmds.java [new file with mode: 0644]
edk2/Tools/Java/Source/DbTools/src/org/tianocore/DbTools/DbTool.java [new file with mode: 0644]
edk2/Tools/Java/Source/DbTools/src/org/tianocore/DbTools/UpdateDb.java [new file with mode: 0644]
edk2/Tools/Java/Source/Merge/Merge.msa
edk2/Tools/Tools.spd
edk2/Tools/bin/dbtool [new file with mode: 0644]
edk2/Tools/bin/dbtool.bat [new file with mode: 0644]
edk2/Tools/bin/fixdb [new file with mode: 0644]
edk2/Tools/bin/fixdb.bat [new file with mode: 0644]
edk2/Tools/build.xml

index 88daf9c..f0ab31e 100755 (executable)
@@ -7,11 +7,8 @@
     <Version>2.0</Version>\r
     <Abstract>This is the EDK II Tool Resources Module</Abstract>\r
     <Description>\r
-      This Module provides the EFI/Tiano Tools and resources that are used to\r
-      create EFI/Tiano Modules and Platform Binary Files (PBF) These resources\r
-      and tools do not require compilation. (The three JAR files are provided,\r
-      Pre-compiled, and do not require additional compilation, the sources are\r
-      provided, but will not be built under normal procedures.\r
+      This Module provides the EFI/Tiano Tool resources that are used\r
+      by Tiano Tools. These resources do not require compilation.\r
     </Description>\r
     <Copyright>Copyright 2005-2006, Intel Corporation</Copyright>\r
     <License>\r
@@ -41,6 +38,10 @@ WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <Filename>bin/ckt.bat</Filename>\r
     <Filename>bin/ContextTool</Filename>\r
     <Filename>bin/ContextTool.bat</Filename>\r
+    <Filename>bin/dbtool</Filename>\r
+    <Filename>bin/dbtool.bat</Filename>\r
+    <Filename>bin/fixdb</Filename>\r
+    <Filename>bin/fixdb.bat</Filename>\r
     <Filename>bin/FrameworkWizard</Filename>\r
     <Filename>bin/FrameworkWizard.bat</Filename>\r
     <Filename>bin/fw</Filename>\r
@@ -50,282 +51,6 @@ WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <Filename>bin/MigrationTools</Filename>\r
     <Filename>bin/MigrationTools.bat</Filename>\r
     <Filename>bin/SAVerify.bat</Filename>\r
-    <Filename>CCode/Source/build.xml</Filename>\r
-    <Filename>CCode/Source/TianoTools.msa</Filename>\r
-    <Filename>CCode/Source/Common/build.xml</Filename>\r
-    <Filename>CCode/Source/Common/CommonLib.c</Filename>\r
-    <Filename>CCode/Source/Common/CommonLib.h</Filename>\r
-    <Filename>CCode/Source/Common/Crc32.c</Filename>\r
-    <Filename>CCode/Source/Common/Crc32.h</Filename>\r
-    <Filename>CCode/Source/Common/EfiCompress.c</Filename>\r
-    <Filename>CCode/Source/Common/EfiCompress.h</Filename>\r
-    <Filename>CCode/Source/Common/EfiCustomizedCompress.h</Filename>\r
-    <Filename>CCode/Source/Common/EfiDecompress.c</Filename>\r
-    <Filename>CCode/Source/Common/EfiDecompress.h</Filename>\r
-    <Filename>CCode/Source/Common/EfiUtilityMsgs.c</Filename>\r
-    <Filename>CCode/Source/Common/EfiUtilityMsgs.h</Filename>\r
-    <Filename>CCode/Source/Common/FvLib.c</Filename>\r
-    <Filename>CCode/Source/Common/FvLib.h</Filename>\r
-    <Filename>CCode/Source/Common/MyAlloc.c</Filename>\r
-    <Filename>CCode/Source/Common/MyAlloc.h</Filename>\r
-    <Filename>CCode/Source/Common/ParseInf.c</Filename>\r
-    <Filename>CCode/Source/Common/ParseInf.h</Filename>\r
-    <Filename>CCode/Source/Common/SimpleFileParsing.c</Filename>\r
-    <Filename>CCode/Source/Common/SimpleFileParsing.h</Filename>\r
-    <Filename>CCode/Source/Common/WinNtInclude.h</Filename>\r
-    <Filename>CCode/Source/CompressDll/build.xml</Filename>\r
-    <Filename>CCode/Source/CompressDll/CompressDll.c</Filename>\r
-    <Filename>CCode/Source/CompressDll/CompressDll.h</Filename>\r
-    <Filename>CCode/Source/CreateMtFile/build.xml</Filename>\r
-    <Filename>CCode/Source/CreateMtFile/CreateMtFile.c</Filename>\r
-    <Filename>CCode/Source/CustomizedCompress/build.xml</Filename>\r
-    <Filename>CCode/Source/CustomizedCompress/CustomizedCompress.c</Filename>\r
-    <Filename>CCode/Source/EfiCompress/build.xml</Filename>\r
-    <Filename>CCode/Source/EfiCompress/EfiCompressMain.c</Filename>\r
-    <Filename>CCode/Source/EfiRom/build.xml</Filename>\r
-    <Filename>CCode/Source/EfiRom/EfiRom.c</Filename>\r
-    <Filename>CCode/Source/FlashMap/build.xml</Filename>\r
-    <Filename>CCode/Source/FlashMap/FlashDefFile.c</Filename>\r
-    <Filename>CCode/Source/FlashMap/FlashDefFile.h</Filename>\r
-    <Filename>CCode/Source/FlashMap/FlashMap.c</Filename>\r
-    <Filename>CCode/Source/FlashMap/Microcode.c</Filename>\r
-    <Filename>CCode/Source/FlashMap/Microcode.h</Filename>\r
-    <Filename>CCode/Source/FlashMap/Symbols.c</Filename>\r
-    <Filename>CCode/Source/FlashMap/Symbols.h</Filename>\r
-    <Filename>CCode/Source/FwImage/build.xml</Filename>\r
-    <Filename>CCode/Source/FwImage/fwimage.c</Filename>\r
-    <Filename>CCode/Source/GenAcpiTable/build.xml</Filename>\r
-    <Filename>CCode/Source/GenAcpiTable/GenAcpiTable.c</Filename>\r
-    <Filename>CCode/Source/GenCapsuleHdr/build.xml</Filename>\r
-    <Filename>CCode/Source/GenCapsuleHdr/CreateGuid.c</Filename>\r
-    <Filename>CCode/Source/GenCapsuleHdr/GenCapsuleHdr.c</Filename>\r
-    <Filename>CCode/Source/GenCRC32Section/build.xml</Filename>\r
-    <Filename>CCode/Source/GenCRC32Section/GenCRC32Section.c</Filename>\r
-    <Filename>CCode/Source/GenCRC32Section/GenCRC32Section.h</Filename>\r
-    <Filename>CCode/Source/GenDepex/build.xml</Filename>\r
-    <Filename>CCode/Source/GenDepex/DepexParser.c</Filename>\r
-    <Filename>CCode/Source/GenDepex/DepexParser.h</Filename>\r
-    <Filename>CCode/Source/GenDepex/GenDepex.c</Filename>\r
-    <Filename>CCode/Source/GenDepex/GenDepex.h</Filename>\r
-    <Filename>CCode/Source/GenFfsFile/build.xml</Filename>\r
-    <Filename>CCode/Source/GenFfsFile/GenFfsFile.c</Filename>\r
-    <Filename>CCode/Source/GenFfsFile/GenFfsFile.h</Filename>\r
-    <Filename>CCode/Source/GenFfsFile/SimpleFileParsing.c</Filename>\r
-    <Filename>CCode/Source/GenFvImage/build.xml</Filename>\r
-    <Filename>CCode/Source/GenFvImage/GenFvImageExe.c</Filename>\r
-    <Filename>CCode/Source/GenFvImage/GenFvImageExe.h</Filename>\r
-    <Filename>CCode/Source/GenFvImage/GenFvImageLib.c</Filename>\r
-    <Filename>CCode/Source/GenFvImage/GenFvImageLib.h</Filename>\r
-    <Filename>CCode/Source/GenFvImage/GenFvImageLibInternal.h</Filename>\r
-    <Filename>CCode/Source/GenFvImage/Ebc/PeCoffLoaderEx.c</Filename>\r
-    <Filename>CCode/Source/GenSection/build.xml</Filename>\r
-    <Filename>CCode/Source/GenSection/GenSection.c</Filename>\r
-    <Filename>CCode/Source/GenSection/GenSection.h</Filename>\r
-    <Filename>CCode/Source/GenTEImage/build.xml</Filename>\r
-    <Filename>CCode/Source/GenTEImage/GenTEImage.c</Filename>\r
-    <Filename>CCode/Source/GuidChk/build.xml</Filename>\r
-    <Filename>CCode/Source/GuidChk/CommonUtils.h</Filename>\r
-    <Filename>CCode/Source/GuidChk/FileSearch.c</Filename>\r
-    <Filename>CCode/Source/GuidChk/FileSearch.h</Filename>\r
-    <Filename>CCode/Source/GuidChk/GuidChk.c</Filename>\r
-    <Filename>CCode/Source/GuidChk/GuidList.c</Filename>\r
-    <Filename>CCode/Source/GuidChk/UtilsMsgs.c</Filename>\r
-    <Filename>CCode/Source/GuidChk/UtilsMsgs.h</Filename>\r
-    <Filename>CCode/Source/Include/Common/BaseTypes.h</Filename>\r
-    <Filename>CCode/Source/Include/Common/Capsule.h</Filename>\r
-    <Filename>CCode/Source/Include/Common/Dependency.h</Filename>\r
-    <Filename>CCode/Source/Include/Common/EfiImage.h</Filename>\r
-    <Filename>CCode/Source/Include/Common/FirmwareFileSystem.h</Filename>\r
-    <Filename>CCode/Source/Include/Common/FirmwareVolumeHeader.h</Filename>\r
-    <Filename>CCode/Source/Include/Common/FirmwareVolumeImageFormat.h</Filename>\r
-    <Filename>CCode/Source/Include/Common/InternalFormRepresentation.h</Filename>\r
-    <Filename>CCode/Source/Include/Common/MultiPhase.h</Filename>\r
-    <Filename>CCode/Source/Include/Common/UefiBaseTypes.h</Filename>\r
-    <Filename>CCode/Source/Include/Common/Variable.h</Filename>\r
-    <Filename>CCode/Source/Include/Common/WorkingBlockHeader.h</Filename>\r
-    <Filename>CCode/Source/Include/Guid/AcpiTableStorage.h</Filename>\r
-    <Filename>CCode/Source/Include/Guid/Apriori.h</Filename>\r
-    <Filename>CCode/Source/Include/Guid/Capsule.h</Filename>\r
-    <Filename>CCode/Source/Include/Guid/FirmwareFileSystem.h</Filename>\r
-    <Filename>CCode/Source/Include/Ia32/ProcessorBind.h</Filename>\r
-    <Filename>CCode/Source/Include/IndustryStandard/pci22.h</Filename>\r
-    <Filename>CCode/Source/Include/Library/PeCoffLib.h</Filename>\r
-    <Filename>CCode/Source/Include/Library/PrintLib.h</Filename>\r
-    <Filename>CCode/Source/Include/Protocol/DevicePath.h</Filename>\r
-    <Filename>CCode/Source/Include/Protocol/GuidedSectionExtraction.h</Filename>\r
-    <Filename>CCode/Source/Include/Protocol/Hii.h</Filename>\r
-    <Filename>CCode/Source/Include/Protocol/UgaDraw.h</Filename>\r
-    <Filename>CCode/Source/Include/X64/ProcessorBind.h</Filename>\r
-    <Filename>CCode/Source/MakeDeps/build.xml</Filename>\r
-    <Filename>CCode/Source/MakeDeps/MakeDeps.c</Filename>\r
-    <Filename>CCode/Source/ModifyInf/build.xml</Filename>\r
-    <Filename>CCode/Source/ModifyInf/ModifyInf.c</Filename>\r
-    <Filename>CCode/Source/Pccts/build.xml</Filename>\r
-    <Filename>CCode/Source/Pccts/CHANGES_FROM_131.txt</Filename>\r
-    <Filename>CCode/Source/Pccts/CHANGES_FROM_133.txt</Filename>\r
-    <Filename>CCode/Source/Pccts/CHANGES_FROM_133_BEFORE_MR13.txt</Filename>\r
-    <Filename>CCode/Source/Pccts/CHANGES_SUMMARY.txt</Filename>\r
-    <Filename>CCode/Source/Pccts/history.ps</Filename>\r
-    <Filename>CCode/Source/Pccts/history.txt</Filename>\r
-    <Filename>CCode/Source/Pccts/KNOWN_PROBLEMS.txt</Filename>\r
-    <Filename>CCode/Source/Pccts/makefile</Filename>\r
-    <Filename>CCode/Source/Pccts/MPW_Read_Me</Filename>\r
-    <Filename>CCode/Source/Pccts/NOTES.bcc</Filename>\r
-    <Filename>CCode/Source/Pccts/NOTES.msvc</Filename>\r
-    <Filename>CCode/Source/Pccts/README</Filename>\r
-    <Filename>CCode/Source/Pccts/RIGHTS</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/antlr.1</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/antlr.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/antlr.g</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/antlr.r</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/antlr1.txt</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/AntlrMS.mak</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/AntlrPPC.mak</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/bits.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/build.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/build.xml</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/dumpcycles.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/dumpnode.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/egman.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/err.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/fcache.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/fset.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/fset2.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/gen.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/generic.h</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/globals.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/hash.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/hash.h</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/lex.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/main.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/makefile</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/makefile.cygwin</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/makefile1</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/misc.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/mode.h</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/mrhoist.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/parser.dlg</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/pred.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/proto.h</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/README</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/scan.c</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/stdpccts.h</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/syn.h</Filename>\r
-    <Filename>CCode/Source/Pccts/antlr/tokens.h</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/automata.c</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/build.xml</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/dlg.1</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/dlg.h</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/dlg.r</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/dlg1.txt</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/DlgMS.mak</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/DlgPPC.mak</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/dlg_a.c</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/dlg_p.c</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/dlg_p.g</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/err.c</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/main.c</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/makefile</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/makefile.cygwin</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/makefile1</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/mode.h</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/output.c</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/parser.dlg</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/relabel.c</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/stdpccts.h</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/support.c</Filename>\r
-    <Filename>CCode/Source/Pccts/dlg/tokens.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/antlr.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/AParser.cpp</Filename>\r
-    <Filename>CCode/Source/Pccts/h/AParser.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/ast.c</Filename>\r
-    <Filename>CCode/Source/Pccts/h/ast.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/ASTBase.cpp</Filename>\r
-    <Filename>CCode/Source/Pccts/h/ASTBase.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/AToken.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/ATokenBuffer.cpp</Filename>\r
-    <Filename>CCode/Source/Pccts/h/ATokenBuffer.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/ATokenStream.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/ATokPtr.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/ATokPtrImpl.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/BufFileInput.cpp</Filename>\r
-    <Filename>CCode/Source/Pccts/h/BufFileInput.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/charbuf.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/charptr.c</Filename>\r
-    <Filename>CCode/Source/Pccts/h/charptr.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/config.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/DLexer.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/DLexerBase.cpp</Filename>\r
-    <Filename>CCode/Source/Pccts/h/DLexerBase.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/dlgauto.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/dlgdef.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/DLG_stream_input.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/err.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/int.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/PBlackBox.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/PCCTSAST.cpp</Filename>\r
-    <Filename>CCode/Source/Pccts/h/PCCTSAST.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/pcctscfg.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/pccts_assert.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/pccts_iostream.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/pccts_istream.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/pccts_setjmp.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/pccts_stdarg.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/pccts_stdio.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/pccts_stdlib.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/pccts_string.h</Filename>\r
-    <Filename>CCode/Source/Pccts/h/pcnames.bat</Filename>\r
-    <Filename>CCode/Source/Pccts/h/slist.cpp</Filename>\r
-    <Filename>CCode/Source/Pccts/h/SList.h</Filename>\r
-    <Filename>CCode/Source/Pccts/support/genmk/genmk.c</Filename>\r
-    <Filename>CCode/Source/Pccts/support/genmk/genmk_old.c</Filename>\r
-    <Filename>CCode/Source/Pccts/support/genmk/makefile</Filename>\r
-    <Filename>CCode/Source/Pccts/support/rexpr/makefile</Filename>\r
-    <Filename>CCode/Source/Pccts/support/rexpr/rexpr.c</Filename>\r
-    <Filename>CCode/Source/Pccts/support/rexpr/rexpr.h</Filename>\r
-    <Filename>CCode/Source/Pccts/support/rexpr/test.c</Filename>\r
-    <Filename>CCode/Source/Pccts/support/set/set.c</Filename>\r
-    <Filename>CCode/Source/Pccts/support/set/set.h</Filename>\r
-    <Filename>CCode/Source/Pccts/support/sym/sym.c</Filename>\r
-    <Filename>CCode/Source/Pccts/support/sym/template.h</Filename>\r
-    <Filename>CCode/Source/PeCoffLoader/BasePeCoff.c</Filename>\r
-    <Filename>CCode/Source/PeCoffLoader/build.xml</Filename>\r
-    <Filename>CCode/Source/PeCoffLoader/Common/EfiImage.h</Filename>\r
-    <Filename>CCode/Source/PeCoffLoader/Ia32/PeCoffLoaderEx.c</Filename>\r
-    <Filename>CCode/Source/PeCoffLoader/Ipf/PeCoffLoaderEx.c</Filename>\r
-    <Filename>CCode/Source/PeCoffLoader/X64/PeCoffLoaderEx.c</Filename>\r
-    <Filename>CCode/Source/PeiRebase/build.xml</Filename>\r
-    <Filename>CCode/Source/PeiRebase/PeiRebaseExe.c</Filename>\r
-    <Filename>CCode/Source/PeiRebase/PeiRebaseExe.h</Filename>\r
-    <Filename>CCode/Source/SecApResetVectorFixup/build.xml</Filename>\r
-    <Filename>CCode/Source/SecApResetVectorFixup/SecApResetVectorFixup.c</Filename>\r
-    <Filename>CCode/Source/SecApResetVectorFixup/SecApResetVectorFixup.h</Filename>\r
-    <Filename>CCode/Source/SecFixup/build.xml</Filename>\r
-    <Filename>CCode/Source/SecFixup/SecFixup.c</Filename>\r
-    <Filename>CCode/Source/SecFixup/SecFixup.h</Filename>\r
-    <Filename>CCode/Source/SetStamp/build.xml</Filename>\r
-    <Filename>CCode/Source/SetStamp/SetStamp.c</Filename>\r
-    <Filename>CCode/Source/SplitFile/build.xml</Filename>\r
-    <Filename>CCode/Source/SplitFile/SplitFile.c</Filename>\r
-    <Filename>CCode/Source/StrGather/build.xml</Filename>\r
-    <Filename>CCode/Source/StrGather/StrGather.c</Filename>\r
-    <Filename>CCode/Source/StrGather/StrGather.h</Filename>\r
-    <Filename>CCode/Source/StrGather/StringDB.c</Filename>\r
-    <Filename>CCode/Source/StrGather/StringDB.h</Filename>\r
-    <Filename>CCode/Source/String/build.xml</Filename>\r
-    <Filename>CCode/Source/String/PrintLib.c</Filename>\r
-    <Filename>CCode/Source/String/PrintLibInternal.c</Filename>\r
-    <Filename>CCode/Source/String/PrintLibInternal.h</Filename>\r
-    <Filename>CCode/Source/String/String.c</Filename>\r
-    <Filename>CCode/Source/Strip/build.xml</Filename>\r
-    <Filename>CCode/Source/Strip/Strip.c</Filename>\r
-    <Filename>CCode/Source/VfrCompile/build.xml</Filename>\r
-    <Filename>CCode/Source/VfrCompile/EfiVfr.h</Filename>\r
-    <Filename>CCode/Source/VfrCompile/VfrCompile.g</Filename>\r
-    <Filename>CCode/Source/VfrCompile/VfrServices.cpp</Filename>\r
-    <Filename>CCode/Source/VfrCompile/VfrServices.h</Filename>\r
-    <Filename>CCode/Source/ZeroDebugData/build.xml</Filename>\r
-    <Filename>CCode/Source/ZeroDebugData/ZeroDebugData.c</Filename>\r
     <Filename>Conf/BuildMacro.xml</Filename>\r
     <Filename>Conf/FrameworkDatabase.template</Filename>\r
     <Filename>Conf/target.template</Filename>\r
@@ -340,530 +65,6 @@ WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <Filename>gcc/README.txt</Filename>\r
     <Filename>gcc/tianoCross-gcc-4.0</Filename>\r
     <Filename>gcc/tianoCross-gcc-4.1</Filename>\r
-    <Filename>Java/Source/CheckTools/build.xml</Filename>\r
-    <Filename>Java/Source/CheckTools/src/org/tianocore/CheckTools/CheckTools.java</Filename>\r
-    <Filename>Java/Source/CheckTools/src/org/tianocore/CheckTools/ToolChecks.java</Filename>\r
-    <Filename>Java/Source/Common/build.xml</Filename>\r
-    <Filename>Java/Source/Common/Common.msa</Filename>\r
-    <Filename>Java/Source/Common/org/tianocore/common/cache/FileTimeStamp.java</Filename>\r
-    <Filename>Java/Source/Common/org/tianocore/common/definitions/EdkDefinitions.java</Filename>\r
-    <Filename>Java/Source/Common/org/tianocore/common/definitions/ToolDefinitions.java</Filename>\r
-    <Filename>Java/Source/Common/org/tianocore/common/exception/EdkException.java</Filename>\r
-    <Filename>Java/Source/Common/org/tianocore/common/logger/DefaultLogger.java</Filename>\r
-    <Filename>Java/Source/Common/org/tianocore/common/logger/EdkLog.java</Filename>\r
-    <Filename>Java/Source/Common/org/tianocore/common/logger/LogMethod.java</Filename>\r
-    <Filename>Java/Source/ContextTool/build.xml</Filename>\r
-    <Filename>Java/Source/ContextTool/org/tianocore/context/ContextMain.java</Filename>\r
-    <Filename>Java/Source/ContextTool/org/tianocore/context/HelpInfo.java</Filename>\r
-    <Filename>Java/Source/ContextTool/org/tianocore/context/ParseParameter.java</Filename>\r
-    <Filename>Java/Source/ContextTool/org/tianocore/context/TargetFile.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/build.xml</Filename>\r
-    <Filename>Java/Source/Cpptasks/cpptasks.mf</Filename>\r
-    <Filename>Java/Source/Cpptasks/CppTasks.msa</Filename>\r
-    <Filename>Java/Source/Cpptasks/cpptasks.tasks</Filename>\r
-    <Filename>Java/Source/Cpptasks/cpptasks.types</Filename>\r
-    <Filename>Java/Source/Cpptasks/javadoc.xml</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AboutCCTask.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ArchEnum.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AslcompilerDef.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AslcompilerEnum.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AssemblerDef.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AssemblerEnum.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CCTask.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CCTaskProgressMonitor.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerDef.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerEnum.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerParam.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CPUEnum.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CUtil.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DependencyInfo.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DependencyTable.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerDef.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerMap.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerProtocolEnum.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/FileVisitor.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerDef.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerEnum.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerParam.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ObjectFileCollector.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OptimizationEnum.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OSFamilyEnum.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OutputTypeEnum.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/PrecompileDef.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/PrecompileExceptDef.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorDef.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorEnumValue.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorParam.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/RuntimeType.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/SourceHistory.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/SubsystemEnum.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetDef.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetHistory.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetHistoryTable.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetInfo.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetMatcher.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/VersionInfo.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSCCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSLibrarian.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandCCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandCfgParser.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandLibrarian.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandProcessor.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandResourceCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/CfgFilenameState.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/ConsumeToSpaceOrNewLine.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/QuoteBranchState.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranLibrarian.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractAslcompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractAssembler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractProcessor.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Aslcompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AslcompilerConfiguration.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Assembler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AssemblerConfiguration.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAslcompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAslcompilerConfiguration.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAssembler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAssemblerConfiguration.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCompilerConfiguration.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineFortranCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineLinkerConfiguration.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Compiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CompilerConfiguration.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Linker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/LinkerConfiguration.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/LinkType.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCommandLineCCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCommandLineCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Processor.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/ProcessorConfiguration.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/ProgressMonitor.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioAslcompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioAssembler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleCCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLibrarian.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioLibrarian.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioMIDLCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioProcessor.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioResourceCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/AbstractArLibrarian.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/AbstractLdLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccAssembler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccCCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccCompatibleCCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccLibrarian.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccProcessor.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GppLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/LdLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccCCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccLibrarian.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccProcessor.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GppLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/LdLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccCCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccLibrarian.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccProcessor.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GppLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/LdLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/hp/aCCCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/hp/aCCLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ibm/VisualAgeCCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ibm/VisualAgeLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux32CCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux32Linker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux64CCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux64Linker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelProcessor.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Aslcompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32CCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Librarian.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Linker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin64CCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390CCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390Linker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390Processor.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccProcessor.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/AbstractParser.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/AbstractParserState.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/BranchState.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/CaseInsensitiveLetterState.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/CParser.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/FilenameState.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/FortranParser.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/LetterState.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/Parser.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/PostE.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/WhitespaceOrCaseInsensitiveLetterState.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/WhitespaceOrLetterState.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89CCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Linker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Processor.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/ForteCCCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/ForteCCLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxCCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxLibrarian.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxLinker.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/AslcompilerArgument.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/AssemblerArgument.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/CommandLineArgument.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/CompilerArgument.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/ConditionalFileSet.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/ConditionalPath.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/DefineArgument.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/DefineSet.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/FlexLong.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/IncludePath.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LibrarySet.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LibraryTypeEnum.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LinkerArgument.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/SystemIncludePath.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/SystemLibrarySet.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/UndefineArgument.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/CommandLineUserDefine.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineArgument.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineCompiler.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineDef.java</Filename>\r
-    <Filename>Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineMapping.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/build.xml</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/FrameworkTasks.msa</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/frameworktasks.tasks</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/Compress.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/CompressHeader.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/CompressSection.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/CreateMtFileTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/Database.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/EfiCompressTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/EfiDefine.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/EfiRomTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/FfsHeader.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/FfsTypes.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/FileArg.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/FlashMapTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/FwImageTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/GenAcpiTableTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/GenCapsuleHdrTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/GenCRC32SectionTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/GenDepexTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/GenFfsFileTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/GenFvImageTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/GenSectionTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/GenTeImageTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/GuidChkTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/IncludePath.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/Input.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/InputFile.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/MakeDeps.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/ModifyInfTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/NestElement.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/PeiReBaseTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/SecApResetVectorFixupTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/SecFixupTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/SectFile.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/Section.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/SetStampTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/SkipExt.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/SplitfileTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/StrGatherTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/StripTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/Tool.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/ToolArg.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/VfrCompilerTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkTasks/org/tianocore/framework/tasks/ZeroDebugDataTask.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/build.xml</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/FrameworkWizard.msa</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/MANIFEST.MF</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/rsc/resources/images/logo.gif</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/rsc/resources/images/No.JPG</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/rsc/resources/images/Yes.JPG</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/About.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/Clone.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/FrameworkWizardUI.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/NewFileChooser.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/SelectModuleBelong.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/SplashScreen.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/ToolChainConfig.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/ToolChainConfigHelp.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/DataType.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/DataValidation.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/EnumerationData.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/FileOperation.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/GlobalData.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/IDefaultTableModel.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/IFileFilter.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Log.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/OpenFile.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/SaveFile.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Sort.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Tools.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/XmlConfig.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/find/Find.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/find/FindResult.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/find/FindResultDetailInfo.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/find/FindResultId.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/find/GuidId.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/find/LibraryClassId.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/find/PcdFindResultId.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/find/PcdId.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/find/PpiId.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/find/ProtocolId.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/Identification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/OpeningFileType.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/OpeningModuleList.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/OpeningModuleType.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/OpeningPackageList.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/OpeningPackageType.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/OpeningPlatformList.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/OpeningPlatformType.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/ToolChainConfigId.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/ToolChainConfigVector.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/ArchCheckBox.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/ExitConfirm.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IComboBox.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IDefaultMutableTreeNode.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IDesktopManager.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IDialog.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IFrame.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IInternalFrame.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/ITree.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/StarLabel.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/iCheckBoxList/ICheckBoxList.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/iCheckBoxList/ICheckBoxListCellRenderer.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/iCheckBoxList/ICheckBoxListener.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/iCheckBoxList/ICheckBoxListItem.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/iCheckBoxList/ICheckBoxListModel.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/AggregationOperation.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/DistributeRule.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/Far.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/FarFileItem.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/FarHeader.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/FarIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/FarInterface.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/FarMd5.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/FarPackage.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/FarPlatformItem.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/FarStringDefinition.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/Manifest.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/ManifestInterface.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/PackageQuery.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/PackageQueryInterface.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/createui/CreateStepFour.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/createui/CreateStepOne.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/createui/CreateStepThree.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/createui/CreateStepTwo.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/deleteui/DeleteStepOne.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/deleteui/DeleteStepTwo.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/installui/InstallStepOne.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/installui/InstallStepTwo.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/updateui/UpdateStepOne.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/updateui/UpdateStepTwo.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/ModuleIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/BootModes/BootModesIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/BootModes/BootModesVector.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/DataHubs/DataHubsIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/DataHubs/DataHubsVector.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Events/EventsIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Events/EventsVector.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Externs/ExternsIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Externs/ExternsVector.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Guids/GuidsIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Guids/GuidsVector.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/HiiPackages/HiiPackagesIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/HiiPackages/HiiPackagesVector.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Hobs/HobsIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Hobs/HobsVector.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/LibraryClass/LibraryClassIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/LibraryClass/LibraryClassVector.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/PackageDependencies/PackageDependenciesIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/PackageDependencies/PackageDependenciesVector.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/PcdCoded/PcdCodedIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/PcdCoded/PcdCodedVector.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/PcdCoded/PcdIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/PcdCoded/PcdVector.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Ppis/PpisIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Ppis/PpisVector.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Protocols/ProtocolsIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Protocols/ProtocolsVector.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/SourceFiles/SourceFilesIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/SourceFiles/SourceFilesVector.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/SystemTables/SystemTablesIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/SystemTables/SystemTablesVector.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Variables/VariablesIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Variables/VariablesVector.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleBootModes.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleDataHubs.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleEvents.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleExterns.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleGuids.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleHiiPackages.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleHobs.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleLibraryClassDefinitions.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModulePackageDependencies.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModulePCDs.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModulePpis.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleProtocols.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleSourceFiles.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleSystemTables.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleVariables.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/MsaHeader.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/BootModesDlg.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/DataHubsDlg.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/EventsDlg.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/ExternsDlg.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/GuidsDlg.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/HiiPackagesDlg.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/HobsDlg.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/LibraryClassDefsDlg.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/PackageDepDlg.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/PCDsDlg.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/PpisDlg.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/ProtocolsDlg.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/SourceFilesDlg.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/SystemTablesDlg.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/VariablesDlg.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/PackageIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/GenGuidDialog.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/GuidEditor.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdFileContents.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdGuidDecls.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdHeader.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdLibClassDecls.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdMsaFiles.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPackageDefinitions.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPackageHeaders.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPcdDefs.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPpiDecls.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdProtocolDecls.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/PlatformIdentification.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/DynamicTree.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdBuildOptions.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdDynamicPcdBuildDefinitions.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFrameworkModules.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFvOptions.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdHeader.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdPlatformDefs.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/GenListDialog.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/GenLongTextDialog.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/ListEditor.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/LongTextEditor.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/TableSorter.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/LibraryClassDescriptor.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/SurfaceAreaQuery.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/WorkspaceProfile.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/toolchain/Preferences.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/toolchain/ToolChainId.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/workspace/Workspace.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/workspace/WorkspaceTools.java</Filename>\r
-    <Filename>Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/workspace/ui/SwitchWorkspace.java</Filename>\r
-    <Filename>Java/Source/GenBuild/build.xml</Filename>\r
-    <Filename>Java/Source/GenBuild/GenBuild.msa</Filename>\r
-    <Filename>Java/Source/GenBuild/GenBuild.tasks</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/FfsProcess.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/FileProcess.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/FrameworkBuildTask.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/GenBuildTask.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/GenBuildThread.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/ModuleBuildFileGenerator.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/autogen/AutoGen.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/autogen/CommonDefinition.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/exception/AutoGenException.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/exception/GenBuildException.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/exception/PcdAutogenException.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/exception/PlatformPcdPreprocessBuildException.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/exception/XmlParseException.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/fpd/FpdParserForThread.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/fpd/FpdParserTask.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/fpd/PlatformBuildFileGenerator.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/global/DpFile.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/global/DpFileList.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/global/GenBuildLogger.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/global/GlobalData.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/global/OnDependency.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/global/OutputManager.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/global/Spd.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/global/SurfaceAreaQuery.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/global/VariableTask.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/id/FpdModuleIdentification.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/id/Identification.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/id/ModuleIdentification.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/id/PackageIdentification.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/id/PlatformIdentification.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/pcd/action/PCDAutoGenAction.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/pcd/action/PcdDatabase.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/pcd/action/PlatformPcdPreprocessActionForBuilding.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/toolchain/ConfigReader.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/toolchain/ToolChainConfig.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/toolchain/ToolChainElement.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/toolchain/ToolChainInfo.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/toolchain/ToolChainKey.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/toolchain/ToolChainMap.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/tools/ModuleItem.java</Filename>\r
-    <Filename>Java/Source/GenBuild/org/tianocore/build/tools/PackageItem.java</Filename>\r
-    <Filename>Java/Source/Merge/build.xml</Filename>\r
-    <Filename>Java/Source/Merge/Merge.msa</Filename>\r
-    <Filename>Java/Source/Merge/readme.txt</Filename>\r
-    <Filename>Java/Source/Merge/src/org/tianocore/Merge/CombineMsa.java</Filename>\r
-    <Filename>Java/Source/Merge/src/org/tianocore/Merge/Merge.java</Filename>\r
-    <Filename>Java/Source/Merge/src/org/tianocore/Merge/MergeCmd.java</Filename>\r
-    <Filename>Java/Source/MigrationTools/build.xml</Filename>\r
-    <Filename>Java/Source/MigrationTools/MANIFEST.MF</Filename>\r
-    <Filename>Java/Source/MigrationTools/MigrationTools.msa</Filename>\r
-    <Filename>Java/Source/MigrationTools/org/tianocore/migration/Common.java</Filename>\r
-    <Filename>Java/Source/MigrationTools/org/tianocore/migration/Critic.java</Filename>\r
-    <Filename>Java/Source/MigrationTools/org/tianocore/migration/Database.java</Filename>\r
-    <Filename>Java/Source/MigrationTools/org/tianocore/migration/FirstPanel.java</Filename>\r
-    <Filename>Java/Source/MigrationTools/org/tianocore/migration/Func.java</Filename>\r
-    <Filename>Java/Source/MigrationTools/org/tianocore/migration/Guid.java</Filename>\r
-    <Filename>Java/Source/MigrationTools/org/tianocore/migration/Macro.java</Filename>\r
-    <Filename>Java/Source/MigrationTools/org/tianocore/migration/MigrationTool.java</Filename>\r
-    <Filename>Java/Source/MigrationTools/org/tianocore/migration/ModuleInfo.java</Filename>\r
-    <Filename>Java/Source/MigrationTools/org/tianocore/migration/ModuleReader.java</Filename>\r
-    <Filename>Java/Source/MigrationTools/org/tianocore/migration/MsaOwner.java</Filename>\r
-    <Filename>Java/Source/MigrationTools/org/tianocore/migration/MsaTreeEditor.java</Filename>\r
-    <Filename>Java/Source/MigrationTools/org/tianocore/migration/MsaWriter.java</Filename>\r
-    <Filename>Java/Source/MigrationTools/org/tianocore/migration/PathIterator.java</Filename>\r
-    <Filename>Java/Source/MigrationTools/org/tianocore/migration/SourceFileReplacer.java</Filename>\r
-    <Filename>Java/Source/MigrationTools/org/tianocore/migration/UI.java</Filename>\r
-    <Filename>Java/Source/PcdTools/build.xml</Filename>\r
-    <Filename>Java/Source/PcdTools/PcdTools.msa</Filename>\r
-    <Filename>Java/Source/PcdTools/org/tianocore/pcd/action/BuildAction.java</Filename>\r
-    <Filename>Java/Source/PcdTools/org/tianocore/pcd/action/PlatformPcdPreprocessAction.java</Filename>\r
-    <Filename>Java/Source/PcdTools/org/tianocore/pcd/entity/CommonDefinition.java</Filename>\r
-    <Filename>Java/Source/PcdTools/org/tianocore/pcd/entity/DynamicTokenValue.java</Filename>\r
-    <Filename>Java/Source/PcdTools/org/tianocore/pcd/entity/MemoryDatabaseManager.java</Filename>\r
-    <Filename>Java/Source/PcdTools/org/tianocore/pcd/entity/ModulePcdInfoFromFpd.java</Filename>\r
-    <Filename>Java/Source/PcdTools/org/tianocore/pcd/entity/SkuInstance.java</Filename>\r
-    <Filename>Java/Source/PcdTools/org/tianocore/pcd/entity/Token.java</Filename>\r
-    <Filename>Java/Source/PcdTools/org/tianocore/pcd/entity/UsageIdentification.java</Filename>\r
-    <Filename>Java/Source/PcdTools/org/tianocore/pcd/entity/UsageInstance.java</Filename>\r
-    <Filename>Java/Source/PcdTools/org/tianocore/pcd/exception/BuildActionException.java</Filename>\r
-    <Filename>Java/Source/PcdTools/org/tianocore/pcd/exception/EntityException.java</Filename>\r
-    <Filename>Java/Source/PcdTools/org/tianocore/pcd/exception/PlatformPcdPreprocessException.java</Filename>\r
-    <Filename>Java/Source/PcdTools/org/tianocore/pcd/exception/UIException.java</Filename>\r
-    <Filename>Java/Source/SurfaceArea/build.xml</Filename>\r
-    <Filename>Java/Source/SurfaceArea/SurfaceArea.msa</Filename>\r
     <Filename>XMLSchema/FarManifest.xsd</Filename>\r
     <Filename>XMLSchema/FrameworkDataAttributes.xsd</Filename>\r
     <Filename>XMLSchema/FrameworkDataElements.xsd</Filename>\r
diff --git a/edk2/Tools/Java/Source/CheckTools/CheckTools.msa b/edk2/Tools/Java/Source/CheckTools/CheckTools.msa
new file mode 100644 (file)
index 0000000..bcda843
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\r
+  <MsaHeader>\r
+    <ModuleName>Check Tool Definitions</ModuleName>\r
+    <ModuleType>TOOL</ModuleType>\r
+    <GuidValue>015250d4-e7e2-452f-a6aa-c8be46acbfc7</GuidValue>\r
+    <Version>0.1</Version>\r
+    <Abstract>The tool checks the active tool definition file to verify tools exists</Abstract>\r
+    <Description>\r
+This tool will verify the tool chain configuration file to verify that the directories and programs exist.\r
+It will also check to see if an ACPI compiler has been defined for tool chain tag names - if not, then it prints a warning.\r
+It also checks the assembler to see if it exists, and where.\r
+The quiet option will not print anything.\r
+The return values are:\r
+  0 - PASS\r
+  1 - FAIL\r
+\r
+USAGE:\r
+checkTools [-h] [-d] [-i] [-v] [-s | -scan] [-t | -test] [-q | -quiet] [[-f | -filename] filename.txt]</Description>\r
+    <Copyright>Copyright (c) 2006, Intel Corporation   All rights reserved.</Copyright>\r
+    <License URL="http://opensource.org/licenses/bsd-license.php">This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution.  The full text of the license may be found at  http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>\r
+    <Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052</Specification>\r
+  </MsaHeader>\r
+  <ModuleDefinitions>\r
+    <SupportedArchitectures>EBC IA32 X64 IPF ARM PPC</SupportedArchitectures>\r
+    <BinaryModule>false</BinaryModule>\r
+    <OutputFileBasename>Merge</OutputFileBasename>\r
+  </ModuleDefinitions>\r
+  <SourceFiles>\r
+    <Filename>src/org/tianocore/CheckTools/ToolChecks.java</Filename>\r
+    <Filename>src/org/tianocore/CheckTools/ToolInfo.java</Filename>\r
+    <Filename>src/org/tianocore/CheckTools/CheckTools.java</Filename>\r
+    <Filename>build.xml</Filename>\r
+    <Filename>readme.txt</Filename>\r
+  </SourceFiles>\r
+</ModuleSurfaceArea>\r
index a7b5527..7c0a26b 100644 (file)
  *      a file that was specified in target.txt
  *
  * -t = TEST can be used with -f or -s, not with -i.
+ * 
+ * -d = DUMP can be used with -f, not with -i
+ * 
+ * -q = QUIET - turns off all System.out.print statements, the return code
+ *              is the only thing that will determine PASS or FAIL
  *
  */
 package org.tianocore.CheckTools;
@@ -49,28 +54,35 @@ public class CheckTools {
 
     private int VERBOSE = 0;
 
+    private boolean QUIET = false;
+
     // private String argv[];
-    
+
     private final int DEFAULT = 1;
 
     private final int TEST = 2;
 
     private final int SCAN = 4;
 
-    private final int INTERACTIVE = 8;
+    private final int DUMP = 8;
+
+    private final int INTERACTIVE = 16;
 
     private boolean USERFILE = false;
 
     private String inFile = "";
-    
+
     private final int PASS = 0;
-    
+
     private final int FAIL = 1;
 
     private String SEP = System.getProperty("file.separator");
 
     public static void main(String[] argv) {
-        int exitCode = new CheckTools().checkTool(argv);
+        CheckTools cts = new CheckTools();
+        int exitCode = cts.checkTool(argv);
+        if (DEBUG > 10)
+            System.out.println("Exit Code: " + exitCode);
         if (exitCode == -1) {
             new CheckTools().usage();
             System.exit(1);
@@ -79,57 +91,48 @@ public class CheckTools {
     }
 
     private int checkTool(String[] arguments) {
-        String WORKSPACE = System.getenv("WORKSPACE");
-        if ((DEBUG > 0) || (VERBOSE > 0))
-            System.out.println("Verifying Tool Chains for WORKSPACE: " + WORKSPACE);
-        int returnCode = 0;
-
-        if (WORKSPACE == null) {
-            System.out.println("Please set the environment variable, WORKSPACE and run again.");
-            System.exit(FAIL);
-        }
-        String targetTxt = WORKSPACE + SEP + "Tools" + SEP + "Conf" + SEP + "target.txt";
-
         if ((DEBUG > 1) && (arguments.length > 0))
             System.out.println("Arguments: ");
         int cmdCode = DEFAULT;
         if (arguments.length > 0) {
             cmdCode = DEFAULT;
+            for (int i = 0; i < arguments.length; i++)
+                if (arguments[i].toLowerCase().startsWith("-q"))
+                    QUIET = true;
             for (int i = 0; i < arguments.length; i++) {
                 String arg = arguments[i];
                 if (DEBUG > 1)
                     System.out.println(" [" + i + "] " + arg);
                 if (!(arg.toLowerCase().startsWith("-t") || arg.toLowerCase().startsWith("-s")
-                      || arg.toLowerCase().startsWith("-i") || arg.toLowerCase().startsWith("-v") 
+                      || arg.toLowerCase().startsWith("-d") || arg.toLowerCase().startsWith("-i")
+                      || arg.toLowerCase().startsWith("-v") || arg.toLowerCase().startsWith("-q")
                       || arg.toLowerCase().startsWith("-h") || arg.toLowerCase().startsWith("-f"))) {
                     // Only allow valid option flags
-                    System.out.println("Invalid argument: " + arg);
-                    usage();
+                    if (QUIET == false) {
+                        System.out.println("Invalid argument: " + arg);
+                        usage();
+                    }
                     System.exit(FAIL);
                 }
 
-                if (arg.toLowerCase().startsWith("-h")) {
-                    usage();
-                    System.exit(PASS);
-                }
-
-                if (arg.toLowerCase().startsWith("-t")) {
+                if (arg.toLowerCase().startsWith("-d")) {
                     if (cmdCode == DEFAULT) {
-                        cmdCode = TEST;
+                        cmdCode = DUMP;
                     } else {
-                        System.out.println("Invalid Options");
+                        if (QUIET == false)
+                            System.out.println("Invalid Options");
                         usage();
                         System.exit(FAIL);
                     }
                 }
-                if (arg.toLowerCase().startsWith("-s")) {
-                    if (cmdCode == DEFAULT) {
-                        cmdCode = SCAN;
-                    } else {
-                        System.out.println("Invalid Options");
-                        usage();
-                        System.exit(FAIL);
-                    }
+                if (arg.toLowerCase().startsWith("-f")) {
+                    i++;
+                    inFile = arguments[i];
+                    USERFILE = true;
+                }
+                if (arg.toLowerCase().startsWith("-h")) {
+                    usage();
+                    System.exit(PASS);
                 }
                 if (arg.toLowerCase().startsWith("-i")) {
                     // Interactive can be specified with any
@@ -137,10 +140,30 @@ public class CheckTools {
                     // on fail mode.
                     cmdCode = cmdCode | INTERACTIVE;
                 }
-                if (arg.toLowerCase().startsWith("-f")) {
-                    i++;
-                    inFile = arguments[i];
-                    USERFILE = true;
+                if (arg.toLowerCase().startsWith("-q")) {
+                    QUIET = true;
+                }
+                if (arg.toLowerCase().startsWith("-s")) {
+                    if (cmdCode == DEFAULT) {
+                        cmdCode = SCAN;
+                    } else {
+                        if (!QUIET) {
+                            System.out.println("Invalid Options");
+                            usage();
+                        }
+                        System.exit(FAIL);
+                    }
+                }
+                if (arg.toLowerCase().startsWith("-t")) {
+                    if (cmdCode == DEFAULT) {
+                        cmdCode = TEST;
+                    } else {
+                        if (!QUIET) {
+                            System.out.println("Invalid Options");
+                            usage();
+                        }
+                        System.exit(FAIL);
+                    }
                 }
                 if (arg.startsWith("-v")) {
                     // Verbose level can be increased to print
@@ -148,13 +171,30 @@ public class CheckTools {
                     VERBOSE += 1;
                 }
                 if (arg.startsWith("-V")) {
-                    System.out.println(copyright);
-                    System.out.println("CheckTools, " + version);
+                    if (!QUIET) {
+                        System.out.println(copyright);
+                        System.out.println("CheckTools, " + version);
+                    }
                     System.exit(PASS);
                 }
             }
         }
-        
+        if (QUIET)
+            VERBOSE = 0;
+
+        String WORKSPACE = System.getenv("WORKSPACE");
+        if ((DEBUG > 0) || (VERBOSE > 0))
+            System.out.println("Verifying Tool Chains for WORKSPACE: " + WORKSPACE);
+        int returnCode = 0;
+
+        if (WORKSPACE == null) {
+            if (QUIET == false)
+                System.out.println("Please set the environment variable, WORKSPACE and run again.");
+            System.exit(FAIL);
+        }
+        String targetTxt = WORKSPACE + SEP + "Tools" + SEP + "Conf" + SEP + "target.txt";
+
+
         if (inFile.length() < 1) {
             //
             // Check the target.txt file for a  Tool Configuration File.
@@ -183,7 +223,8 @@ public class CheckTools {
                     }
                     bufReader.close();
                 } catch (IOException e) {
-                    System.out.println(" [target.txt] Read Error: " + e);
+                    if (QUIET == false)
+                        System.out.println(" [target.txt] Read Error: " + e);
                     System.exit(FAIL);
                 }
             }
@@ -195,18 +236,22 @@ public class CheckTools {
         if (!toolsFile.exists()) {
             // use the template file
             if (USERFILE) {
-                System.out.println("Could not locate the specified file: " + inFile);
-                System.out.println(" It must be located in the WORKSPACE" + SEP + "Tools" + SEP + "Conf directory");
+                if (QUIET == false) {
+                    System.out.println("Could not locate the specified file: " + inFile);
+                    System.out.println(" It must be located in the WORKSPACE" + SEP + "Tools" + SEP + "Conf directory");
+                }
                 System.exit(FAIL);
             }
             toolsDef = WORKSPACE + SEP + "Tools" + SEP + "Conf" + SEP + "tools_def.template";
             File toolsTemplate = new File(toolsDef);
             if (!toolsTemplate.exists()) {
-                System.out.println("Your WORKSPACE is not properly configured!");
+                if (QUIET == false)
+                    System.out.println("Your WORKSPACE is not properly configured!");
                 System.exit(FAIL);
             } else {
-                System.out.println("**** WARNING: No Tool Configuration File was found, using the template file, "
-                                   + toolsDef);
+                if (QUIET == false)
+                    System.out.println("**** WARNING: No Tool Configuration File was found, using the template file, "
+                                       + toolsDef);
             }
         }
 
@@ -216,20 +261,29 @@ public class CheckTools {
         // check tool configuration file
         if (DEBUG > 2)
             System.out.println("Calling checkTools(" + toolsDef + ", " + cmdCode + ", " + VERBOSE + ")");
-        returnCode = new ToolChecks().checkTools(toolsDef, cmdCode, VERBOSE);
+        ToolChecks tc = new ToolChecks();
+        returnCode = tc.checkTools(toolsDef, cmdCode, VERBOSE, QUIET);
 
+        if (VERBOSE > 10)
+            System.out.println(" checkTools returned: " + returnCode);
         return returnCode;
     }
 
     private void usage() {
-        System.out.println("Usage: checkTools [-h] [-i] [-v] [-s | -scan] [-t | -test] [[-f | -filename] filename.txt]");
+        if (QUIET)
+            return;
+        System.out
+                  .println("Usage: checkTools [-h] [-d] [-i] [-v] [-s | -scan] [-t | -test] [-q | -quiet] [[-f | -filename] filename.txt]");
         System.out.println("  Where");
         System.out.println("     -h           Help - display this screen.");
+        System.out.println("     -d           Dump - display the tool defintion file in user readable format");
         System.out.println("     -i           Interactive query - not yet implemented!");
         System.out.println("     -v           Verbose - add up to 3 -v options to increase info messages.");
         System.out.println("     -s           Scan - search the usual places on your system for tools.");
         System.out.println("                    The Scan feature not yet implemented!.");
         System.out.println("     -t           Test - checks that PATH entries in the tool configuration file exist.");
+        System.out
+                  .println("     -q           Quiet - no messages get printed, the return value determines pass or fail.");
         System.out.println("     -f filename  Use filename instead of the file specified in target.txt or");
         System.out.println("                    tools_def.txt or tools_def.template.");
         System.out.println("                    By Rule, all tool configuration files must reside in the");
index 5dbd5c5..59cc336 100644 (file)
@@ -46,46 +46,66 @@ public class ToolChecks {
 
     private final int SCAN = 4;
 
-    private final int INTERACTIVE = 8;
+    private final int DUMP = 8;
+
+    private final int INTERACTIVE = 16;
 
     private final int PASS = 0;
 
     private final int FAIL = 1;
-    
+
     private ArrayList<String> errLog = new ArrayList<String>();
-    
+
     private ArrayList<String> goodLog = new ArrayList<String>();
 
-    public int checkTools(String toolConfFile, int cmdCode, int VERBOSE) {
+    private ArrayList<String> warnLog = new ArrayList<String>();
+
+    public int checkTools(String toolConfFile, int cmdCode, int VERBOSE, boolean QUIET) {
 
         int returnCode = FAIL;
         boolean interActive = false;
 
         if ((DEBUG > 0) || (VERBOSE > 0)) {
-            System.out.println("Using Tool Configuration File: " + toolConfFile);
+            if ((cmdCode & DUMP) == DUMP)
+                System.out.print("Using Tool Configuration File: " + toolConfFile + "  ");
+            else
+                System.out.println("Using Tool Configuration File: " + toolConfFile);
         }
-        
+
         if (DEBUG > 2)
             System.out.println("The cmdCode: " + cmdCode);
-        
+
         if ((cmdCode & INTERACTIVE) == INTERACTIVE) {
             interActive = true;
-            System.out.println("***** WARNING ***** The Interactive function has not been implemented yet!");
+            if (QUIET == false)
+                System.out.println("***** WARNING ***** The Interactive function has not been implemented yet!");
+        }
+
+        if ((cmdCode & DUMP) == DUMP) {
+            returnCode = dumpFile(toolConfFile, VERBOSE, QUIET);
+            if (DEBUG > 10)
+                System.out.println("dumpFile returned: " + returnCode);
         }
 
         if ((cmdCode & SCAN) == SCAN) {
-            returnCode = scanFile(toolConfFile, interActive, VERBOSE);
+            returnCode = scanFile(toolConfFile, interActive, VERBOSE, QUIET);
         }
 
         if (((cmdCode & TEST) == TEST) || ((cmdCode & DEFAULT) == DEFAULT))
-            returnCode = testFile(toolConfFile, interActive, VERBOSE);
-        
-        if (!errLog.isEmpty()) {
-            System.out.println("Tool Configuration File: " + toolConfFile);
-            for (int i = 0; i < goodLog.size(); i++)
-                System.out.println("Tool Chain Tag Name: " + goodLog.get(i) + " is valid!");
+            returnCode = testFile(toolConfFile, interActive, VERBOSE, QUIET);
+
+        if ((errLog.isEmpty() == false) && (QUIET == false)) {
+            // We had ERRORS, not just Warnings.
+            // System.out.println("Tool Configuration File: " + toolConfFile);
+            System.out.println(" goodLog has: " + goodLog.size() + " entries");
+            if ((goodLog.isEmpty() == false) && (VERBOSE > 1))
+                for (int i = 0; i < goodLog.size(); i++)
+                    System.out.println("Tool Chain Tag Name: " + goodLog.get(i) + " is valid!");
             for (int i = 0; i < errLog.size(); i++)
                 System.out.println(errLog.get(i));
+            if (warnLog.isEmpty() == false)
+                for (int i = 0; i < warnLog.size(); i++)
+                    System.out.println("  " + warnLog.get(i));
             if (VERBOSE > 0) {
                 System.out.println();
                 System.out.println("You can remove these WARNING messages by editing the file:");
@@ -94,24 +114,644 @@ public class ToolChecks {
                 System.out.println("chain tag names that do not apply to your system.");
             }
         } else {
-            System.out.println("");
-            System.out.println("  Tool Configuration File: " + toolConfFile + " is valid!");
+            if (QUIET == false) {
+                if ((cmdCode & DUMP) == DUMP)
+                    System.out.println("");
+                if (VERBOSE > 0) {
+                    System.out.print("Valid Tag Names:");
+                    for (int i = 0; i < goodLog.size(); i++)
+                        System.out.print(" " + goodLog.get(i));
+                    System.out.println("");
+                }
+                if (warnLog.isEmpty() == false)
+                    for (int i = 0; i < warnLog.size(); i++)
+                        System.out.println("  " + warnLog.get(i));
+                if (returnCode == 0)
+                    if (warnLog.isEmpty())
+                        System.out.println("  Tool Configuration File: " + toolConfFile + " is valid!");
+                    else
+                        System.out.println("  Tool Configuration File: " + toolConfFile
+                                           + " is valid!  However, there are WARNINGS!");
+                else
+                    System.out.println("  Tool Configuration File: " + toolConfFile
+                                       + " contains INVALID tool tag names!");
+            }
         }
 
         return returnCode;
     }
 
-    private int scanFile(String testFile, boolean interActive, int VERBOSE) {
+    private int scanFile(String testFile, boolean interActive, int VERBOSE, boolean QUIET) {
         if ((DEBUG > 0) || (VERBOSE > 0))
             System.out.println("Scanning the Normal Installation Locations ...");
-        System.out.println("The Scan function has not been implemented yet!");        
+        System.out.println("The Scan function has not been implemented yet!");
         return FAIL;
     }
-    private int testFile(String testFile, boolean interActive, int VERBOSE) {
+
+    private int dumpFile(String testFile, int VERBOSE, boolean QUIET) {
+        int retCode = PASS;
+        try {
+            //
+            // initialize local variables
+            //
+            ArrayList<ToolInfo> info = new ArrayList<ToolInfo>();
+            String readLine = "";
+            String fileLine[] = new String[2];
+            String property[] = new String[5];
+            ToolInfo toolInf = null;
+            String lastTagName = "arf";
+            String lastFamily = "arf";
+            String lastArch = "IA32";
+            String lastCmdCode = "arf";
+            //            String lastFlags = "arf";
+            boolean found = false;
+            String tFamily = "arf";
+            String tCmdName = "arf";
+            String acpiPath = "";
+            String cmdPath = "";
+            String asmPath = "";
+            int ctr = 0;
+            //
+            // Setup the reader
+            //
+            FileReader toolConfFile = new FileReader(testFile);
+            BufferedReader bufReader = new BufferedReader(toolConfFile);
+
+            while ((readLine = bufReader.readLine()) != null) {
+                if (!readLine.startsWith("#")) {
+                    if (readLine.contains("IDENTIFIER")) {
+                        readLine = readLine.trim();
+                        fileLine = readLine.split("=");
+                        if (QUIET == false)
+                            System.out.println("IDENTIFIER: " + fileLine[1].trim());
+                        toolInf = new ToolInfo();
+                        toolInf.setValid();
+                    } else if (readLine.contains("_")) {
+                        /**
+                         * This section should complete array values
+                         * String TagName
+                         * String Family
+                         * boolean Valid
+                         * String Arch
+                         * ArrayList<String> Targets
+                         * ArrayList<String> CmdCode
+                         * ArrayList<String> Path
+                         * ArrayList<String> Arguments
+                         */
+                        if (DEBUG > 10)
+                            System.out.println("Processing: " + readLine.trim());
+                        readLine = readLine.trim();
+                        readLine = readLine.replaceFirst("=", "_SPLIT_HERE_");
+                        fileLine = readLine.split("_SPLIT_HERE_");
+                        fileLine[0] = fileLine[0].trim();
+                        fileLine[1] = fileLine[1].trim();
+                        property = fileLine[0].split("_");
+
+                        // Covert to simple string names
+                        String tTarget = property[0].trim();
+                        if (tTarget.contentEquals("*"))
+                            tTarget = "All Targets";
+                        String tTag = property[1].trim();
+                        String tArch = property[2].trim();
+                        String tCmdCode = property[3].trim();
+                        String tArg = property[4].trim();
+                        if (tArg.contentEquals("FAMILY"))
+                            tFamily = fileLine[1].trim();
+                        if (tArg.contentEquals("NAME")) {
+                            tCmdName = fileLine[1].trim();
+                            tCmdCode = tCmdCode + " (" + tCmdName + ")";
+                        }
+
+                        String tVal = fileLine[1].trim();
+
+                        // Process the TagName
+                        if ((!tTag.contentEquals(lastTagName))
+                            || ((!tArch.contentEquals(lastArch)) && (!tArch.contentEquals("*")))
+                            || (!tFamily.contentEquals(lastFamily))) {
+                            if (DEBUG > 10) {
+                                System.out.println("  LAST Tag: " + lastTagName + " Arch: " + lastArch + " Family: "
+                                                   + lastFamily);
+                                System.out.println("  NEXT Tag: " + tTag + " Arch: " + tArch + " Family: " + tFamily);
+                            }
+                            if ((!lastTagName.equals("arf")) && (!tTag.equals("*"))) {
+                                toolInf.setTagName(lastTagName);
+                                toolInf.setFamily(lastFamily);
+                                toolInf.setArch(lastArch);
+                                if (toolInf.getCmdCode().size() < 1)
+                                    toolInf.addCmdCode(lastCmdCode);
+                                info.add(toolInf);
+                                toolInf = new ToolInfo();
+                                toolInf.setValid();
+                                if (DEBUG > 3)
+                                    System.out.println("  ADDED " + ctr + " Tag: " + lastTagName + " Arch: " + lastArch
+                                                       + " Family: " + lastFamily + " CmdCode: " + lastCmdCode);
+                                ctr++;
+
+                            }
+
+                            if ((!tTag.contentEquals("*")) && (!tTag.contentEquals(lastTagName)))
+                                lastTagName = tTag;
+
+                            if ((!tArch.contentEquals(lastArch)) && (!tArch.contentEquals("*")))
+                                lastArch = tArch;
+                            if ((!tArch.contentEquals(lastArch)) && (tArch.contentEquals("*")))
+                                lastArch = "IA32";
+
+                            if (!tFamily.contentEquals(lastFamily))
+                                lastFamily = tFamily;
+                            if (DEBUG > 10)
+                                System.out.println("    Setting Tag: " + lastTagName + " Arch: " + lastArch
+                                                   + " Family: " + lastFamily);
+                        }
+
+                        // Set the Arch
+                        if ((!lastArch.contentEquals(tArch)) && (!tArch.contentEquals("*"))) {
+                            toolInf.setArch(tArch);
+                            lastArch = tArch;
+                            if (DEBUG > 10)
+                                System.out.println("    Setting Arch: " + tArch);
+                        }
+
+                        // Process Target field - making sure we add only unique values.
+                        if (!tTarget.contains("*")) {
+                            found = false;
+                            for (int k = 0; k < toolInf.getTargetName().size(); k++)
+                                if (toolInf.getTargetName(k).contentEquals(tTarget))
+                                    found = true;
+                            if (!found) {
+                                toolInf.addTargetName(tTarget);
+                                if (DEBUG > 10)
+                                    System.out.println("    Adding Target: " + tTarget);
+                            }
+                        }
+
+                        // Process Command Code Field - making sure we add only unique values.
+                        if (!tCmdCode.contentEquals("*")) {
+                            found = false;
+                            for (int k = 0; k < toolInf.getCmdCode().size(); k++)
+                                if (toolInf.getCmdCode(k).startsWith(tCmdCode))
+                                    found = true;
+                            if (!found) {
+                                if (!tCmdCode.contains(" (")) {
+                                    boolean nf = true;
+                                    for (int m = toolInf.size(); m >= 0; --m) {
+                                        if (nf) {
+                                            ArrayList<String> lastCmdEntry = info.get(m).getCmdCode();
+                                            for (int l = 0; l < lastCmdEntry.size(); l++) {
+                                                if (lastCmdEntry.get(l).startsWith(tCmdCode)) {
+                                                    tCmdCode = lastCmdEntry.get(l).trim();
+                                                    if (DEBUG > 20)
+                                                        System.out.println("found tCmdCode here: " + tCmdCode);
+                                                    nf = false;
+                                                }
+                                            }
+                                        }
+                                    }
+                                    if (nf == false) {
+                                        toolInf.addCmdCode(tCmdCode);
+                                        if (DEBUG > 10)
+                                            System.out.println("    Adding previous CmdCode: " + tCmdCode);
+                                    }
+                                } else {
+                                    toolInf.addCmdCode(tCmdCode);
+                                    lastCmdCode = tCmdCode;
+                                    if (DEBUG > 10)
+                                        System.out.println("    Adding first CmdCode: " + tCmdCode);
+                                }
+                            }
+                        }
+
+                        // Process Path Field - making sure we add only unique values.
+                        if (tArg.contentEquals("PATH")) {
+                            String prefix = "PATH_";
+                            if (tCmdCode.contentEquals("ASM"))
+                                prefix = "ASMPATH_";
+                            if (tCmdCode.contentEquals("ASMLINK"))
+                                prefix = "ALPATH_";
+                            if (tCmdCode.contentEquals("ASL"))
+                                prefix = "ASLPATH_";
+                            File path = new File(tVal);
+                            found = false;
+                            if (path.exists()) {
+                                for (int k = 0; k < toolInf.getPath().size(); k++)
+                                    if (toolInf.getPath(k).startsWith(prefix))
+                                        found = true;
+                                if (found == false) {
+                                    toolInf.addPath(prefix + tVal);
+                                    if (DEBUG > 10)
+                                        System.out.println("    Adding valid path: " + tVal);
+                                }
+                                if (prefix.contentEquals("ASLPATH_"))
+                                    acpiPath = tVal;
+                                if (prefix.contentEquals("PATH_"))
+                                    cmdPath = tVal;
+                                if (prefix.contentEquals("ASMPATH_"))
+                                    asmPath = tVal;
+                            } else {
+                                toolInf.setInvalid();
+                                for (int k = 0; k < toolInf.getBadPath().size(); k++)
+                                    if (toolInf.getBadPath(k).startsWith(prefix))
+                                        found = true;
+                                if (!found) {
+                                    toolInf.addBadPath(prefix + tVal);
+                                    if (DEBUG > 10)
+                                        System.out.println("    Adding NOT valid Path: " + tVal);
+                                    retCode = FAIL;
+                                }
+                            }
+                        }
+
+                        if (tArg.contentEquals("DPATH")) {
+                            found = false;
+                            File path = new File(tVal);
+                            if (path.exists()) {
+                                for (int k = 0; k < toolInf.getPath().size(); k++)
+                                    if (toolInf.getPath(k).startsWith("DPATH_"))
+                                        found = true;
+                                if (!found) {
+                                    toolInf.addPath("DPATH_" + tVal);
+                                    if (DEBUG > 10)
+                                        System.out.println("    Adding valid DPath: " + tVal);
+                                }
+                            } else {
+                                toolInf.setInvalid();
+                                for (int k = 0; k < toolInf.getBadPath().size(); k++)
+                                    if (toolInf.getBadPath(k).contentEquals("DPATH_" + tVal))
+                                        found = true;
+                                if (!found) {
+                                    toolInf.addBadPath("DPATH_" + tVal);
+                                    if (DEBUG > 10)
+                                        System.out.println("    Adding NOT valid DPath: " + tVal);
+                                    retCode = FAIL;
+                                }
+                            }
+                        }
+
+                        if (tArg.contentEquals("SPATH")) {
+                            found = false;
+                            File path = new File(tVal);
+                            if (path.exists()) {
+                                for (int k = 0; k < toolInf.getPath().size(); k++)
+                                    if (toolInf.getPath(k).contentEquals("SPATH_" + tVal))
+                                        found = true;
+                                if (!found) {
+                                    toolInf.addPath("SPATH_" + tVal);
+                                    if (DEBUG > 10)
+                                        System.out.println("    Adding valid SPath: " + tVal);
+                                }
+                            } else {
+                                toolInf.setInvalid();
+                                for (int k = 0; k < toolInf.getBadPath().size(); k++)
+                                    if (toolInf.getBadPath(k).contentEquals("SPATH_" + tVal))
+                                        found = true;
+                                if (!found) {
+                                    toolInf.addBadPath("SPATH_" + tVal);
+                                    if (DEBUG > 10)
+                                        System.out.println("    Adding NOT valid SPath: " + tVal);
+                                    retCode = FAIL;
+                                }
+                            }
+                        }
+
+                        if (tArg.equals("INCLUDEPATH")) {
+                            found = false;
+                            File path = new File(tVal);
+                            if (path.exists()) {
+                                for (int k = 0; k < toolInf.getPath().size(); k++)
+                                    if (toolInf.getPath(k).contentEquals("INCLUDEPATH_" + tVal))
+                                        found = true;
+                                if (!found) {
+                                    toolInf.addPath("INCLUDEPATH_" + tVal);
+                                    if (DEBUG > 10)
+                                        System.out.println("    Adding valid IPath: " + tVal);
+                                }
+                            } else {
+                                toolInf.setInvalid();
+                                for (int k = 0; k < toolInf.getBadPath().size(); k++)
+                                    if (toolInf.getBadPath(k).contentEquals("INCLUDE_" + tVal))
+                                        found = true;
+                                if (!found) {
+                                    toolInf.addBadPath("INCLUDE_" + tVal);
+                                    if (DEBUG > 10)
+                                        System.out.println("    Adding NOT valid IPath: " + tVal);
+                                    retCode = FAIL;
+                                }
+                            }
+                        }
+
+                        if (tArg.equals("LIBPATH")) {
+                            found = false;
+                            File path = new File(tVal);
+                            if (path.exists()) {
+                                for (int k = 0; k < toolInf.getPath().size(); k++)
+                                    if (toolInf.getPath(k).contentEquals("LIB_" + tVal))
+                                        found = true;
+                                if (!found) {
+                                    toolInf.addPath("LIB_" + tVal);
+                                    if (DEBUG > 10)
+                                        System.out.println("    Adding valid LPath: " + tVal);
+                                }
+                            } else {
+                                toolInf.setInvalid();
+                                for (int k = 0; k < toolInf.getBadPath().size(); k++)
+                                    if (toolInf.getBadPath(k).contentEquals("LIB_" + tVal))
+                                        found = true;
+                                if (!found) {
+                                    toolInf.addBadPath("LIB_" + tVal);
+                                    if (DEBUG > 10)
+                                        System.out.println("    Adding NOT valid LPath: " + tVal);
+                                    retCode = FAIL;
+                                }
+                            }
+                        }
+
+                        if (tArg.equals("FLAGS")) {
+                            String flags = fileLine[1].trim();
+                            String fLine = tTarget + "_" + tCmdCode + "_FLAGS_" + flags;
+                            toolInf.addArguments(fLine);
+                            if (DEBUG > 10)
+                                System.out.println("    Adding flag line: " + fLine);
+                        }
+                    }
+                }
+            }
+            toolInf.setArch(lastArch);
+            toolInf.setFamily(lastFamily);
+            toolInf.setTagName(lastTagName);
+            info.add(toolInf);
+            if (DEBUG > 2)
+                System.out.println("  ADDED " + ctr + " LAST Tag: " + lastTagName + " Arch: " + lastArch + " Family: "
+                                   + lastFamily + " Last CmdCode: " + lastCmdCode);
+            //
+            // Finished collecting data, print it out in Human Readable Format
+            if (info.size() > 0) {
+                if (QUIET == false)
+                    System.out.println(" **** TOOL CHAINS ****");
+                if ((DEBUG > 0) || (VERBOSE > 1))
+                    System.out.println("There are " + info.size()
+                                       + " different combinations of Tag Names and Architectures.");
+                lastTagName = "arf";
+
+                boolean asmExists = false;
+                boolean asmPathDefined = false;
+
+                boolean cmdPathDefined = false;
+                boolean dPathDefined = false;
+
+                boolean acpiPathDefined = false;
+                boolean acpiDeclared = false;
+                ArrayList<String> warnMsgs = null;
+
+                for (int i = 0; i < info.size(); i++) {
+                    if (!lastTagName.contentEquals(info.get(i).getTagName())) {
+                        if ((acpiDeclared == false) && (!lastTagName.contentEquals("arf"))) {
+                            if (QUIET == false) {
+                                System.out
+                                          .println("  ----WARNING: No ACPI assembler has been defined for "
+                                                   + lastTagName
+                                                   + ", you will not be able to successfully create a complete firmware image.");
+                                System.out.println("");
+                            }
+                        }
+                        if ((asmExists == false) && (!lastTagName.contentEquals("arf"))) {
+                            if (QUIET == false) {
+                                System.out.println("  ----WARNING: No Assembler has been defined for " + lastTagName
+                                                   + ", you will not be able to successfully compile all platforms.");
+                                System.out.println("");
+                            }
+                        }
+                        asmPath = "";
+                        asmPathDefined = false;
+                        cmdPath = "";
+                        cmdPathDefined = false;
+                        dPathDefined = false;
+                        acpiPath = "";
+                        acpiPathDefined = false;
+                        acpiDeclared = false;
+                        warnMsgs = new ArrayList<String>();
+                        lastTagName = info.get(i).getTagName();
+                    }
+
+                    if ((DEBUG > 0) || (VERBOSE > 1))
+                        System.out.print("Tool Chain " + i + " Tag Name: " + info.get(i).getTagName() + ", Family: "
+                                         + info.get(i).getFamily());
+                    else if (QUIET == false)
+                        System.out.print("Tool Chain Tag Name: " + info.get(i).getTagName() + ", Family: "
+                                         + info.get(i).getFamily());
+
+                    if (info.get(i).isValid()) {
+                        ToolInfo vTool = info.get(i);
+                        if (QUIET == false)
+                            System.out.println(" is Valid for Architecture: " + info.get(i).getArch());
+                        // OK, let's print out the command w/flags
+
+                        for (int m = 0; m < vTool.getPath().size(); m++) {
+                            String pathName[] = vTool.getPath(m).split("_");
+                            String prefix = "  Tool Path: ";
+                            if (pathName[0].startsWith("DPATH")) {
+                                prefix = "  Dynamic Linker Path: ";
+                                dPathDefined = true;
+                            }
+                            if (pathName[0].startsWith("PATH")) {
+                                cmdPathDefined = true;
+                                cmdPath = pathName[1].trim();
+                            }
+                            if (pathName[0].startsWith("APATH")) {
+                                asmPathDefined = true;
+                                asmPath = pathName[1].trim();
+                            }
+                            if (pathName[0].startsWith("ASLPATH")) {
+                                acpiPathDefined = true;
+                                acpiPath = pathName[1].trim();
+                            }
+                            if (VERBOSE > 0)
+                                System.out.println(prefix + pathName[1].trim());
+                        }
+                        if (acpiPathDefined == false) {
+                            if (VERBOSE > 0)
+                                warnMsgs.add("  ---- WARNING: " + vTool.getTagName() + "ACPI Path is not defined!");
+                        }
+                        if ((VERBOSE == 0) && (QUIET == false))
+                            System.out.print("Defined Targets: ");
+                        for (int k = 0; k < vTool.getTargetName().size(); k++) {
+                            String tTarget = vTool.getTargetName(k);
+                            if (tTarget.contentEquals("*"))
+                                break;
+
+                            if (VERBOSE > 0)
+                                System.out.println("+++ " + tTarget + " +++");
+                            else if (QUIET == false)
+                                System.out.print(" " + tTarget);
+
+                            for (int j = 0; j < vTool.getCmdCode().size(); j++) {
+                                String tCommand = vTool.getCmdCode(j);
+                                if (tCommand.contains("ASL ")) {
+                                    acpiDeclared = true;
+                                    if (acpiPathDefined) {
+                                        // TODO: Check the acpi tool path
+                                    }
+                                }
+                                if (vTool.getArguments().size() > 1) {
+
+                                    if (!cmdPathDefined) {
+                                        warnMsgs.add("  ---- ERROR: Command Path is not defined!");
+                                    }
+                                    if ((vTool.getFamily().contentEquals("MSFT")) && (!dPathDefined)) {
+                                        warnMsgs
+                                                .add("  ---- ERROR: Microsoft Tool Chains require a Path (DPATH) to the mspdbXX.dll file");
+                                    }
+
+                                    // Process Flag lines!
+                                    for (int n = 0; n < vTool.getArguments().size(); n++) {
+                                        String tFlags = vTool.getArguments(n);
+                                        String aFlags[] = new String[2];
+                                        aFlags = tFlags.split("FLAGS_");
+                                        String tsCmd[] = tCommand.split(" ");
+                                        tsCmd[0] = tsCmd[0].trim();
+                                        if (DEBUG > 10)
+                                            System.out.println(" tCmd: " + tsCmd[0] + ", aFlags[0]: " + aFlags[0]
+                                                               + ", tTarget: " + tTarget);
+                                        if (aFlags[0].contains(tsCmd[0])) {
+                                            if ((tFlags.contains("All")) || (aFlags[0].contains(tTarget))) {
+                                                String flagLine = aFlags[1].trim();
+                                                if (info.get(i).getFamily().contentEquals("MSFT")) {
+                                                    if (tCommand.startsWith("PP")) {
+                                                        if (QUIET == false)
+                                                            if ((!flagLine.contains("/P "))
+                                                                && (!flagLine.contains("/E "))) {
+                                                                System.out
+                                                                          .println("  **** ERROR ****  Pre-Processor Flags are NOT VALID!");
+                                                            }
+                                                    }
+                                                }
+                                                String cmdExe = "";
+
+                                                if (tCommand.contains("ASM ")) {
+                                                    cmdExe = tCommand.replace("ASM (", "");
+                                                    cmdExe = cmdExe.replace(")", "");
+                                                    if (asmPathDefined)
+                                                        cmdExe = asmPath.trim() + File.separator + cmdExe.trim();
+                                                    else
+                                                        cmdExe = cmdPath.trim() + File.separator + cmdExe.trim();
+                                                    File testCmd = new File(cmdExe);
+                                                    // System.out.println("Check: " + cmdExe);
+                                                    if (!testCmd.exists()) {
+                                                        String errMsg = "  **** ERROR ****  Assembler Command Defined, but does not exist! "
+                                                                        + cmdExe;
+                                                        if (VERBOSE > 0) {
+                                                            System.out.println(errMsg);
+                                                        }
+                                                        boolean nf = true;
+                                                        for (int r = 0; r < warnMsgs.size(); r++)
+                                                            if (warnMsgs.get(r).contentEquals(errMsg))
+                                                                nf = false;
+                                                        if (nf)
+                                                            warnMsgs.add(errMsg);
+                                                    } else
+                                                        asmExists = true;
+
+                                                }
+
+                                                if ((tCommand.contains("ASM ")) && (asmPathDefined == false)
+                                                    && (VERBOSE > 0))
+                                                    System.out
+                                                              .println("  --- WARNING: Assembler - "
+                                                                       + tCommand
+                                                                       + " defined, but a Separate Path to the Assembler was not defined, using: "
+                                                                       + cmdExe);
+                                                if ((asmPathDefined) && (tCommand.contains("ASM "))
+                                                    && (asmPathDefined == false) && (VERBOSE == 0)) {
+                                                    String msgIs = "  --- WARNING: "
+                                                                   + info.get(i).getTagName()
+                                                                   + " Assembler "
+                                                                   + info.get(i).getArch()
+                                                                   + " - "
+                                                                   + tCommand
+                                                                   + " defined, but a Separate Path to the Assembler was not defined, using: "
+                                                                   + cmdExe;
+                                                    boolean nf = true;
+                                                    for (int r = 0; r < warnMsgs.size(); r++)
+                                                        if (warnMsgs.get(r).contentEquals(msgIs))
+                                                            nf = false;
+                                                    if (nf)
+                                                        warnMsgs.add(msgIs);
+                                                }
+                                                if (VERBOSE > 0)
+                                                    System.out.println("  " + tCommand + " " + flagLine);
+                                            }
+                                        }
+                                    }
+                                } else {
+                                    if (VERBOSE > 0)
+                                        System.out.println("  " + tCommand + " has no arguments defined.");
+                                }
+                            }
+                        }
+
+                    } else {
+                        if (QUIET == false)
+                            System.out.println(" is NOT VALID for Architecture: " + info.get(i).getArch());
+                        retCode = FAIL;
+                        for (int k = 0; k < info.get(i).getBadPath().size(); k++) {
+                            String failureString = "";
+                            String tempString = info.get(i).getBadPath(k);
+                            if (tempString.startsWith("PATH_"))
+                                failureString = "Common Command Path:  " + tempString.replace("PATH_", "")
+                                                + " is NOT Valid!";
+                            if (tempString.startsWith("SPATH"))
+                                failureString = "Static Linker Path:   " + tempString.replace("SPATH_", "")
+                                                + " is NOT valid!";
+                            if (tempString.startsWith("DPATH"))
+                                failureString = "Dynamic Linker Path:  " + tempString.replace("DPATH_", "")
+                                                + " is NOT valid!";
+                            if (tempString.startsWith("LIB_"))
+                                failureString = "System Lib Path:      " + tempString.replace("LIB_", "")
+                                                + " is NOT valid!";
+                            if (tempString.startsWith("INCLUDEPATH_"))
+                                failureString = "System include Path:  " + tempString.replace("INCLUDEPATH_", "")
+                                                + " is NOT valid!";
+                            if (tempString.startsWith("APATH"))
+                                failureString = "Assembler Path:       " + tempString.replace("APATH_", "")
+                                                + " is NOT valid!";
+                            if (tempString.startsWith("ALPATH"))
+                                failureString = "Assembler Link Path:  " + tempString.replace("ALPATH_", "")
+                                                + " is NOT valid!";
+                            if (tempString.startsWith("ASLPATH"))
+                                failureString = "ACPI Path:            " + tempString.replace("ASLPATH_", "")
+                                                + " is NOT valid!";
+                            if (QUIET == false)
+                                System.out.println("    --- " + failureString);
+                        }
+
+                    }
+
+                    if ((VERBOSE == 0) && (QUIET == false)) {
+                        System.out.println("");
+                        for (int p = 0; p < warnMsgs.size(); p++)
+                            System.out.println(warnMsgs.get(p));
+                    }
+                    if (QUIET == false)
+                        System.out.println("");
+                }
+
+            }
+
+        } catch (IOException e) {
+            if (QUIET == false)
+                System.out.println("I/O Failure: " + e);
+            retCode = FAIL;
+        }
+
+        return retCode;
+    }
+
+    private int testFile(String testFile, boolean interActive, int VERBOSE, boolean QUIET) {
 
         int retCode = PASS;
         String readLine = "";
         String fileLine[] = new String[2];
+        boolean definedAsl = false;
+
         try {
             FileReader toolConfFile = new FileReader(testFile);
             BufferedReader reader = new BufferedReader(toolConfFile);
@@ -128,39 +768,82 @@ public class ToolChecks {
                     fileLine = readLine.split("=");
                     path = fileLine[1].trim();
                     props = fileLine[0].split("_");
+                    String tagName = props[1].trim();
+                    // System.out.println(" Testing TagName: " + tagName);
+                    String cmdTag = props[3].trim();
+                    if (!lastTag.contentEquals(tagName)) {
+                        // we have a new tagName
+                        // first past lastTag = barf, lastErrTag = barf, tagName = something other than BARF
+                        if (DEBUG > 0)
+                            System.out.println(" lastTag: " + lastTag + " this Tag: " + tagName + " lastErrTag: "
+                                               + lastErrTag);
+
+                        if ((definedAsl == false) && (lastTag.contentEquals("barf") == false))
+                            warnLog.add("  -- WARNING: Tool Chain Tag Name: " + lastTag
+                                        + " does not have an ACPI assembler defined!");
+                        definedAsl = false;
+
+                        if ((lastErrTag.contentEquals("barf")) || (!tagName.contentEquals(lastErrTag))) {
+                            if ((DEBUG > 2) || (VERBOSE > 3))
+                                System.out.println("Adding tag: " + tagName + " to the goodLog");
+                            goodLog.add(tagName);
+                        }
+
+                        lastTag = tagName;
+
+                    } // end of adding the new tag name to the goodLog and 
+                    // checking if we had an ACPI compiler defined for the TagName
                     File testPath = new File(path);
+                    if (cmdTag.contentEquals("ASL"))
+                        definedAsl = true;
                     if (!testPath.exists()) {
-                        if (!props[1].trim().contentEquals(lastErrTag))
-                            errLog.add("  -- WARNING: Tool Chain Tag Name: " + props[1].trim() + " is NOT valid!");
-                        if (VERBOSE > 1)
-                            errLog.add("    Tool Code: [" + props[3].trim() + "] Path: " + path + " does not exist!");
+                        if (VERBOSE > 0)
+                            System.out.println(" Invalid path: " + path + ", path does not exist!");
+                        if (!tagName.contentEquals(lastErrTag)) {
+                            errLog.add("  -- WARNING: Tool Chain Tag Name: " + tagName + " is NOT valid!");
+                            errLog.add("         Tool Code: [" + cmdTag + "] Path: " + path + " does not exist!");
+                        }
                         retCode = 1;
-                        lastErrTag = props[1].trim();
+                        lastErrTag = tagName;
+
                     } else {
+
                         if ((DEBUG > 0) || (VERBOSE > 0)) {
-                            if ((!props[1].trim().contentEquals(lastTag))
-                                && (!props[1].trim().contentEquals(lastErrTag)))
-                                System.out.println("Tool Chain: " + props[1].trim() + " is valid");
+                            if ((!tagName.contentEquals(lastTag)) && (!tagName.contentEquals(lastErrTag))
+                                && (!lastTag.contentEquals("barf"))) {
+                                String goodMsg = "Tool Chain: " + tagName + " is valid";
+                                System.out.println(goodMsg);
+                            }
                         }
-                        if (!props[1].trim().contentEquals(lastTag))
-                            goodLog.add(props[1].trim());
-                        lastTag = props[1].trim();                                                
-                    }
-                }
-            }
+                    } // end of path existence check
+                } // end of parsing the PATH line
+            } // end of reading file
+            // Check the LAST Tag to see of ACPI has been defined.
+            if (definedAsl == false)
+                warnLog.add("  -- WARNING: Tool Chain Tag Name: " + lastTag
+                            + " does not have an ACPI assembler defined!");
+            // CLEAN UP
+            toolConfFile.close();
         } catch (IOException e) {
-            System.out.println(" [" + testFile + "] " + e);
+            if (QUIET == false)
+                System.out.println(" [" + testFile + "] " + e);
             System.exit(FAIL);
-        }
-        if (errLog.size() > 0)
+        } // end of TRY-CATCH for reading file
+        
+        if ((errLog.isEmpty() == false) && (QUIET == false))
             for (int i = 0; i < goodLog.size(); i++) {
                 for (int j = 0; j < errLog.size(); j++) {
+                    System.out.println(" Error Log [" + j + "] is " + errLog.get(j));
                     if (errLog.get(j).contains(goodLog.get(i).trim())) {
+                        if (VERBOSE > 1)
+                            System.out.println(" Removing: " + goodLog.get(i).trim());
                         goodLog.remove(i);
                         break;
                     }
                 }
             }
+        if (DEBUG > 0)
+            System.out.println("Returning with goodLog having: " + goodLog.size());
         return retCode;
 
     }
diff --git a/edk2/Tools/Java/Source/CheckTools/src/org/tianocore/CheckTools/ToolInfo.java b/edk2/Tools/Java/Source/CheckTools/src/org/tianocore/CheckTools/ToolInfo.java
new file mode 100644 (file)
index 0000000..3821c53
--- /dev/null
@@ -0,0 +1,185 @@
+/** @file
+ Tool Definition Class for translating the tools_def.txt entries
+ Copyright (c) 2006, Intel Corporation
+ All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution.  The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+ **/
+
+/**
+ * This section should complete array values
+ * this.TagName
+ * this.Family
+ * this.Valid
+ * this.Arch
+ * this.Targets[]
+ * this.CmdCode[]
+ * this.Path[]
+ * this.Arguments[]
+ * 
+ */
+
+package org.tianocore.CheckTools;
+
+import java.util.*;
+
+public class ToolInfo extends ArrayList {
+
+    ///
+    /// Define Class Serial Version UID
+    ///
+    private static final long serialVersionUID = 2513613555731096258L;
+
+    private String sTagName;
+
+    private String sFamily;
+
+    private boolean bValid;
+
+    private String sArch;
+
+    private ArrayList<String> aTargetName = null;
+
+    private ArrayList<String> aCmdCode = null;
+
+    private ArrayList<String> aCmdName = null;
+
+    private ArrayList<String> aPath = null;
+
+    private ArrayList<String> aBadPath = null;
+
+    private ArrayList<String> aArguments = null;
+
+    public ToolInfo() {
+        super();
+        init();
+    }
+
+    private void init() {
+        sTagName = "";
+        sFamily = "";
+        bValid = false;
+        sArch = "";
+        aTargetName = new ArrayList<String>();
+        aCmdCode = new ArrayList<String>();
+        aCmdName = new ArrayList<String>();
+        aPath = new ArrayList<String>();
+        aArguments = new ArrayList<String>();
+        aBadPath = new ArrayList<String>();
+    }
+
+    public String getTagName() {
+        return this.sTagName.trim();
+    }
+
+    public String getFamily() {
+        return this.sFamily.trim();
+    }
+
+    public boolean isValid() {
+        return this.bValid;
+    }
+
+    public String getArch() {
+        return this.sArch.trim();
+    }
+
+    public ArrayList<String> getTargetName() {
+        return this.aTargetName;
+    }
+
+    public String getTargetName(int id) {
+        return this.aTargetName.get(id).trim();
+    }
+
+    public ArrayList<String> getCmdCode() {
+        return this.aCmdCode;
+    }
+
+    public String getCmdCode(int id) {
+        return this.aCmdCode.get(id).trim();
+    }
+
+    public ArrayList<String> getCmdName() {
+        return this.aCmdName;
+    }
+
+    public String getCmdName(int id) {
+        return this.aCmdName.get(id).trim();
+    }
+
+    public ArrayList<String> getPath() {
+        return this.aPath;
+    }
+
+    public String getPath(int id) {
+        return this.aPath.get(id).trim();
+    }
+
+    public ArrayList<String> getArguments() {
+        return this.aArguments;
+    }
+
+    public String getArguments(int id) {
+        return this.aArguments.get(id).trim();
+    }
+
+    public ArrayList<String> getBadPath() {
+        return this.aBadPath;
+    }
+
+    public String getBadPath(int id) {
+        return this.aBadPath.get(id).trim();
+    }
+
+    public void setTagName(String val) {
+        this.sTagName = val.trim();
+    }
+
+    public void setFamily(String val) {
+        this.sFamily = val.trim();
+    }
+
+    public void setValid() {
+        this.bValid = true;
+    }
+
+    public void setInvalid() {
+        this.bValid = false;
+    }
+
+    public void setArch(String val) {
+        this.sArch = val.trim();
+    }
+
+    public void addTargetName(String val) {
+        this.aTargetName.add(val.trim());
+    }
+
+    public void addCmdCode(String val) {
+        this.aCmdCode.add(val.trim());
+    }
+
+    public void addCmdName(String val) {
+        this.aCmdName.add(val.trim());
+    }
+
+    public void addPath(String val) {
+        this.aPath.add(val.trim());
+    }
+
+    public void addArguments(String val) {
+        this.aArguments.add(val.trim());
+    }
+
+    public void addBadPath(String val) {
+        this.aBadPath.add(val.trim());
+    }
+
+}
diff --git a/edk2/Tools/Java/Source/ContextTool/ContextTool.msa b/edk2/Tools/Java/Source/ContextTool/ContextTool.msa
new file mode 100644 (file)
index 0000000..6135d21
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\r
+  <MsaHeader>\r
+    <ModuleName>Context Tool</ModuleName>\r
+    <ModuleType>TOOL</ModuleType>\r
+    <GuidValue>893c2f79-1d84-495a-a9c5-f7c1e8a58b31</GuidValue>\r
+    <Version>0.1</Version>\r
+    <Abstract>The tool manipulates the Tools/Conf/target.txt file.</Abstract>\r
+    <Description>This tool is used to manipulate the target.txt file attributes from the command line.\r
+USAGE:\r
+ContextTool [-option1] [args] [-option2] [args] ...</Description>\r
+    <Copyright>Copyright (c) 2006, Intel Corporation   All rights reserved.</Copyright>\r
+    <License URL="http://opensource.org/licenses/bsd-license.php">This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution.  The full text of the license may be found at  http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>\r
+    <Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052</Specification>\r
+  </MsaHeader>\r
+  <ModuleDefinitions>\r
+    <SupportedArchitectures>IA32 X64 IPF</SupportedArchitectures>\r
+    <BinaryModule>false</BinaryModule>\r
+    <OutputFileBasename>ContextTool</OutputFileBasename>\r
+  </ModuleDefinitions>\r
+  <SourceFiles>\r
+    <Filename>org/tianocore/context/ContextMain.java</Filename>\r
+    <Filename>org/tianocore/context/HelpInfo.java</Filename>\r
+    <Filename>org/tianocore/context/ParseParameter.java</Filename>\r
+    <Filename>org/tianocore/context/TargetFile.java</Filename>\r
+    <Filename>build.xml</Filename>\r
+  </SourceFiles>\r
+</ModuleSurfaceArea>\r
diff --git a/edk2/Tools/Java/Source/DbTools/DbTools.msa b/edk2/Tools/Java/Source/DbTools/DbTools.msa
new file mode 100644 (file)
index 0000000..254b0be
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\r
+  <MsaHeader>\r
+    <ModuleName>Database Manipulation Tools</ModuleName>\r
+    <ModuleType>TOOL</ModuleType>\r
+    <GuidValue>c51d72c2-6e85-4fcf-adb2-7c44b2f57f19</GuidValue>\r
+    <Version>0.3</Version>\r
+    <Abstract>The tool manipulates the FrameworkDatabase.db file</Abstract>\r
+    <Description>\r
+This tool will scan the current workspace and update the FrameworkDatabase.db file if the workspace content is not consistent with the database.\r
+USAGE:\r
+DbTool [-v] [-t] [-q] [-V] [--package] [--platform] [-h | -? | --help]</Description>\r
+    <Copyright>Copyright (c) 2006, Intel Corporation   All rights reserved.</Copyright>\r
+    <License URL="http://opensource.org/licenses/bsd-license.php">This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution.  The full text of the license may be found at  http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>\r
+    <Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052</Specification>\r
+  </MsaHeader>\r
+  <ModuleDefinitions>\r
+    <SupportedArchitectures>IA32 X64 IPF</SupportedArchitectures>\r
+    <BinaryModule>false</BinaryModule>\r
+    <OutputFileBasename>DbTools</OutputFileBasename>\r
+  </ModuleDefinitions>\r
+  <SourceFiles>\r
+    <Filename>src/org/tianocore/DbTools/UpdateDb.java</Filename>\r
+    <Filename>src/org/tianocore/DbTools/DbTool.java</Filename>\r
+    <Filename>src/org/tianocore/DbTools/DbCmds.java</Filename>\r
+    <Filename>build.xml</Filename>\r
+  </SourceFiles>\r
+</ModuleSurfaceArea>
diff --git a/edk2/Tools/Java/Source/DbTools/build.xml b/edk2/Tools/Java/Source/DbTools/build.xml
new file mode 100644 (file)
index 0000000..5ae43e9
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>\r
+<!--\r
+Copyright (c) 2006, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+-->\r
+<project name="DbTools" default="DbTools" basedir=".">\r
+  <taskdef resource="net/sf/antcontrib/antlib.xml"/>\r
+  <property environment="env"/>\r
+  <property name="WORKSPACE" value="${env.WORKSPACE}"/>\r
+  <path id="classpath">\r
+    <fileset dir="${WORKSPACE}/Tools/Jars" includes="*.jar"/>\r
+    <fileset dir="${env.XMLBEANS_HOME}/lib" includes="*.jar"/>\r
+  </path>\r
+  <property name="buildDir" value="build"/>\r
+  <property name="installLocation" value="${WORKSPACE}/Tools/Jars"/>\r
+  <target name="DbTools" depends="install"/>\r
+  <target name="source">\r
+    <mkdir dir="${buildDir}"/>\r
+    <javac srcdir="src" destdir="${buildDir}">\r
+      <classpath refid="classpath"/>\r
+      <!-- <compilerarg value="-Xlint"/> -->\r
+    </javac>\r
+  </target>\r
+  <target name="clean">\r
+    <delete dir="${buildDir}"/>\r
+  </target>\r
+  <target name="cleanall">\r
+    <delete dir="${buildDir}"/>\r
+    <delete file="${installLocation}/DbTools.jar"/>\r
+  </target>\r
+  <target name="install" depends="source">\r
+    <jar destfile="${installLocation}/DbTools.jar">\r
+      <fileset dir="${buildDir}"/>\r
+    </jar>\r
+  </target>\r
+</project>\r
diff --git a/edk2/Tools/Java/Source/DbTools/src/org/tianocore/DbTools/DbCmds.java b/edk2/Tools/Java/Source/DbTools/src/org/tianocore/DbTools/DbCmds.java
new file mode 100644 (file)
index 0000000..502be24
--- /dev/null
@@ -0,0 +1,501 @@
+// @file\r
+//  DbCmds command-line interface to the classes that \r
+//  update the FrameworkDatabase.db file based on WORKSPACE Contents\r
+//\r
+//  Copyright (c) 2006, Intel Corporation    All rights reserved.\r
+//\r
+//  This program and the accompanying materials are licensed and made\r
+//  available under the terms and conditions of the BSD License which\r
+//  accompanies this distribution.  The full text of the license may \r
+//  be found at  http://opensource.org/licenses/bsd-license.php\r
+//\r
+//  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+//  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+//\r
+//    This program is the command line interface to the CombineMsa class, which\r
+//    will take the following arguments:\r
+//\r
+//  Input:\r
+//      -t, --test  Test the Workspace against the FrameworkDatabase.db file\r
+//                    Returns 0 if valid, returns 1 if failed\r
+//\r
+//      -f, --fix   Fix the FrameworkDatabase.db file, so that it matches the\r
+//                    the contents of the WORKSPACE\r
+//                    Returns 0 if valid, returns 1 if failed\r
+//\r
+//      -v [-v]     Verbose Flag - sum of these will be used to set different\r
+//                    levels of verbosity\r
+//\r
+//      -i          Interactive, when used with -f or --fix, will query the user\r
+//                    regarding adds and deletes of packages and platforms from\r
+//                    the database.\r
+//\r
+//      -a, --add   Add an SPD or FPD file to the FrameworkDatabase.db file.  The\r
+//                    SPD/FPD file must exist, or the command will fail.\r
+//                    Returns 0 if valid, returns 1 if failed\r
+//\r
+//      -r, --del   Remove an SPD or FPD file from the FrameworkDatabase.db file.\r
+//                    If the SPD/FPD file exists, the user will be queried to\r
+//                    remove it from the directory tree.  For SPD files, the user\r
+//                    will also be presented with a list of Modules in the SPD\r
+//                    file, with the query to remove the modules as well as the\r
+//                    SPD file.\r
+//                    Returns 0 if valid, returns 1 if failed\r
+//\r
+//      -u          Display the UiName for all Packages and Platforms currently in\r
+//                    the FrameworkDatabase.db file.\r
+//                    Returns 0 if valid, returns 1 if failed\r
+//\r
+//      -c          Display a CSV listing of Type (SPD|FPD) UiName and Filename of\r
+//                    every entry in the FrameworkDatabase.db file.\r
+//                    Returns 0 if valid, returns 1 if failed\r
+//\r
+//    No Options    Display a list of Type (Package|Platfrom) and Filename of every\r
+//                    entry in the FrameworkDatabase.db file.\r
+//                    Returns 0 if valid, returns 1 if failed\r
+//\r
+//    -h, -?, --help  Displays this usage and exits.\r
+//                    Returns 0 if valid, returns 1 if failed\r
+//\r
+//\r
+//  Output:\r
+//      Displayed information\r
+//\r
+//  Modifies - OPTIONAL\r
+//      FrameworkDatabase.db\r
+//\r
+\r
+package org.tianocore.DbTools;\r
+\r
+import java.io.*;\r
+\r
+public class DbCmds {\r
+\r
+    protected enum Cmd {\r
+        SHOW_CSV, SHOW_PLATFORMS, SHOW_PACKAGES, FIX_DB, TEST_DB, FIND_SOMETHING, SHOW_FAR, ADD_SOMETHING,\r
+        DELETE_SOMETHING\r
+    }\r
+\r
+    private int DEBUG = 0;\r
+\r
+    private static final String copyright = "Copyright (c) 2006, Intel Corporation     All rights reserved.";\r
+\r
+    private static final String version = "Version 0.1";\r
+\r
+    private static final String Specification = "FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052";\r
+\r
+    private int VERBOSE = 0;\r
+\r
+    public boolean INTERACTIVE = false;\r
+\r
+    private String workspace = System.getenv("WORKSPACE");\r
+\r
+    private final String frameworkDatabase = workspace + File.separator + "Tools" + File.separator + "Conf"\r
+                                             + File.separator + "FrameworkDatabase.db";\r
+\r
+    private final int ESUCCESS = 0;\r
+\r
+    private final int EFAILURE = 1;\r
+\r
+    private final int MIN_VERBOSE = 0;\r
+\r
+    private final int MED_VERBOSE = 1;\r
+\r
+    private final int MAX_VERBOSE = 2;\r
+\r
+    private final static int FOUND = 1;\r
+\r
+    private final static int NOTFOUND = 0;\r
+\r
+    private boolean TEST = false;\r
+\r
+    private int result = ESUCCESS;\r
+\r
+    private Cmd commandToCall;\r
+\r
+    private boolean isPlatform = false;\r
+\r
+    private boolean isPackage = false;\r
+\r
+    private boolean isFar = false;\r
+\r
+    private boolean QUIET = false;\r
+\r
+    private String commandArgs = "";\r
+\r
+    private String whatToFind = "";\r
+\r
+    public int DbUpdateCmdLine(String[] args) {\r
+\r
+        if (testFile(frameworkDatabase) == NOTFOUND) {\r
+            System.out.println("ERROR: E000  Invalid Workspace!");\r
+            System.out.println("The environment variable, WORKSPACE, does not point to a valid workspace");\r
+            System.out.println("DbUpdate Aborted!");\r
+            System.err.flush();\r
+            System.exit(EFAILURE);\r
+        }\r
+        result = parseCmdLine(args);\r
+        if (result == ESUCCESS) {\r
+            if (DEBUG > 2)\r
+                System.out.println("Parse Succeeded!");\r
+            if (VERBOSE > MAX_VERBOSE)\r
+                System.out.println("WORKSPACE: " + workspace);\r
+            if (DEBUG > 1)\r
+                System.out.println("Command to call: " + commandToCall.toString());\r
+            result = processCmdLine(commandToCall);\r
+        } else {\r
+            if (QUIET == false) {\r
+                System.out.println("Invalid Arguments");\r
+                outputUsage();\r
+                result = EFAILURE;\r
+            }\r
+        }\r
+        if (DEBUG > 2)\r
+            System.out.println(" Result: " + result);\r
+\r
+        return result;\r
+    }\r
+\r
+    private int processCmdLine(Cmd cmdCode) {\r
+        UpdateDb dbUp = new UpdateDb();\r
+        int res = ESUCCESS;\r
+        switch (cmdCode) {\r
+        case SHOW_CSV:\r
+            // display current Database contents in CSV format\r
+            // Modifies: NOTHING\r
+            if ((DEBUG > 3) || (VERBOSE > MED_VERBOSE))\r
+                System.out.println("Display contents of the FrameworkDatabase.db file in CSV format.");\r
+            result = dbUp.getCsvEntries(frameworkDatabase, VERBOSE);\r
+            break;\r
+        case FIX_DB:\r
+            // Automatically make the database match the contents of the workspace\r
+            // Modifies: FrameworkDatabase.db\r
+            if ((VERBOSE > MIN_VERBOSE) && (QUIET == false)) {\r
+                if (TEST == false)\r
+                    System.out.println("Adjusting the FrameworkDatabase to match the contents of the WORKSPACE: "\r
+                                       + workspace);\r
+                if (TEST)\r
+                    System.out.println("Verify the FrameworkDatabase matches the contents of the WORKSPACE: "\r
+                                       + workspace);\r
+            }\r
+            if ((DEBUG > 3) || (VERBOSE > MED_VERBOSE))\r
+                System.out.println("Scan the Workspace and update the FrameworkDatabase.db file.");\r
+            result = dbUp.fixDatabase(workspace, VERBOSE, INTERACTIVE, TEST, QUIET);\r
+\r
+            break;\r
+        case ADD_SOMETHING:\r
+            // Add a Platform, package or FAR to the workspace.\r
+            // Modifies: FrameworkDatabase.db\r
+            if (((DEBUG > 3) || (VERBOSE > MED_VERBOSE)) && (isPlatform))\r
+                System.out.println("Add Platform " + commandArgs + " to the FrameworkDatabase.db file");\r
+            else if (((DEBUG > 3) || (VERBOSE > MED_VERBOSE)) && (isPackage))\r
+                System.out.println("Add Package " + commandArgs + " to the FrameworkDatabase.db file");\r
+            else if (((DEBUG > 3) || (VERBOSE > MED_VERBOSE)) && (isFar))\r
+                System.out.println("Add Framework Archive " + commandArgs + " to the FrameworkDatabase.db file");\r
+            result = dbUp.addItem(frameworkDatabase, commandArgs, VERBOSE, INTERACTIVE);\r
+            break;\r
+        case DELETE_SOMETHING:\r
+            // Remove a platform, package or FAR from the workspace\r
+            // Modifies: FrameworkDatabase.db, AND Filesystem\r
+            if (((DEBUG > 3) || (VERBOSE > MED_VERBOSE)) && (isPlatform))\r
+                System.out.println("Removing Platform " + commandArgs + " from the FrameworkDatabase.db file");\r
+            else if (((DEBUG > 3) || (VERBOSE > MED_VERBOSE)) && (isPackage))\r
+                System.out.println("Removing Package " + commandArgs + " from the FrameworkDatabase.db file");\r
+            else if (((DEBUG > 3) || (VERBOSE > MED_VERBOSE)) && (isFar))\r
+                System.out.println("Removing Framework Archive " + commandArgs + " from the FrameworkDatabase.db file");\r
+            result = dbUp.addItem(workspace, commandArgs, VERBOSE, INTERACTIVE);\r
+            break;\r
+        case FIND_SOMETHING:\r
+            // Find something in the workspace\r
+            // Modifies: NOTHING\r
+            if ((DEBUG > 3) || (VERBOSE > MED_VERBOSE))\r
+                System.out.println("Finding " + whatToFind + " " + commandArgs + " in the Workspace");\r
+            result = dbUp.findItem(workspace, VERBOSE, whatToFind, commandArgs);\r
+            break;\r
+        case SHOW_FAR:\r
+            // Display FAR information for all SPDs in the workspace\r
+            // Modifies: NOTHING\r
+            if ((DEBUG > 3) || (VERBOSE > MED_VERBOSE))\r
+                System.out.println("Display Framework Archives in the Workspace");\r
+            result = dbUp.findFars(workspace, VERBOSE);\r
+            break;\r
+        case SHOW_PACKAGES:\r
+            // Display SPD information for all SPDs in the workspace\r
+            // Modifies: NOTHING\r
+            if ((DEBUG > 3) || (VERBOSE > MED_VERBOSE))\r
+                System.out.println("Display Packages in the Workspace");\r
+            result = dbUp.findSpds(workspace, VERBOSE);\r
+            break;\r
+        case SHOW_PLATFORMS:\r
+            // Display FPD information for all SPDs in the workspace\r
+            // Modifies: NOTHING\r
+            if ((DEBUG > 3) || (VERBOSE > MED_VERBOSE))\r
+                System.out.println("Display Platforms in the Workspace");\r
+            result = dbUp.findFpds(workspace, VERBOSE);\r
+            break;\r
+        default:\r
+            // ERROR IF WE GET HERE!\r
+            if ((DEBUG > 3) || (VERBOSE > MAX_VERBOSE))\r
+                System.out.println("We could not process the following: " + commandToCall.toString());\r
+            else if (QUIET == false)\r
+                outputUsage();\r
+            result = EFAILURE;\r
+            break;\r
+        }\r
+        return res;\r
+    }\r
+\r
+    private int parseCmdLine(String[] args) {\r
+\r
+        // Default is to fix the database.\r
+        commandToCall = Cmd.FIX_DB;\r
+        if (args.length == NOTFOUND) {\r
+            if ((DEBUG > 3) || (VERBOSE > MAX_VERBOSE))\r
+                System.out.println("NO ARGUMENTS! " + commandToCall.toString());\r
+            return (ESUCCESS);\r
+        }\r
+\r
+        for (int i = 0; i < args.length; i++)\r
+            if (args[i].toLowerCase().contentEquals("-q"))\r
+                QUIET = true;\r
+\r
+        for (int i = 0; i < args.length; i++) {\r
+            String arg = args[i].trim();\r
+            // This is the list of valid options\r
+            if (!((arg.toLowerCase().startsWith("-t")) || (arg.toLowerCase().startsWith("--t"))\r
+                  || (arg.toLowerCase().startsWith("-q")) || (arg.toLowerCase().startsWith("-i"))\r
+                  || (arg.toLowerCase().startsWith("-f")) || (arg.toLowerCase().startsWith("--f"))\r
+                  || (arg.toLowerCase().startsWith("-c")) || (arg.toLowerCase().startsWith("--c"))\r
+                  || (arg.toLowerCase().startsWith("-a")) || (arg.toLowerCase().startsWith("--a"))\r
+                  || (arg.toLowerCase().startsWith("-r")) || (arg.toLowerCase().startsWith("--d"))\r
+                  || (arg.toLowerCase().startsWith("-v")) || (arg.toLowerCase().startsWith("--c"))\r
+                  || (arg.toLowerCase().startsWith("--p")) || (arg.toLowerCase().startsWith("-h"))\r
+                  || (arg.toLowerCase().startsWith("--h")) || (arg.toLowerCase().startsWith("/h")) || (arg\r
+                                                                                                          .toLowerCase()\r
+                                                                                                                        .startsWith("-?")))) {\r
+                // This is the fall through, we got something we did not know how to\r
+                // process!\r
+                if (args[i].startsWith("-")) {\r
+                    System.out.println("ERROR: E1004  Unknown Option: " + arg);\r
+                    System.out.println("Try running with -h or --help");\r
+                } else {\r
+                    System.out.println("ERROR: E1005  Unknown Argument: " + arg);\r
+                    System.out.println("Try running with -h or --help");\r
+                }\r
+                System.out.println("Program Aborted!");\r
+                System.err.flush();\r
+                System.exit(EFAILURE);\r
+            }\r
+            if ((arg.toLowerCase().contentEquals("-t")) || (arg.toLowerCase().contains("--test"))) {\r
+                // Test Workspace, do not fix.\r
+                TEST = true;\r
+            }\r
+            if (arg.toLowerCase().contentEquals("-q")) {\r
+                QUIET = true;\r
+            }\r
+            if (arg.toLowerCase().contentEquals("-i")) {\r
+                INTERACTIVE = true;\r
+            }\r
+            if ((arg.toLowerCase().contentEquals("-f")) || (arg.toLowerCase().contains("--fix"))) {\r
+                // Non-interactive fix of the database\r
+                commandToCall = Cmd.FIX_DB;\r
+            }\r
+            if ((arg.toLowerCase().contentEquals("-c")) || (arg.toLowerCase().contains("--csv"))) {\r
+                // Dump database in CSV format\r
+                commandToCall = Cmd.SHOW_CSV;\r
+            }\r
+            if ((arg.toLowerCase().trim().contentEquals("-a")) || (arg.toLowerCase().contains("--add"))) {\r
+                i++;\r
+                if (args[i].startsWith("-")) {\r
+                    System.out.println("ERROR: E002 Missing Argument!");\r
+                    System.out\r
+                              .println("The add function requires an argument, either a package name or a platform name!");\r
+                    System.out.println("DbUpdate Aborted!");\r
+                    System.err.flush();\r
+                    System.exit(EFAILURE);\r
+                }\r
+                commandToCall = Cmd.ADD_SOMETHING;\r
+                commandArgs = args[i];\r
+                setArgType(commandArgs);\r
+            }\r
+            if ((arg.toLowerCase().trim().contentEquals("-r")) || (arg.toLowerCase().contains("--del"))) {\r
+                i++;\r
+                if (args[i].startsWith("-")) {\r
+                    System.out.println("ERROR: E002 Missing Argument!");\r
+                    System.out\r
+                              .println("The remove function requires an argument, either a package name or a platform name!");\r
+                    System.out.println("DbUpdate Aborted!");\r
+                    System.err.flush();\r
+                    System.exit(EFAILURE);\r
+                }\r
+                commandToCall = Cmd.DELETE_SOMETHING;\r
+                commandArgs = args[i];\r
+                setArgType(commandArgs);\r
+            }\r
+            if (arg.toLowerCase().contains("--find")) {\r
+                commandToCall = Cmd.FIND_SOMETHING;\r
+                i++;\r
+                if (args[i].toLowerCase().contains("--lib"))\r
+                    whatToFind = "LIBRARY";\r
+                else if (args[i].toLowerCase().contains("--guid"))\r
+                    whatToFind = "GUID";\r
+                else if (args[i].toLowerCase().contains("--ppi"))\r
+                    whatToFind = "PPI";\r
+                else if (args[i].toLowerCase().contains("--prot"))\r
+                    whatToFind = "PROTOCOL";\r
+                else if (args[i].toLowerCase().contains("--pcd"))\r
+                    whatToFind = "PCD";\r
+                else if (args[i].startsWith("-")) {\r
+                    System.out.println("ERROR: E001 Invalid Argument");\r
+                    System.out.println("The find function takes either a qualifier of --guid, --ppi,");\r
+                    System.out.println("  --proto, --pcd, or the string to search for.");\r
+                    System.err.flush();\r
+                    System.exit(EFAILURE);\r
+                } else\r
+                    commandArgs = args[i];\r
+\r
+                if (!whatToFind.contentEquals("")) {\r
+                    i++;\r
+                    if (args[i].startsWith("-")) {\r
+                        System.out.println("ERROR: E001 Invalid Argument");\r
+                        System.out.println("The find function qualifier (--guid, --ppi, --proto, --pcd)");\r
+                        System.out.println("  must be followed by the string to search for.");\r
+                        System.err.flush();\r
+                        System.exit(EFAILURE);\r
+                    } else\r
+                        commandArgs = args[i];\r
+                }\r
+\r
+            }\r
+            if (arg.trim().contentEquals("-v")) {\r
+                VERBOSE++;\r
+            }\r
+            if (arg.toLowerCase().contains("--lib")) {\r
+                whatToFind = "LIBRARY";\r
+            }\r
+            if (arg.toLowerCase().contains("--guid")) {\r
+                whatToFind = "GUID";\r
+            }\r
+            if (arg.toLowerCase().contains("--ppi")) {\r
+                whatToFind = "PPI";\r
+            }\r
+            if (arg.toLowerCase().contains("--prot")) {\r
+                whatToFind = "PROTOCOL";\r
+            }\r
+            if (arg.toLowerCase().contains("--pcd")) {\r
+                whatToFind = "PCD";\r
+            }\r
+            if (arg.toLowerCase().contentEquals("-d") || arg.trim().toLowerCase().contains("--debug")) {\r
+                if ((i + 1 == args.length) || (args[i + 1].trim().startsWith("-"))) {\r
+                    DEBUG = 1;\r
+                } else if (i + 1 < args.length) {\r
+                    String pattern = "^\\d+";\r
+                    if (args[i + 1].trim().matches(pattern)) {\r
+                        i++;\r
+                        DEBUG = Integer.parseInt(args[i]);\r
+                    } else\r
+                        DEBUG = 1;\r
+                }\r
+            }\r
+            if (arg.trim().contentEquals("-V")) {\r
+                System.out.println("DbTools, " + version);\r
+                System.out.println(copyright);\r
+                System.out.println(Specification);\r
+                System.err.flush();\r
+                System.exit(ESUCCESS);\r
+            }\r
+            if (arg.toLowerCase().trim().startsWith("--pack")) {\r
+                commandToCall = Cmd.SHOW_PACKAGES;\r
+            }\r
+            if (arg.toLowerCase().trim().startsWith("--far")) {\r
+                commandToCall = Cmd.SHOW_FAR;\r
+            }\r
+            if (arg.toLowerCase().trim().startsWith("--plat")) {\r
+                commandToCall = Cmd.SHOW_PLATFORMS;\r
+            }\r
+            if ((arg.toLowerCase().contentEquals("-h")) || (arg.toLowerCase().contentEquals("-?"))\r
+                || (arg.toLowerCase().startsWith("/h")) || (arg.toLowerCase().contentEquals("--help"))) {\r
+                outputUsage();\r
+                System.exit(EFAILURE);\r
+            }\r
+\r
+        }\r
+        return ESUCCESS;\r
+    }\r
+\r
+    private int testFile(String Filename) {\r
+        File tFile = new File(Filename);\r
+        if (DEBUG > 4)\r
+            System.out.println("File is located: " + tFile.getPath());\r
+        if (tFile.exists())\r
+            return FOUND;\r
+        else\r
+            return NOTFOUND;\r
+    }\r
+\r
+    private void setArgType(String argv) {\r
+        if (argv.trim().toLowerCase().contains(".spd"))\r
+            isPackage = true;\r
+        if (argv.trim().toLowerCase().contains(".fpd"))\r
+            isPlatform = true;\r
+        if (argv.trim().toLowerCase().contains(".far"))\r
+            isFar = true;\r
+    }\r
+\r
+    public String getArgType() {\r
+        String argt = "UNKNOWN";\r
+        if (isPackage)\r
+            argt = "SPD";\r
+        if (isFar)\r
+            argt = "FAR";\r
+        if (isPlatform)\r
+            argt = "FPD";\r
+        return argt;\r
+    }\r
+\r
+    private static void outputUsage() {\r
+\r
+        System.out.println("DbTool, " + version);\r
+        System.out.println(copyright);\r
+        System.out.println("Usage:");\r
+        System.out.println("  DbTool [-v] [-t] [-q] [-V] [--package] [--platform] [-h | -? | --help]");\r
+        System.out.println("    where:");\r
+        System.out.println("      -h | -? | --help          OPTIONAL - This Help Text");\r
+        System.out\r
+                  .println("      -t | --test               OPTIONAL - Test the FrameworkDatabase Contents against the WORKSPACE");\r
+        System.out\r
+                  .println("      -q                        OPTIONAL - Quiet mode - pass or fail only on return value, nothing is printed");\r
+        System.out\r
+                  .println("      -f | --fix                OPTIONAL - Automatically fix (non-interactive) the Database file to match the WORKSPACE.");\r
+        System.out\r
+                  .println("      -v                        OPTIONAL - Verbose, print information messages.  Adding more -v arguments increases verbosity.");\r
+        System.out.println("      --package                 OPTIONAL - Show all Packages installed in the WORKSPACE.");\r
+        System.out.println("      --platforms               OPTIONAL - Show all Platforms installed in the WORKSPACE.");\r
+        System.out.println("      -V                        OPTIONAL - Display Verision information and exit.");\r
+        //\r
+        // TODO: Implement the following options.\r
+        //\r
+        /**\r
+        System.out.println("");\r
+        System.out.println(" =================== Options below this line have not been implemented in this release ===================");\r
+        System.out\r
+                  .println("      -i                        OPTIONAL - Force interactive on commands that modify the WORKSPACE");\r
+        System.out\r
+                  .println("      --far                     OPTIONAL - Show all Framework Archives installed in the WORKSPACE.");\r
+        System.out\r
+                  .println("      --find [qualifier] value  OPTIONAL - Search the WORKSPACE for value, with one and only one optional Qualifier.");\r
+        System.out.println("         qualifiers: --guid  Find a GUID by Guid C Name");\r
+        System.out.println("                     --prot  Find a Protocol or ProtocolNotify by C Name");\r
+        System.out.println("                     --ppi   Find a PPI or PpiNotify by C Name");\r
+        System.out.println("                     --pcd   Find a PCD entry by C Name");\r
+        System.out.println("                     --lib   Find information about a Library Class");\r
+        System.out\r
+                  .println("      -c                        OPTIONAL - Print a comma separated value listing of TYPE,UiName,Filename");\r
+        System.out\r
+                  .println("      -a, --add value           OPTIONAL - Add a value (package, platform or far) to the database");\r
+        System.out\r
+                  .println("      -r, --del value           OPTIONAL - Remove a value (package, platform or far) from the database");\r
+        System.out.println("");\r
+        */\r
+    }\r
+}\r
diff --git a/edk2/Tools/Java/Source/DbTools/src/org/tianocore/DbTools/DbTool.java b/edk2/Tools/Java/Source/DbTools/src/org/tianocore/DbTools/DbTool.java
new file mode 100644 (file)
index 0000000..5e502b7
--- /dev/null
@@ -0,0 +1,24 @@
+// @file
+// DbUpdate wrapper
+//
+//  Copyright (c) 2006, Intel Corporation    All rights reserved.
+//
+//  This program and the accompanying materials are licensed and made
+//  available under the terms and conditions of the BSD License which
+//  accompanies this distribution.  The full text of the license may 
+//  be found at  http://opensource.org/licenses/bsd-license.php
+//
+//  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+//
+
+package org.tianocore.DbTools;
+
+public class DbTool {
+
+    public static void main(String[] args) {
+        if (new DbCmds().DbUpdateCmdLine(args) != 0)
+            System.exit(1);
+        System.exit(0);
+    }
+}
diff --git a/edk2/Tools/Java/Source/DbTools/src/org/tianocore/DbTools/UpdateDb.java b/edk2/Tools/Java/Source/DbTools/src/org/tianocore/DbTools/UpdateDb.java
new file mode 100644 (file)
index 0000000..ad581c9
--- /dev/null
@@ -0,0 +1,557 @@
+// @file\r
+//   This Class processes multiple MSA files and merges them into a single, \r
+//   merged MSA file. It will optionally add the merged MSA file into a package.\r
+//\r
+//\r
+//  Copyright (c) 2006, Intel Corporation    All rights reserved.\r
+//\r
+//  This program and the accompanying materials are licensed and made\r
+//  available under the terms and conditions of the BSD License which\r
+//  accompanies this distribution.  The full text of the license may \r
+//  be found at  http://opensource.org/licenses/bsd-license.php\r
+//\r
+//  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+//  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+//\r
+//\r
+\r
+package org.tianocore.DbTools;\r
+\r
+import java.io.*;\r
+import java.util.*;\r
+// import java.sql.Time;\r
+\r
+// import java.lang.*;\r
+// import java.lang.ExceptionInInitializerError;\r
+\r
+// import org.apache.xmlbeans.*;\r
+import org.apache.xmlbeans.XmlCursor;\r
+// import org.apache.xmlbeans.XmlObject;\r
+import org.apache.xmlbeans.XmlOptions;\r
+// import org.apache.xmlbeans.XmlException;\r
+import org.tianocore.*;\r
+\r
+// import org.tianocore.*;\r
+// FrameworkDatabase.db Schema Elements\r
+import org.tianocore.FrameworkDatabaseDocument.*;\r
+import org.tianocore.FdbHeaderDocument.*;\r
+import org.tianocore.PackageListDocument.*;\r
+import org.tianocore.PlatformListDocument.*;\r
+import org.tianocore.FarListDocument.*;\r
+\r
+// FAR Schema Elements\r
+// import org.tianocore.FrameworkArchiveManifestDocument.*;\r
+// import org.tianocore.FarHeaderDocument.*;\r
+// import org.tianocore.FarPackageDocument.*;\r
+// import org.tianocore.FarPlatformDocument.*;\r
+\r
+// FPD Schema Elements\r
+import org.tianocore.PlatformSurfaceAreaDocument.*;\r
+import org.tianocore.PlatformHeaderDocument.*;\r
+\r
+// import org.tianocore.FrameworkModulesDocument.*;\r
+// import org.tianocore.DynamicPcdBuildDefinitionsDocument.*;\r
+\r
+// SPD Schema Elements\r
+// import org.tianocore.PackageSurfaceAreaDocument.*;\r
+// import org.tianocore.SpdHeaderDocument.*;\r
+// import org.tianocore.LibraryClassDeclarationsDocument.*;\r
+// import org.tianocore.GuidDeclarationsDocument.*;\r
+// import org.tianocore.ProtocolDeclarationsDocument.*;\r
+// import org.tianocore.PpiDeclarationsDocument.*;\r
+// import org.tianocore.PcdDeclarationsDocument.*;\r
+\r
+// MSA Schema Elements\r
+// import org.tianocore.ModuleSurfaceAreaDocument.*;\r
+// import org.tianocore.MsaHeaderDocument.*;\r
+// import org.tianocore.LicenseDocument.*;\r
+// import org.tianocore.LibraryClassDefinitionsDocument.*;\r
+// import org.tianocore.PackageDependenciesDocument.*;\r
+// import org.tianocore.ProtocolsDocument.*;\r
+// import org.tianocore.PPIsDocument.*;\r
+// import org.tianocore.PcdCodedDocument.*;\r
+\r
+public class UpdateDb {\r
+\r
+    private final int DEBUG = 0;\r
+\r
+    private final int PASS = 0;\r
+\r
+    private final int FAIL = 1;\r
+\r
+    private int dCtr = 0;\r
+\r
+    private int lCtr = 0;\r
+\r
+    // Future implementations\r
+    //    private XmlCursor cursor = null;\r
+\r
+    // FrameworkDatabase Component Elements\r
+    //    private FrameworkDatabaseDocument fdbDoc = null;\r
+\r
+    //    private FrameworkDatabase fdbInstance = null;\r
+\r
+    //    private FdbHeader fdbHeader = null;\r
+\r
+    //    private PackageList fdbPackageList = null;\r
+\r
+    //    private ArrayList<String> packageList = new ArrayList<String>();\r
+\r
+    //    private PlatformList fdbPlatformList = null;\r
+\r
+    //    private ArrayList<String> platformList = new ArrayList<String>();\r
+\r
+    //    private FarList fdbFarList = null;\r
+\r
+    //    private ArrayList<String> farList = new ArrayList<String>();\r
+\r
+    private ArrayList<String> spdList = new ArrayList<String>();\r
+\r
+    private ArrayList<String> fpdList = new ArrayList<String>();\r
+\r
+    // Platform Components\r
+    //    private PlatformSurfaceAreaDocument fpdDoc = null;\r
+\r
+    //    private PlatformSurfaceArea fpd = null;\r
+\r
+    //    private PlatformHeader fpdHeader = null;\r
+\r
+    private boolean wasModified = false;\r
+\r
+    private int VERBOSE = 0;\r
+\r
+    // The combineMsaFiles routine is the primary routine for creating a \r
+    // Merged MSA file.\r
+\r
+    public UpdateDb() {\r
+        init();\r
+    }\r
+\r
+    private void init() {\r
+\r
+    }\r
+\r
+    public int getAllEntries(String dbFilename, int VERBOSE_FLAG) {\r
+        System.out.println("Function not yet implemented!");\r
+        return FAIL;\r
+    }\r
+\r
+    public int getCsvEntries(String dbFilename, int VERBOSE_FLAG) {\r
+        System.out.println("Function not yet implemented!");\r
+        return FAIL;\r
+    }\r
+\r
+    public int fixDatabase(String workspace, int VERBOSE_FLAG, boolean INTERACTIVE, boolean TEST, boolean QUIET) {\r
+        int result = PASS;\r
+        String dbFile = workspace + File.separator + "Tools" + File.separator + "Conf" + File.separator\r
+                        + "FrameworkDatabase.db";\r
+        String dbBak = dbFile + ".bak";\r
+\r
+        try {\r
+            // Make a backup file for frameworkDatabase\r
+            if (VERBOSE_FLAG > 3)\r
+                System.out.println("Creating Backup file: " + dbBak);\r
+            copyFile(dbFile, dbBak);\r
+        } catch (IOException e) {\r
+            System.out.println("Error: Cannot make backup file " + dbBak);\r
+            return FAIL;\r
+        }\r
+\r
+        // Datebase update for SPD and FPD files\r
+        result = fixDB(workspace, dbFile, VERBOSE_FLAG, TEST, QUIET);\r
+        if ((result == 0) && (TEST) && (QUIET == false))\r
+            System.out.println("Workspace is consistent with current database!");\r
+        return PASS;\r
+    }\r
+\r
+    public int addItem(String dbFilename, String item, int VERBOSE_FLAG, boolean INTERACTIVE) {\r
+        System.out.println("Function not yet implemented!");\r
+        return FAIL;\r
+    }\r
+\r
+    public int delItem(String workspace, String item, int VERBOSE_FLAG, boolean INTERACTIVE) {\r
+        System.out.println("Function not yet implemented!");\r
+        return FAIL;\r
+    }\r
+\r
+    public int findItem(String workspace, int VERBOSE_FLAG, String findWhat, String item) {\r
+        System.out.println("Function not yet implemented!");\r
+        return FAIL;\r
+    }\r
+\r
+    public int findFars(String workspace, int VERBOSE_FLAG) {\r
+        System.out.println("Function not yet implemented!");\r
+        return FAIL;\r
+    }\r
+\r
+    public int findSpds(String workspace, int VERBOSE_FLAG) {\r
+        System.out.println("The following Package (SPD) files are in the workspace!");            \r
+        File wsDir = new File(workspace);\r
+        findSPDFiles(wsDir, workspace, VERBOSE);\r
+        for (int i = 0; i < spdList.size(); i++) {\r
+            System.out.println("  " + spdList.get(i).trim());\r
+            // TODO: get the PackageName from the file\r
+        }\r
+        return FAIL;\r
+    }\r
+\r
+    public int findFpds(String workspace, int VERBOSE_FLAG) {\r
+        System.out.println("The following Platform (FPD) files are in the workspace!");\r
+        File wsDir = new File(workspace);\r
+        findFPDFiles(wsDir, workspace, VERBOSE);\r
+        for (int i = 0; i < fpdList.size(); i++) {\r
+            System.out.println("  " + fpdList.get(i).trim());\r
+            // TODO: get the PlatformName from the file\r
+        }\r
+        return FAIL;\r
+    }\r
+\r
+    // copy from source file to destination file\r
+    private int copyFile(String src, String dst) throws IOException {\r
+        try {\r
+            File srcFile = new File(src);\r
+            FileReader fileReader = new FileReader(srcFile);\r
+            BufferedReader reader = new BufferedReader(fileReader);\r
+\r
+            File dstFile = new File(dst);\r
+            FileWriter fileWriter = new FileWriter(dstFile);\r
+            BufferedWriter writer = new BufferedWriter(fileWriter);\r
+\r
+            String line = null;\r
+            while ((line = reader.readLine()) != null) {\r
+                writer.write(line);\r
+                writer.newLine();\r
+            }\r
+\r
+            reader.close();\r
+            writer.close();\r
+        } catch (IOException e) {\r
+            System.out.println("I/O Exception during file copy: " + e);\r
+        }\r
+\r
+        return PASS;\r
+    }\r
+\r
+    private int fixDB(String workspace, String dbFile, int VERBOSE, boolean TEST, boolean QUIET) {\r
+        File wsDir = new File(workspace);\r
+        int retValue = PASS;\r
+        // Find all .spd and .fpd files in workspace and put them in spdList and fpdList\r
+        if (VERBOSE > 0)\r
+            System.out.println("SPD File Search ");\r
+        findSPDFiles(wsDir, workspace, VERBOSE);\r
+        dCtr = 0;\r
+        lCtr = 0;\r
+        if (VERBOSE > 0) {\r
+            System.out.println(" ");\r
+            System.out.println("FPD File Search ");\r
+        }\r
+        findFPDFiles(wsDir, workspace, VERBOSE);\r
+        if (VERBOSE > 0)\r
+            System.out.println(" ");\r
+\r
+        try {\r
+            // check database file for possible update\r
+            retValue = checkDBForUpdate(workspace, dbFile, VERBOSE, TEST, QUIET);\r
+        } catch (IOException e) {\r
+            if (QUIET == false)\r
+                System.out.println("Error: Updating " + dbFile + " file.");\r
+            return FAIL;\r
+        }\r
+\r
+        if ((VERBOSE > 0) && (TEST) && (wasModified)) {\r
+            System.out.println("FRAMEWORK Database does NOT match the contents of the WORKSPACE");\r
+            retValue = FAIL;\r
+        }\r
+        if ((VERBOSE > 0) && (wasModified == false) && (QUIET == false))\r
+            System.out.println("FRAMEWORK Database matches the contents of the WORKSPACE");\r
+\r
+        return retValue;\r
+    }\r
+\r
+    private void findSPDFiles(File dir, String workspace, int VERBOSE) {\r
+        String str;\r
+\r
+        if (dir.isDirectory()) {\r
+            dCtr++;\r
+            String[] subdir = dir.list();\r
+            if (dCtr >= 10) {\r
+                if (VERBOSE > 2)\r
+                    System.out.print(".");\r
+                dCtr = 0;\r
+                lCtr++;\r
+            }\r
+            if (lCtr > 79) {\r
+                if (VERBOSE > 2)\r
+                    System.out.println(" ");\r
+                lCtr = 0;\r
+                dCtr = 0;\r
+            }\r
+\r
+            for (int i = 0; i < subdir.length; i++) {\r
+                findSPDFiles(new File(dir, subdir[i]), workspace, VERBOSE);\r
+            }\r
+        } else {\r
+            if (dir.toString().toLowerCase().endsWith(".spd")) {\r
+                str = dir.getPath().replace('\\', '/');\r
+                workspace = workspace.replace('\\', '/');\r
+                str = strStrip(str, workspace + "/");\r
+                spdList.add(str.toString());\r
+                if (VERBOSE == 2)\r
+                    System.out.println("  " + str);\r
+                if (VERBOSE > 2)\r
+                    System.out.print("+");\r
+                lCtr++;\r
+            }\r
+        }\r
+\r
+    }\r
+\r
+    private void findFPDFiles(File dir, String workspace, int VERBOSE) {\r
+        String str;\r
+\r
+        if (dir.isDirectory()) {\r
+            String[] subdir = dir.list();\r
+            if (dCtr >= 10) {\r
+                if (VERBOSE > 2)\r
+                    System.out.print(".");\r
+                dCtr = 0;\r
+                lCtr++;\r
+            }\r
+            if (lCtr > 79) {\r
+                if (VERBOSE > 2)\r
+                    System.out.println(" ");\r
+                lCtr = 0;\r
+                dCtr = 0;\r
+            }\r
+\r
+            for (int i = 0; i < subdir.length; i++) {\r
+                findFPDFiles(new File(dir, subdir[i]), workspace, VERBOSE);\r
+            }\r
+        } else {\r
+            if (dir.toString().toLowerCase().endsWith(".fpd")) {\r
+                str = dir.getPath().replace('\\', '/');\r
+                workspace = workspace.replace('\\', '/');\r
+                str = strStrip(str, workspace + "/");\r
+                fpdList.add(str.toString());\r
+                if (VERBOSE == 2)\r
+                    System.out.println("  " + str);\r
+                if (VERBOSE > 2)\r
+                    System.out.print("+");\r
+                lCtr++;\r
+            }\r
+        }\r
+    }\r
+\r
+    private int checkDBForUpdate(String workspace, String dbFileName, int VERBOSE, boolean TEST, boolean QUIET)\r
+                                                                                                               throws IOException {\r
+        int SpdFlag = 0;\r
+        int FpdFlag = 0;\r
+        String SpdFile = null;\r
+        String SpdFullFile = null;\r
+        String FpdFile = null;\r
+        String FpdFullFile = null;\r
+\r
+        String tmpDbFile = dbFileName + ".tmp";\r
+        String newSpd = null;\r
+        String newFpd = null;\r
+\r
+        FileReader fileReader = new FileReader(dbFileName);\r
+        BufferedReader reader = new BufferedReader(fileReader);\r
+\r
+        FileWriter fileWriter = new FileWriter(tmpDbFile);\r
+        BufferedWriter writer = new BufferedWriter(fileWriter);\r
+\r
+        String line = null;\r
+        try {\r
+            while ((line = reader.readLine()) != null) {\r
+                if (line.indexOf("Added the following") >= 0) {\r
+                    wasModified = true;\r
+                    continue;\r
+                }\r
+                //\r
+                // Process for .spd files\r
+                //\r
+                if (line.indexOf("<PackageList") >= 0) {\r
+                    SpdFlag = 1;\r
+                } else {\r
+                    if (line.indexOf("</PackageList") >= 0) {\r
+                        SpdFlag = 2;\r
+                    }\r
+                }\r
+                if (SpdFlag == 1 && line.indexOf("Filename") >= 0) {\r
+                    SpdFile = strStrip(line, "<Filename>");\r
+                    SpdFile = strStrip(SpdFile, "</Filename>");\r
+                    SpdFile = SpdFile.trim();\r
+                    SpdFullFile = workspace + File.separator + SpdFile;\r
+                    if (!(new File(SpdFullFile)).exists()) {\r
+                        if (VERBOSE > 0)\r
+                            System.out.println("WARNING: Removing SPD file: " + SpdFile\r
+                                               + "from the DB, as it does not exist!");\r
+                        wasModified = true;\r
+                        continue;\r
+                    }\r
+                    // Don't add files that are already in the database\r
+                    spdList.remove(SpdFile);\r
+                }\r
+                if (SpdFlag == 2) {\r
+                    int cflag = 0;\r
+                    for (int i = 0; i < spdList.size(); i++) {\r
+                        newSpd = spdList.get(i);\r
+                        newSpd = newSpd.trim();\r
+                        if (newSpd.length() > 0) {\r
+                            if (cflag == 0) {\r
+                                Calendar c = Calendar.getInstance();\r
+                                if (TEST == false)\r
+                                    writer.write("    <!-- Adding the following SPD files " + c.getTime() + " -->\n");\r
+                            }\r
+                            if (VERBOSE > 0)\r
+                                System.out.println("  Adding SPD file: " + newSpd);\r
+                            if (TEST == false)\r
+                                writer.write("    <Filename>" + newSpd + "</Filename>\n");\r
+                            cflag++;\r
+                            wasModified = true;\r
+                        }\r
+                    }\r
+                    SpdFlag++;\r
+                }\r
+                //\r
+                // Process for .fpd files\r
+                // \r
+                if (line.indexOf("<PlatformList") >= 0) {\r
+                    FpdFlag = 1;\r
+                } else {\r
+                    if (line.indexOf("</PlatformList") >= 0) {\r
+                        FpdFlag = 2;\r
+                    }\r
+                }\r
+                if (FpdFlag == 1 && line.indexOf("Filename") >= 0) {\r
+                    FpdFile = strStrip(line, "<Filename>");\r
+                    FpdFile = strStrip(FpdFile, "</Filename>");\r
+                    FpdFile = FpdFile.trim();\r
+                    FpdFullFile = workspace + File.separator + FpdFile;\r
+                    if (!(new File(FpdFullFile)).exists()) {\r
+                        if (VERBOSE > 0)\r
+                            System.out.println("WARNING: Removing FPD file: " + FpdFile\r
+                                               + " from the DB, as it does not exist!");\r
+                        wasModified = true;\r
+                        continue;\r
+                    }\r
+                    // Don't add files that are already in the database\r
+                    fpdList.remove(FpdFile);\r
+                }\r
+                if (FpdFlag == 2) {\r
+                    int cflag = 0;\r
+                    for (int i = 0; i < fpdList.size(); i++) {\r
+                        newFpd = fpdList.get(i);\r
+                        newFpd = newFpd.trim();\r
+                        if (newFpd.length() > 0) {\r
+                            if (cflag == 0) {\r
+                                Calendar c = Calendar.getInstance();\r
+                                if (TEST == false)\r
+                                    writer.write("    <!-- Adding the following FPD files " + c.getTime() + " -->\n");\r
+                            }\r
+                            if (VERBOSE > 0)\r
+                                System.out.println("  Adding FPD file: " + newFpd);\r
+                            if (TEST == false)\r
+                                writer.write("    <Filename>" + newFpd + "</Filename>\n");\r
+                            cflag++;\r
+                            wasModified = true;\r
+                        }\r
+                    }\r
+                    FpdFlag++;\r
+                }\r
+\r
+                if (DEBUG > 2) {\r
+                    System.out.println(line);\r
+                }\r
+                if (TEST == false) {\r
+                    writer.write(line);\r
+                    writer.newLine();\r
+                }\r
+            }\r
+            reader.close();\r
+            writer.close();\r
+\r
+        } catch (IOException e) {\r
+            System.out.println("ERROR I/O Exception occured! " + e);\r
+            System.exit(FAIL);\r
+        }\r
+\r
+        if (wasModified) {\r
+            if ((VERBOSE > 0) && (QUIET == false))\r
+                System.out.println("FrameworkDatabase has been UPDATED for this Workspace!\n");\r
+            if (TEST == false)\r
+                copyFile(tmpDbFile, dbFileName);\r
+        } else {\r
+            if ((VERBOSE > 0) && (QUIET == false))\r
+                System.out.println("FrameworkDatabase correct for this Workspace!\n");\r
+        }\r
+\r
+        if (TEST == false) {\r
+            File tmpFile = new File(tmpDbFile);\r
+            if (tmpFile.exists()) {\r
+                tmpFile.delete();\r
+            }\r
+        }\r
+\r
+        return PASS;\r
+    }\r
+\r
+    static String strStrip(String str, String pattern) {\r
+        int ps = 0;\r
+        int pe = 0;\r
+        StringBuffer result = new StringBuffer();\r
+\r
+        while ((pe = str.indexOf(pattern, ps)) >= 0) {\r
+            result.append(str.substring(ps, pe));\r
+            ps = pe + pattern.length();\r
+        }\r
+        result.append(str.substring(ps));\r
+        return result.toString();\r
+    }\r
+\r
+    private String checkDuplicateStrings(String aString, ArrayList<String> aList) {\r
+        // This routine checks a string against an array.\r
+        // If the string is found, it will return an empty string.\r
+        // If the string is not found, it adds the string to the array, and\r
+        // returns the string to the caller.\r
+        for (int lctr = 0; lctr < aList.size(); lctr++) {\r
+            if (DEBUG > 8)\r
+                System.out.println("Comparing: \n" + aString.replace(" ", "").replace("\n", "") + "\nTo: \n"\r
+                                   + aList.get(lctr).replace(" ", "").replace("\n", "").toString().trim());\r
+            if (aString.replace(" ", "").replace("\n", "").contains(\r
+                                                                    aList.get(lctr).replace(" ", "").replace("\n", "")\r
+                                                                         .toString().trim())) {\r
+                if ((DEBUG > 3) || (VERBOSE > 3))\r
+                    System.out.println("Found a duplicate String, skipping!");\r
+                return "";\r
+            }\r
+        }\r
+        if ((DEBUG > 3) || (VERBOSE > 3))\r
+            System.out.println("Returning UNIQUE String!\n " + aString);\r
+        aList.add(aString);\r
+        return aString;\r
+    }\r
+\r
+    private static class XmlConfig {\r
+        public static XmlCursor setupXmlCursor(XmlCursor cursor) {\r
+            String uri = "http://www.TianoCore.org/2006/Edk2.0";\r
+            cursor.push();\r
+            cursor.toNextToken();\r
+            cursor.insertNamespace("", uri);\r
+            cursor.insertNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");\r
+            cursor.pop();\r
+            return cursor;\r
+\r
+        }\r
+\r
+        public static XmlOptions setupXmlOptions() {\r
+            XmlOptions options = new XmlOptions();\r
+            options.setCharacterEncoding("UTF-8");\r
+            options.setSavePrettyPrint();\r
+            options.setSavePrettyPrintIndent(2);\r
+            return options;\r
+        }\r
+\r
+    }\r
+}\r
index 0920899..b394d7a 100644 (file)
@@ -2,18 +2,18 @@
 <ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\r
   <MsaHeader>\r
     <ModuleName>Merge Tool</ModuleName>\r
-    <ModuleType>BASE</ModuleType>\r
+    <ModuleType>TOOL</ModuleType>\r
     <GuidValue>fbb48848-4776-44a1-8458-1e84701fb62f</GuidValue>\r
     <Version>0.1</Version>\r
     <Abstract>The tool merges multiple MSA files (of the same ModuleType) into a single module</Abstract>\r
-    <Description>Merging multiple modules into a single module is useful for size reduction of the binary images.
-This tool will create an MSA file, based on the content of "leaf" MSA files.  It is written so that it can be executed from a command line, or later, incorporated into the Wizard.
-USAGE:
+    <Description>Merging multiple modules into a single module is useful for size reduction of the binary images.\r
+This tool will create an MSA file, based on the content of "leaf" MSA files.  It is written so that it can be executed from a command line, or later, incorporated into the Wizard.\r
+USAGE:\r
 merge [-v] -t target [-u UiName] [-p PackageFile] [-o OutputFileBasename] dir1\mod1.msa ... dirN\modN.msa</Description>\r
     <Copyright>Copyright (c) 2006, Intel Corporation   All rights reserved.</Copyright>\r
-    <License URL="http://opensource.org/licenses/bsd-license.php">This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution.  The full text of the license may be found at  http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+    <License URL="http://opensource.org/licenses/bsd-license.php">This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution.  The full text of the license may be found at  http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>\r
     <Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052</Specification>\r
   </MsaHeader>\r
@@ -23,10 +23,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</L
     <OutputFileBasename>Merge</OutputFileBasename>\r
   </ModuleDefinitions>\r
   <SourceFiles>\r
-    <Filename>src/org/tianocore/Mege/CombineMsa.java</Filename>\r
+    <Filename>src/org/tianocore/Merge/CombineMsa.java</Filename>\r
     <Filename>src/org/tianocore/Merge/Merge.java</Filename>\r
     <Filename>src/org/tianocore/Merge/MergeCmd.java</Filename>\r
     <Filename>build.xml</Filename>\r
     <Filename>readme.txt</Filename>\r
   </SourceFiles>\r
-</ModuleSurfaceArea>
\ No newline at end of file
+</ModuleSurfaceArea>\r
index 475950d..f5d0887 100644 (file)
@@ -5,28 +5,41 @@
     <GuidValue>53f84ca0-53fe-4412-b4e7-dcec602e1d49</GuidValue>\r
     <Version>2.0</Version>\r
     <Abstract>TianoCore.org EDK II Tools</Abstract>\r
-    <Description>This package provides the tools needed to create EFI/Framework platform
-      binary files (PBF) and EFI/Framework Modules that can be incorporated 
-      into a PBF.  Source Code is provided for all C and Java applications. 
-      This package also provides the directory structure and templates for 
+    <Description>This package provides the tools needed to create EFI/Framework platform\r
+      binary files (PBF) and EFI/Framework Modules that can be incorporated \r
+      into a PBF.  Source Code is provided for all C and Java applications. \r
+      This package also provides the directory structure and templates for \r
       configuration files.</Description>\r
     <Copyright>Copyright (c) 2006, Intel Corporation</Copyright>\r
-    <License>All rights reserved.
-
-      This program and the accompanying materials are licensed and made available
-      under the terms and conditions of the BSD License which accompanies this
-      distribution. The full text of the license may be found at
-      http://opensource.org/licenses/bsd-license.php
-
-      THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+    <License>All rights reserved.\r
+\r
+      This program and the accompanying materials are licensed and made available\r
+      under the terms and conditions of the BSD License which accompanies this\r
+      distribution. The full text of the license may be found at\r
+      http://opensource.org/licenses/bsd-license.php\r
+\r
+      THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
       WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>\r
     <Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052</Specification>\r
   </SpdHeader>\r
   <PackageDefinitions>\r
     <ReadOnly>false</ReadOnly>\r
-    <RePackage>false</RePackage>\r
+    <RePackage>true</RePackage>\r
   </PackageDefinitions>\r
   <MsaFiles>\r
     <Filename>AllResourceFiles.msa</Filename>\r
+    <Filename>CCode/Source/TianoTools.msa</Filename>\r
+    <Filename>Java/Source/CheckTools/CheckTools.msa</Filename>\r
+    <Filename>Java/Source/Common/Common.msa</Filename>\r
+    <Filename>Java/Source/ContextTool/ContextTool.msa</Filename>\r
+    <Filename>Java/Source/Cpptasks/CppTasks.msa</Filename>\r
+    <Filename>Java/Source/DbTools/DbTools.msa</Filename>\r
+    <Filename>Java/Source/FrameworkTasks/FrameworkTasks.msa</Filename>\r
+    <Filename>Java/Source/FrameworkWizard/FrameworkWizard.msa</Filename>\r
+    <Filename>Java/Source/GenBuild/GenBuild.msa</Filename>\r
+    <Filename>Java/Source/Merge/Merge.msa</Filename>\r
+    <Filename>Java/Source/MigrationTools/MigrationTools.msa</Filename>\r
+    <Filename>Java/Source/PcdTools/PcdTools.msa</Filename>\r
+    <Filename>Java/Source/SurfaceArea/SurfaceArea.msa</Filename>\r
   </MsaFiles>\r
-</PackageSurfaceArea>
+</PackageSurfaceArea>\r
diff --git a/edk2/Tools/bin/dbtool b/edk2/Tools/bin/dbtool
new file mode 100644 (file)
index 0000000..53f17a4
--- /dev/null
@@ -0,0 +1,13 @@
+#
+# Copyright (c) 2006, Intel Corporation
+# All rights reserved. This program and the accompanying materials
+# are licensed and made available under the terms and conditions of the BSD License
+# which accompanies this distribution.  The full text of the license may be found at
+# http://opensource.org/licenses/bsd-license.php
+# 
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+
+# Run DbTools
+java -cp ${WORKSPACE}/Tools/Jars/DbTools.jar org.tianocore.DbTools.DbTool $@
diff --git a/edk2/Tools/bin/dbtool.bat b/edk2/Tools/bin/dbtool.bat
new file mode 100644 (file)
index 0000000..57d8227
--- /dev/null
@@ -0,0 +1,73 @@
+@REM\r
+@REM Copyright (c) 2006, Intel Corporation\r
+@REM All rights reserved. This program and the accompanying materials\r
+@REM are licensed and made available under the terms and conditions of the BSD License\r
+@REM which accompanies this distribution.  The full text of the license may be found at\r
+@REM http://opensource.org/licenses/bsd-license.php\r
+@REM \r
+@REM THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+@REM WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+@REM\r
+\r
+@echo off\r
+\r
+:check_java\r
+if "%JAVA_HOME%"=="" goto no_jdk\r
+:check_wks\r
+if "%WORKSPACE%"=="" goto no_wks\r
+:check_ant\r
+if "%ANT_HOME%"=="" goto no_ant\r
+:check_xmlbeans\r
+if "%XMLBEANS_HOME%"=="" goto no_xmlbeans\r
+:check_surfacearea\r
+if not exist %WORKSPACE%\Tools\Jars\SurfaceArea.jar (\r
+  goto no_surfacearea\r
+)\r
+:check_DbTools\r
+if not exist %WORKSPACE%\Tools\Jars\DbTools.jar (\r
+  goto no_DbTools\r
+)\r
+\r
+@REM Run Framework Wizard\r
+call "java" -cp %WORKSPACE%\Tools\Jars\DbTools.jar org.tianocore.DbTools.DbTool %*\r
+\r
+goto end\r
+\r
+:no_jdk\r
+@echo.\r
+@echo !!! Please set JAVA_HOME !!!\r
+@echo.\r
+goto check_wks\r
+\r
+:no_wks\r
+@echo.\r
+@echo !!! Please set WORKSPACE !!!\r
+@echo.\r
+goto check_ant\r
+\r
+:no_ant\r
+@echo.\r
+@echo !!! Please set ANT_HOME !!!\r
+@echo.\r
+goto check_xmlbeans\r
+\r
+:no_xmlbeans\r
+@echo.\r
+@echo !!! Please set XMLBEANS_HOME !!!\r
+@echo.\r
+goto end\r
+\r
+:no_surfacearea\r
+@echo.\r
+@echo !!! Please run edksetup.bat to build SurfaceArea.jar !!!\r
+@echo.\r
+goto end\r
+\r
+:no_DbTools\r
+@echo.\r
+@echo !!! Please run edksetup.bat to build DbTools.jar !!!\r
+@echo.\r
+goto end\r
+\r
+:end\r
+@echo on\r
diff --git a/edk2/Tools/bin/fixdb b/edk2/Tools/bin/fixdb
new file mode 100644 (file)
index 0000000..a6aa397
--- /dev/null
@@ -0,0 +1,13 @@
+#
+# Copyright (c) 2006, Intel Corporation
+# All rights reserved. This program and the accompanying materials
+# are licensed and made available under the terms and conditions of the BSD License
+# which accompanies this distribution.  The full text of the license may be found at
+# http://opensource.org/licenses/bsd-license.php
+# 
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+
+# Run DbTools -f
+java -cp ${WORKSPACE}/Tools/Jars/DbTools.jar org.tianocore.DbTools.DbTool -f $@
diff --git a/edk2/Tools/bin/fixdb.bat b/edk2/Tools/bin/fixdb.bat
new file mode 100644 (file)
index 0000000..f26637e
--- /dev/null
@@ -0,0 +1,73 @@
+@REM\r
+@REM Copyright (c) 2006, Intel Corporation\r
+@REM All rights reserved. This program and the accompanying materials\r
+@REM are licensed and made available under the terms and conditions of the BSD License\r
+@REM which accompanies this distribution.  The full text of the license may be found at\r
+@REM http://opensource.org/licenses/bsd-license.php\r
+@REM \r
+@REM THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+@REM WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+@REM\r
+\r
+@echo off\r
+\r
+:check_java\r
+if "%JAVA_HOME%"=="" goto no_jdk\r
+:check_wks\r
+if "%WORKSPACE%"=="" goto no_wks\r
+:check_ant\r
+if "%ANT_HOME%"=="" goto no_ant\r
+:check_xmlbeans\r
+if "%XMLBEANS_HOME%"=="" goto no_xmlbeans\r
+:check_surfacearea\r
+if not exist %WORKSPACE%\Tools\Jars\SurfaceArea.jar (\r
+  goto no_surfacearea\r
+)\r
+:check_DbTools\r
+if not exist %WORKSPACE%\Tools\Jars\DbTools.jar (\r
+  goto no_DbTools\r
+)\r
+\r
+@REM Run Framework Wizard\r
+call "java" -cp %WORKSPACE%\Tools\Jars\DbTools.jar org.tianocore.DbTools.DbTool -f %*\r
+\r
+goto end\r
+\r
+:no_jdk\r
+@echo.\r
+@echo !!! Please set JAVA_HOME !!!\r
+@echo.\r
+goto check_wks\r
+\r
+:no_wks\r
+@echo.\r
+@echo !!! Please set WORKSPACE !!!\r
+@echo.\r
+goto check_ant\r
+\r
+:no_ant\r
+@echo.\r
+@echo !!! Please set ANT_HOME !!!\r
+@echo.\r
+goto check_xmlbeans\r
+\r
+:no_xmlbeans\r
+@echo.\r
+@echo !!! Please set XMLBEANS_HOME !!!\r
+@echo.\r
+goto end\r
+\r
+:no_surfacearea\r
+@echo.\r
+@echo !!! Please run edksetup.bat to build SurfaceArea.jar !!!\r
+@echo.\r
+goto end\r
+\r
+:no_DbTools\r
+@echo.\r
+@echo !!! Please run edksetup.bat to build DbTools.jar !!!\r
+@echo.\r
+goto end\r
+\r
+:end\r
+@echo on\r
index 19c8de2..4b02c25 100644 (file)
@@ -42,6 +42,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
           Java/Source/ContextTool/build.xml\r
           Java/Source/Merge/build.xml\r
           Java/Source/CheckTools/build.xml\r
+          Java/Source/DbTools/build.xml\r
           "/>\r
     </subant>\r
     <echo message="The EDK II Java Tools build has completed!"/>\r
@@ -184,6 +185,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
           Java/Source/ContextTool/build.xml\r
           Java/Source/Merge/build.xml\r
           Java/Source/CheckTools/build.xml\r
+          Java/Source/DbTools/build.xml\r
           CCode/Source/build.xml\r
         "/>\r
     </subant>\r
@@ -236,6 +238,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
           Java/Source/ContextTool/build.xml\r
           Java/Source/Merge/build.xml\r
           Java/Source/CheckTools/build.xml\r
+          Java/Source/DbTools/build.xml\r
           CCode/Source/build.xml\r
         "/>\r
     </subant>\r