]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Makefile
BaseTools: Update Python Makefile not to depend on PYTHON_FREEZER_PATH
[mirror_edk2.git] / BaseTools / Source / Python / Makefile
index 26aacf947f092d0c43062bc8b0bf02a2d29f9029..e7755cdbf8c8629e5faea3dc59a753e4116e421c 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 # Windows makefile for Python tools build.\r
 #\r
-# Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.<BR>\r
 # 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
 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 #\r
 \r
-!IFNDEF PYTHON_FREEZER_PATH\r
-!ERROR PYTHON_FREEZER_PATH must be defined!\r
+!IFNDEF PYTHON_HOME\r
+!ERROR PYTHON_HOME must be defined!\r
 !ENDIF\r
 \r
-FREEZE=$(PYTHON_FREEZER_PATH)\FreezePython.exe\r
+!IFDEF PYTHON_FREEZER_PATH\r
+!IF EXIST ($(PYTHON_FREEZER_PATH)\cxfreeze)\r
+# Using cx_Freeze 4.2.3 with Python 2.7.2\r
+FREEZE=$(PYTHON_HOME)\python $(PYTHON_FREEZER_PATH)\cxfreeze\r
+!ELSE\r
+!ERROR PYTHON_FREEZER_PATH does not exist!\r
+!ENDIF\r
+!ENDIF\r
 \r
-MODULES=encodings.cp437,encodings.gbk,encodings.utf_16,encodings.utf_8,encodings.utf_16_le,encodings.latin_1\r
+MODULES=encodings.cp437,encodings.gbk,encodings.utf_16,encodings.utf_8,encodings.utf_16_le,encodings.latin_1,encodings.ascii\r
 \r
-BIN_DIR=$(EDK_TOOLS_PATH)\Bin\Win32\r
+# DOS del command doesn't support ":\\" in the file path, such as j:\\BaseTools. Convert ":\\" to ":\"\r
+BASE_TOOLS_PATH = $(BASE_TOOLS_PATH::\\=:\)\r
+EDK_TOOLS_PATH  = $(EDK_TOOLS_PATH::\\=:\)\r
 \r
+BIN_DIR=$(EDK_TOOLS_PATH)\Bin\Win32\r
 \r
-APPLICATIONS=$(BIN_DIR)\build.exe $(BIN_DIR)\GenFds.exe $(BIN_DIR)\Trim.exe $(BIN_DIR)\MigrationMsa2Inf.exe $(BIN_DIR)\Fpd2Dsc.exe $(BIN_DIR)\TargetTool.exe $(BIN_DIR)\spd2dec.exe $(BIN_DIR)\GenDepex.exe $(BIN_DIR)\GenPatchPcdTable.exe $(BIN_DIR)\PatchPcdValue.exe\r
+APPLICATIONS=$(BIN_DIR)\build.exe $(BIN_DIR)\GenFds.exe $(BIN_DIR)\Trim.exe $(BIN_DIR)\TargetTool.exe $(BIN_DIR)\GenDepex.exe $(BIN_DIR)\GenPatchPcdTable.exe $(BIN_DIR)\PatchPcdValue.exe $(BIN_DIR)\BPDG.exe $(BIN_DIR)\UPT.exe $(BIN_DIR)\Rsa2048Sha256Sign.exe $(BIN_DIR)\Rsa2048Sha256GenerateKeys.exe $(BIN_DIR)\Pkcs7Sign.exe $(BIN_DIR)\Ecc.exe\r
 \r
 COMMON_PYTHON=$(BASE_TOOLS_PATH)\Source\Python\Common\BuildToolError.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\Database.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\DataType.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\DecClassObject.py \\r
-              $(BASE_TOOLS_PATH)\Source\Python\Common\DecClassObjectLight.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\Dictionary.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\DscClassObject.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\EdkIIWorkspace.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\EdkIIWorkspaceBuild.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\EdkLogger.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Common\Expression.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\FdfClassObject.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\FdfParserLite.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\GlobalData.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\Identification.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\InfClassObject.py \\r
-              $(BASE_TOOLS_PATH)\Source\Python\Common\InfClassObjectLight.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Common\LongFilePathOs.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Common\LongFilePathOsPath.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Common\LongFilePathSupport.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\MigrationUtilities.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\Misc.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\Parsing.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\String.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\TargetTxtClassObject.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\ToolDefClassObject.py \\r
-              $(BASE_TOOLS_PATH)\Source\Python\Common\XmlParser.py \\r
-              $(BASE_TOOLS_PATH)\Source\Python\Common\XmlRoutines.py \\r
-              $(BASE_TOOLS_PATH)\Source\Python\Common\__init__.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Common\VpdInfoFile.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Common\BuildVersion.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Common\MultipleWorkspace.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\CommonDataClass\CommonClass.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\CommonDataClass\DataClass.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\CommonDataClass\Exceptions.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\CommonDataClass\FdfClass.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\CommonDataClass\ModuleClass.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\CommonDataClass\PackageClass.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\CommonDataClass\PlatformClass.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Table\Table.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Table\TableDataModel.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Table\TableDec.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Table\TableDsc.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Table\TableEotReport.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Table\TableFdf.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Table\TableFile.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Table\TableFunction.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Table\TableIdentifier.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Table\TableInf.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Table\TablePcd.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Table\TableQuery.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Table\TableReport.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Workspace\BuildClassObject.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Workspace\MetaDataTable.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Workspace\MetaFileCommentParser.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Workspace\MetaFileParser.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Workspace\MetaFileTable.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Workspace\WorkspaceCommon.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Workspace\WorkspaceDatabase.py \\r
-              $(BASE_TOOLS_PATH)\Source\Python\Workspace\__init__.py \\r
-              $(BASE_TOOLS_PATH)\Source\Python\Autogen\AutoGen.py \\r
-              $(BASE_TOOLS_PATH)\Source\Python\Autogen\BuildEngine.py \\r
-              $(BASE_TOOLS_PATH)\Source\Python\Autogen\GenC.py \\r
-              $(BASE_TOOLS_PATH)\Source\Python\Autogen\GenDepex.py \\r
-              $(BASE_TOOLS_PATH)\Source\Python\Autogen\GenMake.py \\r
-              $(BASE_TOOLS_PATH)\Source\Python\Autogen\StrGather.py \\r
-              $(BASE_TOOLS_PATH)\Source\Python\Autogen\UniClassObject.py \\r
-              $(BASE_TOOLS_PATH)\Source\Python\Autogen\__init__.py \r
-\r
-              \r
+              $(BASE_TOOLS_PATH)\Source\Python\AutoGen\AutoGen.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\AutoGen\BuildEngine.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\AutoGen\GenC.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\AutoGen\GenDepex.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\AutoGen\GenMake.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\AutoGen\GenPcdDb.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\AutoGen\InfSectionParser.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\AutoGen\StrGather.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\AutoGen\UniClassObject.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\AutoGen\ValidCheckingInfoObject.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Common\RangeExpression.py \\r
+              $(BASE_TOOLS_PATH)\Source\Python\Common\VariableAttributes.py\r
+\r
+CMD_BUILD=$(BASE_TOOLS_PATH)\Source\Python\build\BuildReport.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenPatchPcdTable\GenPatchPcdTable.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\PatchPcdValue\PatchPcdValue.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\Eot\c.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\Eot\CLexer.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\Eot\CodeFragment.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\Eot\CodeFragmentCollector.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\Eot\CParser.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\Eot\Database.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\Eot\EfiCompressor.pyd \\r
+    $(BASE_TOOLS_PATH)\Source\Python\Eot\Eot.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\Eot\EotGlobalData.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\Eot\EotToolError.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\Eot\FileProfile.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\Eot\FvImage.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\Eot\InfParserLite.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\Eot\LzmaCompressor.pyd \\r
+    $(BASE_TOOLS_PATH)\Source\Python\Eot\Parser.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\Eot\ParserWarning.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\Eot\Report.py\r
+\r
+CMD_GENFDS=$(BASE_TOOLS_PATH)\Source\Python\GenFds\AprioriSection.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\Attribute.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\Capsule.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\CapsuleData.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\ComponentStatement.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\CompressSection.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\DataSection.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\DepexSection.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\EfiSection.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\Fd.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\FdfParser.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\Ffs.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\FfsFileStatement.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\FfsInfStatement.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\Fv.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\FvImageSection.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\GenFds.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\GenFdsGlobalVariable.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\GuidSection.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\OptionRom.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\OptRomFileStatement.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\OptRomInfStatement.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\Region.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\Rule.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\RuleComplexFile.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\RuleSimpleFile.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\Section.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\UiSection.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\VerSection.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\GenFds\Vtf.py\r
+\r
+CMD_BPDG=$(BASE_TOOLS_PATH)\Source\Python\BPDG\GenVpd.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\BPDG\StringTable.py\r
+\r
+CMD_UPT=$(BASE_TOOLS_PATH)\Source\Python\UPT\Core\DependencyRules.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Core\DistributionPackageClass.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Core\FileHook.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Core\IpiDb.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Core\PackageFile.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Dll\sqlite3.dll \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\GenMetaFile\GenDecFile.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\GenMetaFile\GenInfFile.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\GenMetaFile\GenMetaFileMisc.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\GenMetaFile\GenXmlFile.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\InstallPkg.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\InventoryWs.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\CommentGenerating.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\CommentParsing.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\DataType.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\ExpressionValidate.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\GlobalData.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\Misc.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\ParserValidate.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\Parsing.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\String.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\UniClassObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\Xml\XmlRoutines.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Logger\Log.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Logger\StringTable.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Logger\ToolError.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\MkPkg.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\DecObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfBinaryObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfBuildOptionObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfCommonObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfDefineCommonObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfDefineObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfDepexObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfGuidObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfHeaderObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfLibraryClassesObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfMisc.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfPackagesObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfPcdObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfPpiObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfProtocolObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfSoucesObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfUserExtensionObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\POM\CommonObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\POM\ModuleObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\POM\PackageObject.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\DecParser.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\DecParserMisc.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfAsBuiltProcess.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfBinarySectionParser.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfBuildOptionSectionParser.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfDefineSectionParser.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfDepexSectionParser.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfGuidPpiProtocolSectionParser.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfLibrarySectionParser.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfPackageSectionParser.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfParser.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfParserMisc.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfPcdSectionParser.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfSectionParser.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfSourceSectionParser.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\PomAdapter\DecPomAlignment.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\PomAdapter\InfPomAlignment.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\PomAdapter\InfPomAlignmentMisc.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\ReplacePkg.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\RmPkg.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\UnitTest\CommentGeneratingUnitTest.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\UnitTest\CommentParsingUnitTest.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\UnitTest\DecParserTest.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\UnitTest\DecParserUnitTest.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\UnitTest\InfBinarySectionTest.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Xml\CommonXml.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Xml\GuidProtocolPpiXml.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Xml\IniToXml.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Xml\ModuleSurfaceAreaXml.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Xml\PackageSurfaceAreaXml.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Xml\PcdXml.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Xml\XmlParser.py \\r
+    $(BASE_TOOLS_PATH)\Source\Python\UPT\Xml\XmlParserMisc.py\r
+\r
+!IFDEF PYTHON_FREEZER_PATH\r
 all: SetPythonPath $(APPLICATIONS)\r
+!ELSE\r
+all:\r
+  @echo.\r
+  @echo !!! WARNING !!! PYTHON_FREEZER_PATH is not set.\r
+  @echo Cannot make executable from Python code, executing python scripts instead !!!\r
+!ENDIF\r
 \r
 SetPythonPath:\r
   set PYTHONPATH=$(BASE_TOOLS_PATH)\Source\Python\r
 \r
-$(BIN_DIR)\build.exe: $(BASE_TOOLS_PATH)\Source\Python\build\build.py $(COMMON_PYTHON)\r
-  @pushd . & @cd build & @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) build.py & @popd\r
+$(BIN_DIR)\build.exe: $(BASE_TOOLS_PATH)\Source\Python\build\build.py $(COMMON_PYTHON) $(CMD_BUILD) $(CMD_GENFDS)\r
+  @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) build\build.py\r
 \r
-$(BIN_DIR)\GenFds.exe: $(BASE_TOOLS_PATH)\Source\Python\GenFds\GenFds.py $(COMMON_PYTHON)\r
-  @pushd . & @cd GenFds & @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) GenFds.py & @popd\r
+$(BIN_DIR)\GenFds.exe: $(BASE_TOOLS_PATH)\Source\Python\GenFds\GenFds.py $(COMMON_PYTHON) $(CMD_GENFDS)\r
+  @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) GenFds\GenFds.py\r
 \r
 $(BIN_DIR)\Trim.exe: $(BASE_TOOLS_PATH)\Source\Python\Trim\Trim.py $(COMMON_PYTHON)\r
-  @pushd . & @cd Trim & @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) Trim.py & @popd\r
-\r
-$(BIN_DIR)\MigrationMsa2Inf.exe: $(BASE_TOOLS_PATH)\Source\Python\MigrationMsa2Inf\MigrationMsa2Inf.py\r
-  @pushd . & @cd MigrationMsa2Inf & @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) MigrationMsa2Inf.py & @popd \r
-\r
-$(BIN_DIR)\Fpd2Dsc.exe: $(BASE_TOOLS_PATH)\Source\Python\Fpd2Dsc\Fpd2Dsc.py $(COMMON_PYTHON)\r
-  @pushd . & @cd Fpd2Dsc & @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) Fpd2Dsc.py & @popd\r
-\r
-$(BIN_DIR)\spd2dec.exe: $(BASE_TOOLS_PATH)\Source\Python\spd2dec\Spd2Dec.py $(COMMON_PYTHON)\r
-  @pushd . & @cd Spd2Dec & @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) Spd2Dec.py & @popd\r
+  @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) Trim\Trim.py\r
 \r
 $(BIN_DIR)\GenDepex.exe: $(BASE_TOOLS_PATH)\Source\Python\AutoGen\GenDepex.py $(COMMON_PYTHON)\r
-  @pushd . & @cd AutoGen & @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) GenDepex.py & @popd\r
+  @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) AutoGen\GenDepex.py\r
 \r
 $(BIN_DIR)\TargetTool.exe: $(BASE_TOOLS_PATH)\Source\Python\TargetTool\TargetTool.py $(COMMON_PYTHON)\r
-  @pushd . & @cd TargetTool & @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) TargetTool.py & @popd\r
+  @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) TargetTool\TargetTool.py\r
 \r
 $(BIN_DIR)\GenPatchPcdTable.exe: $(BASE_TOOLS_PATH)\Source\Python\GenPatchPcdTable\GenPatchPcdTable.py $(COMMON_PYTHON)\r
-  @pushd . & @cd GenPatchPcdTable & @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) GenPatchPcdTable.py & @popd\r
+  @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) GenPatchPcdTable\GenPatchPcdTable.py\r
 \r
 $(BIN_DIR)\PatchPcdValue.exe: $(BASE_TOOLS_PATH)\Source\Python\PatchPcdValue\PatchPcdValue.py $(COMMON_PYTHON)\r
-  @pushd . & @cd PatchPcdValue & @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) PatchPcdValue.py & @popd\r
+  @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) PatchPcdValue\PatchPcdValue.py\r
+\r
+$(BIN_DIR)\BPDG.exe: $(BASE_TOOLS_PATH)\Source\Python\BPDG\BPDG.py $(COMMON_PYTHON) $(CMD_BPDG)\r
+  @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) BPDG\BPDG.py\r
+\r
+$(BIN_DIR)\UPT.exe: $(BASE_TOOLS_PATH)\Source\Python\UPT\UPT.py $(CMD_UPT)\r
+  @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) UPT\UPT.py\r
+\r
+$(BIN_DIR)\Rsa2048Sha256Sign.exe: $(BASE_TOOLS_PATH)\Source\Python\Rsa2048Sha256Sign\Rsa2048Sha256Sign.py $(BIN_DIR)\TestSigningPrivateKey.pem\r
+  @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) Rsa2048Sha256Sign\Rsa2048Sha256Sign.py\r
+\r
+$(BIN_DIR)\TestSigningPrivateKey.pem: $(BASE_TOOLS_PATH)\Source\Python\Rsa2048Sha256Sign\TestSigningPrivateKey.pem\r
+  @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Rsa2048Sha256Sign\TestSigningPrivateKey.pem $(BIN_DIR)\TestSigningPrivateKey.pem\r
+  \r
+$(BIN_DIR)\Rsa2048Sha256GenerateKeys.exe: $(BASE_TOOLS_PATH)\Source\Python\Rsa2048Sha256Sign\Rsa2048Sha256GenerateKeys.py\r
+  @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) Rsa2048Sha256Sign\Rsa2048Sha256GenerateKeys.py\r
+\r
+$(BIN_DIR)\Ecc.exe: $(BASE_TOOLS_PATH)\Source\Python\Ecc\Ecc.py $(CMD_ECC) $(BIN_DIR)\config.ini $(BIN_DIR)\exception.xml\r
+  @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) Ecc\Ecc.py\r
+\r
+$(BIN_DIR)\config.ini: $(BASE_TOOLS_PATH)\Source\Python\Ecc\config.ini\r
+  @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Ecc\config.ini $(BIN_DIR)\config.ini\r
+\r
+$(BIN_DIR)\exception.xml: $(BASE_TOOLS_PATH)\Source\Python\Ecc\exception.xml\r
+  @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Ecc\exception.xml $(BIN_DIR)\exception.xml\r
+\r
+$(BIN_DIR)\Pkcs7Sign.exe: $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\Pkcs7Sign.py $(BIN_DIR)\TestCert.pem $(BIN_DIR)\TestCert.pub.pem $(BIN_DIR)\TestRoot.pem $(BIN_DIR)\TestRoot.pub.pem $(BIN_DIR)\TestSub.pem $(BIN_DIR)\TestSub.pub.pem\r
+  @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) Pkcs7Sign\Pkcs7Sign.py\r
+\r
+$(BIN_DIR)\TestCert.pem: $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestCert.pem\r
+  @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestCert.pem $(BIN_DIR)\TestCert.pem\r
+\r
+$(BIN_DIR)\TestCert.pub.pem: $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestCert.pub.pem\r
+  @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestCert.pub.pem $(BIN_DIR)\TestCert.pub.pem\r
+\r
+$(BIN_DIR)\TestSub.pem: $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestSub.pem\r
+  @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestSub.pem $(BIN_DIR)\TestSub.pem\r
+\r
+$(BIN_DIR)\TestSub.pub.pem: $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestSub.pub.pem\r
+  @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestSub.pub.pem $(BIN_DIR)\TestSub.pub.pem\r
+\r
+$(BIN_DIR)\TestRoot.pem: $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestRoot.pem\r
+  @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestRoot.pem $(BIN_DIR)\TestRoot.pem\r
+\r
+$(BIN_DIR)\TestRoot.pub.pem: $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestRoot.pub.pem\r
+  @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestRoot.pub.pem $(BIN_DIR)\TestRoot.pub.pem\r
 \r
 clean:\r
 cleanall:  \r
   @del /f /q $(BIN_DIR)\*.pyd $(BIN_DIR)\*.dll\r
+  @del /f /q $(BASE_TOOLS_PATH)\Source\Python\*.pyc\r
   @for %%i in ($(APPLICATIONS)) do @del /f /q %%i\r
 \r