Home | History | Annotate | Download | only in Python
      1 ## @file

      2 # Windows makefile for Python tools build.

      3 #

      4 # Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.<BR>

      5 # This program and the accompanying materials

      6 # are licensed and made available under the terms and conditions of the BSD License

      7 # which accompanies this distribution.  The full text of the license may be found at

      8 # http://opensource.org/licenses/bsd-license.php

      9 #

     10 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,

     11 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

     12 #

     13 
     14 !IFNDEF PYTHON_HOME
     15 !ERROR PYTHON_HOME must be defined!
     16 !ENDIF
     17 
     18 !IFDEF PYTHON_FREEZER_PATH
     19 !IF EXIST ($(PYTHON_FREEZER_PATH)\cxfreeze)
     20 # Using cx_Freeze 4.2.3 with Python 2.7.2

     21 FREEZE=$(PYTHON_HOME)\python $(PYTHON_FREEZER_PATH)\cxfreeze
     22 !ELSE
     23 !ERROR PYTHON_FREEZER_PATH does not exist!
     24 !ENDIF
     25 !ENDIF
     26 
     27 MODULES=encodings.cp437,encodings.gbk,encodings.utf_16,encodings.utf_8,encodings.utf_16_le,encodings.latin_1,encodings.ascii
     28 
     29 # DOS del command doesn't support ":\\" in the file path, such as j:\\BaseTools. Convert ":\\" to ":\"

     30 BASE_TOOLS_PATH = $(BASE_TOOLS_PATH::\\=:\)
     31 EDK_TOOLS_PATH  = $(EDK_TOOLS_PATH::\\=:\)
     32 
     33 BIN_DIR=$(EDK_TOOLS_PATH)\Bin\Win32
     34 
     35 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
     36 
     37 COMMON_PYTHON=$(BASE_TOOLS_PATH)\Source\Python\Common\BuildToolError.py \
     38               $(BASE_TOOLS_PATH)\Source\Python\Common\Database.py \
     39               $(BASE_TOOLS_PATH)\Source\Python\Common\DataType.py \
     40               $(BASE_TOOLS_PATH)\Source\Python\Common\DecClassObject.py \
     41               $(BASE_TOOLS_PATH)\Source\Python\Common\Dictionary.py \
     42               $(BASE_TOOLS_PATH)\Source\Python\Common\DscClassObject.py \
     43               $(BASE_TOOLS_PATH)\Source\Python\Common\EdkIIWorkspace.py \
     44               $(BASE_TOOLS_PATH)\Source\Python\Common\EdkIIWorkspaceBuild.py \
     45               $(BASE_TOOLS_PATH)\Source\Python\Common\EdkLogger.py \
     46               $(BASE_TOOLS_PATH)\Source\Python\Common\Expression.py \
     47               $(BASE_TOOLS_PATH)\Source\Python\Common\FdfClassObject.py \
     48               $(BASE_TOOLS_PATH)\Source\Python\Common\FdfParserLite.py \
     49               $(BASE_TOOLS_PATH)\Source\Python\Common\GlobalData.py \
     50               $(BASE_TOOLS_PATH)\Source\Python\Common\Identification.py \
     51               $(BASE_TOOLS_PATH)\Source\Python\Common\InfClassObject.py \
     52               $(BASE_TOOLS_PATH)\Source\Python\Common\LongFilePathOs.py \
     53               $(BASE_TOOLS_PATH)\Source\Python\Common\LongFilePathOsPath.py \
     54               $(BASE_TOOLS_PATH)\Source\Python\Common\LongFilePathSupport.py \
     55               $(BASE_TOOLS_PATH)\Source\Python\Common\MigrationUtilities.py \
     56               $(BASE_TOOLS_PATH)\Source\Python\Common\Misc.py \
     57               $(BASE_TOOLS_PATH)\Source\Python\Common\Parsing.py \
     58               $(BASE_TOOLS_PATH)\Source\Python\Common\String.py \
     59               $(BASE_TOOLS_PATH)\Source\Python\Common\TargetTxtClassObject.py \
     60               $(BASE_TOOLS_PATH)\Source\Python\Common\ToolDefClassObject.py \
     61               $(BASE_TOOLS_PATH)\Source\Python\Common\VpdInfoFile.py \
     62               $(BASE_TOOLS_PATH)\Source\Python\Common\BuildVersion.py \
     63               $(BASE_TOOLS_PATH)\Source\Python\Common\MultipleWorkspace.py \
     64               $(BASE_TOOLS_PATH)\Source\Python\CommonDataClass\CommonClass.py \
     65               $(BASE_TOOLS_PATH)\Source\Python\CommonDataClass\DataClass.py \
     66               $(BASE_TOOLS_PATH)\Source\Python\CommonDataClass\Exceptions.py \
     67               $(BASE_TOOLS_PATH)\Source\Python\CommonDataClass\FdfClass.py \
     68               $(BASE_TOOLS_PATH)\Source\Python\CommonDataClass\ModuleClass.py \
     69               $(BASE_TOOLS_PATH)\Source\Python\CommonDataClass\PackageClass.py \
     70               $(BASE_TOOLS_PATH)\Source\Python\CommonDataClass\PlatformClass.py \
     71               $(BASE_TOOLS_PATH)\Source\Python\Table\Table.py \
     72               $(BASE_TOOLS_PATH)\Source\Python\Table\TableDataModel.py \
     73               $(BASE_TOOLS_PATH)\Source\Python\Table\TableDec.py \
     74               $(BASE_TOOLS_PATH)\Source\Python\Table\TableDsc.py \
     75               $(BASE_TOOLS_PATH)\Source\Python\Table\TableEotReport.py \
     76               $(BASE_TOOLS_PATH)\Source\Python\Table\TableFdf.py \
     77               $(BASE_TOOLS_PATH)\Source\Python\Table\TableFile.py \
     78               $(BASE_TOOLS_PATH)\Source\Python\Table\TableFunction.py \
     79               $(BASE_TOOLS_PATH)\Source\Python\Table\TableIdentifier.py \
     80               $(BASE_TOOLS_PATH)\Source\Python\Table\TableInf.py \
     81               $(BASE_TOOLS_PATH)\Source\Python\Table\TablePcd.py \
     82               $(BASE_TOOLS_PATH)\Source\Python\Table\TableQuery.py \
     83               $(BASE_TOOLS_PATH)\Source\Python\Table\TableReport.py \
     84               $(BASE_TOOLS_PATH)\Source\Python\Workspace\BuildClassObject.py \
     85               $(BASE_TOOLS_PATH)\Source\Python\Workspace\MetaDataTable.py \
     86               $(BASE_TOOLS_PATH)\Source\Python\Workspace\MetaFileCommentParser.py \
     87               $(BASE_TOOLS_PATH)\Source\Python\Workspace\MetaFileParser.py \
     88               $(BASE_TOOLS_PATH)\Source\Python\Workspace\MetaFileTable.py \
     89               $(BASE_TOOLS_PATH)\Source\Python\Workspace\WorkspaceCommon.py \
     90               $(BASE_TOOLS_PATH)\Source\Python\Workspace\WorkspaceDatabase.py \
     91               $(BASE_TOOLS_PATH)\Source\Python\AutoGen\AutoGen.py \
     92               $(BASE_TOOLS_PATH)\Source\Python\AutoGen\BuildEngine.py \
     93               $(BASE_TOOLS_PATH)\Source\Python\AutoGen\GenC.py \
     94               $(BASE_TOOLS_PATH)\Source\Python\AutoGen\GenDepex.py \
     95               $(BASE_TOOLS_PATH)\Source\Python\AutoGen\GenMake.py \
     96               $(BASE_TOOLS_PATH)\Source\Python\AutoGen\GenPcdDb.py \
     97               $(BASE_TOOLS_PATH)\Source\Python\AutoGen\InfSectionParser.py \
     98               $(BASE_TOOLS_PATH)\Source\Python\AutoGen\StrGather.py \
     99               $(BASE_TOOLS_PATH)\Source\Python\AutoGen\UniClassObject.py \
    100               $(BASE_TOOLS_PATH)\Source\Python\AutoGen\ValidCheckingInfoObject.py \
    101               $(BASE_TOOLS_PATH)\Source\Python\Common\RangeExpression.py \
    102               $(BASE_TOOLS_PATH)\Source\Python\Common\VariableAttributes.py
    103 
    104 CMD_BUILD=$(BASE_TOOLS_PATH)\Source\Python\build\BuildReport.py \
    105     $(BASE_TOOLS_PATH)\Source\Python\GenPatchPcdTable\GenPatchPcdTable.py \
    106     $(BASE_TOOLS_PATH)\Source\Python\PatchPcdValue\PatchPcdValue.py \
    107     $(BASE_TOOLS_PATH)\Source\Python\Eot\c.py \
    108     $(BASE_TOOLS_PATH)\Source\Python\Eot\CLexer.py \
    109     $(BASE_TOOLS_PATH)\Source\Python\Eot\CodeFragment.py \
    110     $(BASE_TOOLS_PATH)\Source\Python\Eot\CodeFragmentCollector.py \
    111     $(BASE_TOOLS_PATH)\Source\Python\Eot\CParser.py \
    112     $(BASE_TOOLS_PATH)\Source\Python\Eot\Database.py \
    113     $(BASE_TOOLS_PATH)\Source\Python\Eot\EfiCompressor.pyd \
    114     $(BASE_TOOLS_PATH)\Source\Python\Eot\Eot.py \
    115     $(BASE_TOOLS_PATH)\Source\Python\Eot\EotGlobalData.py \
    116     $(BASE_TOOLS_PATH)\Source\Python\Eot\EotToolError.py \
    117     $(BASE_TOOLS_PATH)\Source\Python\Eot\FileProfile.py \
    118     $(BASE_TOOLS_PATH)\Source\Python\Eot\FvImage.py \
    119     $(BASE_TOOLS_PATH)\Source\Python\Eot\InfParserLite.py \
    120     $(BASE_TOOLS_PATH)\Source\Python\Eot\LzmaCompressor.pyd \
    121     $(BASE_TOOLS_PATH)\Source\Python\Eot\Parser.py \
    122     $(BASE_TOOLS_PATH)\Source\Python\Eot\ParserWarning.py \
    123     $(BASE_TOOLS_PATH)\Source\Python\Eot\Report.py
    124 
    125 CMD_GENFDS=$(BASE_TOOLS_PATH)\Source\Python\GenFds\AprioriSection.py \
    126     $(BASE_TOOLS_PATH)\Source\Python\GenFds\Attribute.py \
    127     $(BASE_TOOLS_PATH)\Source\Python\GenFds\Capsule.py \
    128     $(BASE_TOOLS_PATH)\Source\Python\GenFds\CapsuleData.py \
    129     $(BASE_TOOLS_PATH)\Source\Python\GenFds\ComponentStatement.py \
    130     $(BASE_TOOLS_PATH)\Source\Python\GenFds\CompressSection.py \
    131     $(BASE_TOOLS_PATH)\Source\Python\GenFds\DataSection.py \
    132     $(BASE_TOOLS_PATH)\Source\Python\GenFds\DepexSection.py \
    133     $(BASE_TOOLS_PATH)\Source\Python\GenFds\EfiSection.py \
    134     $(BASE_TOOLS_PATH)\Source\Python\GenFds\Fd.py \
    135     $(BASE_TOOLS_PATH)\Source\Python\GenFds\FdfParser.py \
    136     $(BASE_TOOLS_PATH)\Source\Python\GenFds\Ffs.py \
    137     $(BASE_TOOLS_PATH)\Source\Python\GenFds\FfsFileStatement.py \
    138     $(BASE_TOOLS_PATH)\Source\Python\GenFds\FfsInfStatement.py \
    139     $(BASE_TOOLS_PATH)\Source\Python\GenFds\Fv.py \
    140     $(BASE_TOOLS_PATH)\Source\Python\GenFds\FvImageSection.py \
    141     $(BASE_TOOLS_PATH)\Source\Python\GenFds\GenFds.py \
    142     $(BASE_TOOLS_PATH)\Source\Python\GenFds\GenFdsGlobalVariable.py \
    143     $(BASE_TOOLS_PATH)\Source\Python\GenFds\GuidSection.py \
    144     $(BASE_TOOLS_PATH)\Source\Python\GenFds\OptionRom.py \
    145     $(BASE_TOOLS_PATH)\Source\Python\GenFds\OptRomFileStatement.py \
    146     $(BASE_TOOLS_PATH)\Source\Python\GenFds\OptRomInfStatement.py \
    147     $(BASE_TOOLS_PATH)\Source\Python\GenFds\Region.py \
    148     $(BASE_TOOLS_PATH)\Source\Python\GenFds\Rule.py \
    149     $(BASE_TOOLS_PATH)\Source\Python\GenFds\RuleComplexFile.py \
    150     $(BASE_TOOLS_PATH)\Source\Python\GenFds\RuleSimpleFile.py \
    151     $(BASE_TOOLS_PATH)\Source\Python\GenFds\Section.py \
    152     $(BASE_TOOLS_PATH)\Source\Python\GenFds\UiSection.py \
    153     $(BASE_TOOLS_PATH)\Source\Python\GenFds\VerSection.py \
    154     $(BASE_TOOLS_PATH)\Source\Python\GenFds\Vtf.py
    155 
    156 CMD_BPDG=$(BASE_TOOLS_PATH)\Source\Python\BPDG\GenVpd.py \
    157     $(BASE_TOOLS_PATH)\Source\Python\BPDG\StringTable.py
    158 
    159 CMD_UPT=$(BASE_TOOLS_PATH)\Source\Python\UPT\Core\DependencyRules.py \
    160     $(BASE_TOOLS_PATH)\Source\Python\UPT\Core\DistributionPackageClass.py \
    161     $(BASE_TOOLS_PATH)\Source\Python\UPT\Core\FileHook.py \
    162     $(BASE_TOOLS_PATH)\Source\Python\UPT\Core\IpiDb.py \
    163     $(BASE_TOOLS_PATH)\Source\Python\UPT\Core\PackageFile.py \
    164     $(BASE_TOOLS_PATH)\Source\Python\UPT\Dll\sqlite3.dll \
    165     $(BASE_TOOLS_PATH)\Source\Python\UPT\GenMetaFile\GenDecFile.py \
    166     $(BASE_TOOLS_PATH)\Source\Python\UPT\GenMetaFile\GenInfFile.py \
    167     $(BASE_TOOLS_PATH)\Source\Python\UPT\GenMetaFile\GenMetaFileMisc.py \
    168     $(BASE_TOOLS_PATH)\Source\Python\UPT\GenMetaFile\GenXmlFile.py \
    169     $(BASE_TOOLS_PATH)\Source\Python\UPT\InstallPkg.py \
    170     $(BASE_TOOLS_PATH)\Source\Python\UPT\InventoryWs.py \
    171     $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\CommentGenerating.py \
    172     $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\CommentParsing.py \
    173     $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\DataType.py \
    174     $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\ExpressionValidate.py \
    175     $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\GlobalData.py \
    176     $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\Misc.py \
    177     $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\ParserValidate.py \
    178     $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\Parsing.py \
    179     $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\String.py \
    180     $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\UniClassObject.py \
    181     $(BASE_TOOLS_PATH)\Source\Python\UPT\Library\Xml\XmlRoutines.py \
    182     $(BASE_TOOLS_PATH)\Source\Python\UPT\Logger\Log.py \
    183     $(BASE_TOOLS_PATH)\Source\Python\UPT\Logger\StringTable.py \
    184     $(BASE_TOOLS_PATH)\Source\Python\UPT\Logger\ToolError.py \
    185     $(BASE_TOOLS_PATH)\Source\Python\UPT\MkPkg.py \
    186     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\DecObject.py \
    187     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfBinaryObject.py \
    188     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfBuildOptionObject.py \
    189     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfCommonObject.py \
    190     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfDefineCommonObject.py \
    191     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfDefineObject.py \
    192     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfDepexObject.py \
    193     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfGuidObject.py \
    194     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfHeaderObject.py \
    195     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfLibraryClassesObject.py \
    196     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfMisc.py \
    197     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfPackagesObject.py \
    198     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfPcdObject.py \
    199     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfPpiObject.py \
    200     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfProtocolObject.py \
    201     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfSoucesObject.py \
    202     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\Parser\InfUserExtensionObject.py \
    203     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\POM\CommonObject.py \
    204     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\POM\ModuleObject.py \
    205     $(BASE_TOOLS_PATH)\Source\Python\UPT\Object\POM\PackageObject.py \
    206     $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\DecParser.py \
    207     $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\DecParserMisc.py \
    208     $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfAsBuiltProcess.py \
    209     $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfBinarySectionParser.py \
    210     $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfBuildOptionSectionParser.py \
    211     $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfDefineSectionParser.py \
    212     $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfDepexSectionParser.py \
    213     $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfGuidPpiProtocolSectionParser.py \
    214     $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfLibrarySectionParser.py \
    215     $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfPackageSectionParser.py \
    216     $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfParser.py \
    217     $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfParserMisc.py \
    218     $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfPcdSectionParser.py \
    219     $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfSectionParser.py \
    220     $(BASE_TOOLS_PATH)\Source\Python\UPT\Parser\InfSourceSectionParser.py \
    221     $(BASE_TOOLS_PATH)\Source\Python\UPT\PomAdapter\DecPomAlignment.py \
    222     $(BASE_TOOLS_PATH)\Source\Python\UPT\PomAdapter\InfPomAlignment.py \
    223     $(BASE_TOOLS_PATH)\Source\Python\UPT\PomAdapter\InfPomAlignmentMisc.py \
    224     $(BASE_TOOLS_PATH)\Source\Python\UPT\ReplacePkg.py \
    225     $(BASE_TOOLS_PATH)\Source\Python\UPT\RmPkg.py \
    226     $(BASE_TOOLS_PATH)\Source\Python\UPT\UnitTest\CommentGeneratingUnitTest.py \
    227     $(BASE_TOOLS_PATH)\Source\Python\UPT\UnitTest\CommentParsingUnitTest.py \
    228     $(BASE_TOOLS_PATH)\Source\Python\UPT\UnitTest\DecParserTest.py \
    229     $(BASE_TOOLS_PATH)\Source\Python\UPT\UnitTest\DecParserUnitTest.py \
    230     $(BASE_TOOLS_PATH)\Source\Python\UPT\UnitTest\InfBinarySectionTest.py \
    231     $(BASE_TOOLS_PATH)\Source\Python\UPT\Xml\CommonXml.py \
    232     $(BASE_TOOLS_PATH)\Source\Python\UPT\Xml\GuidProtocolPpiXml.py \
    233     $(BASE_TOOLS_PATH)\Source\Python\UPT\Xml\IniToXml.py \
    234     $(BASE_TOOLS_PATH)\Source\Python\UPT\Xml\ModuleSurfaceAreaXml.py \
    235     $(BASE_TOOLS_PATH)\Source\Python\UPT\Xml\PackageSurfaceAreaXml.py \
    236     $(BASE_TOOLS_PATH)\Source\Python\UPT\Xml\PcdXml.py \
    237     $(BASE_TOOLS_PATH)\Source\Python\UPT\Xml\XmlParser.py \
    238     $(BASE_TOOLS_PATH)\Source\Python\UPT\Xml\XmlParserMisc.py
    239 
    240 CMD_ECC=$(BASE_TOOLS_PATH)\Source\Python\Ecc\c.py \
    241     $(BASE_TOOLS_PATH)\Source\Python\Ecc\Check.py \
    242     $(BASE_TOOLS_PATH)\Source\Python\Ecc\CLexer.py \
    243     $(BASE_TOOLS_PATH)\Source\Python\Ecc\CodeFragment.py \
    244     $(BASE_TOOLS_PATH)\Source\Python\Ecc\CodeFragmentCollector.py \
    245     $(BASE_TOOLS_PATH)\Source\Python\Ecc\Configuration.py \
    246     $(BASE_TOOLS_PATH)\Source\Python\Ecc\CParser.py \
    247     $(BASE_TOOLS_PATH)\Source\Python\Ecc\Database.py \
    248     $(BASE_TOOLS_PATH)\Source\Python\Ecc\Ecc.py \
    249     $(BASE_TOOLS_PATH)\Source\Python\Ecc\EccGlobalData.py \
    250     $(BASE_TOOLS_PATH)\Source\Python\Ecc\EccToolError.py \
    251     $(BASE_TOOLS_PATH)\Source\Python\Ecc\Exception.py \
    252     $(BASE_TOOLS_PATH)\Source\Python\Ecc\FileProfile.py \
    253     $(BASE_TOOLS_PATH)\Source\Python\Ecc\MetaDataParser.py \
    254     $(BASE_TOOLS_PATH)\Source\Python\Ecc\ParserWarning.py \
    255     $(BASE_TOOLS_PATH)\Source\Python\Ecc\MetaFileWorkspace\MetaDataTable.py \
    256     $(BASE_TOOLS_PATH)\Source\Python\Ecc\MetaFileWorkspace\MetaFileParser.py \
    257     $(BASE_TOOLS_PATH)\Source\Python\Ecc\MetaFileWorkspace\MetaFileTable.py \
    258     $(BASE_TOOLS_PATH)\Source\Python\Ecc\Xml\XmlRoutines.py
    259 
    260 !IFDEF PYTHON_FREEZER_PATH
    261 all: SetPythonPath $(APPLICATIONS)
    262 !ELSE
    263 all:
    264   @echo.
    265   @echo !!! WARNING !!! PYTHON_FREEZER_PATH is not set.
    266   @echo Cannot make executable from Python code, executing python scripts instead !!!
    267 !ENDIF
    268 
    269 SetPythonPath:
    270   set PYTHONPATH=$(BASE_TOOLS_PATH)\Source\Python
    271 
    272 $(BIN_DIR)\build.exe: $(BASE_TOOLS_PATH)\Source\Python\build\build.py $(COMMON_PYTHON) $(CMD_BUILD) $(CMD_GENFDS)
    273   @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) build\build.py
    274 
    275 $(BIN_DIR)\GenFds.exe: $(BASE_TOOLS_PATH)\Source\Python\GenFds\GenFds.py $(COMMON_PYTHON) $(CMD_GENFDS)
    276   @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) GenFds\GenFds.py
    277 
    278 $(BIN_DIR)\Trim.exe: $(BASE_TOOLS_PATH)\Source\Python\Trim\Trim.py $(COMMON_PYTHON)
    279   @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) Trim\Trim.py
    280 
    281 $(BIN_DIR)\GenDepex.exe: $(BASE_TOOLS_PATH)\Source\Python\AutoGen\GenDepex.py $(COMMON_PYTHON)
    282   @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) AutoGen\GenDepex.py
    283 
    284 $(BIN_DIR)\TargetTool.exe: $(BASE_TOOLS_PATH)\Source\Python\TargetTool\TargetTool.py $(COMMON_PYTHON)
    285   @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) TargetTool\TargetTool.py
    286 
    287 $(BIN_DIR)\GenPatchPcdTable.exe: $(BASE_TOOLS_PATH)\Source\Python\GenPatchPcdTable\GenPatchPcdTable.py $(COMMON_PYTHON)
    288   @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) GenPatchPcdTable\GenPatchPcdTable.py
    289 
    290 $(BIN_DIR)\PatchPcdValue.exe: $(BASE_TOOLS_PATH)\Source\Python\PatchPcdValue\PatchPcdValue.py $(COMMON_PYTHON)
    291   @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) PatchPcdValue\PatchPcdValue.py
    292 
    293 $(BIN_DIR)\BPDG.exe: $(BASE_TOOLS_PATH)\Source\Python\BPDG\BPDG.py $(COMMON_PYTHON) $(CMD_BPDG)
    294   @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) BPDG\BPDG.py
    295 
    296 $(BIN_DIR)\UPT.exe: $(BASE_TOOLS_PATH)\Source\Python\UPT\UPT.py $(CMD_UPT)
    297   @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) UPT\UPT.py
    298 
    299 $(BIN_DIR)\Rsa2048Sha256Sign.exe: $(BASE_TOOLS_PATH)\Source\Python\Rsa2048Sha256Sign\Rsa2048Sha256Sign.py $(BIN_DIR)\TestSigningPrivateKey.pem
    300   @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) Rsa2048Sha256Sign\Rsa2048Sha256Sign.py
    301 
    302 $(BIN_DIR)\TestSigningPrivateKey.pem: $(BASE_TOOLS_PATH)\Source\Python\Rsa2048Sha256Sign\TestSigningPrivateKey.pem
    303   @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Rsa2048Sha256Sign\TestSigningPrivateKey.pem $(BIN_DIR)\TestSigningPrivateKey.pem
    304   
    305 $(BIN_DIR)\Rsa2048Sha256GenerateKeys.exe: $(BASE_TOOLS_PATH)\Source\Python\Rsa2048Sha256Sign\Rsa2048Sha256GenerateKeys.py
    306   @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) Rsa2048Sha256Sign\Rsa2048Sha256GenerateKeys.py
    307 
    308 $(BIN_DIR)\Ecc.exe: $(BASE_TOOLS_PATH)\Source\Python\Ecc\Ecc.py $(CMD_ECC) $(BIN_DIR)\config.ini $(BIN_DIR)\exception.xml
    309   @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) Ecc\Ecc.py
    310 
    311 $(BIN_DIR)\config.ini: $(BASE_TOOLS_PATH)\Source\Python\Ecc\config.ini
    312   @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Ecc\config.ini $(BIN_DIR)\config.ini
    313 
    314 $(BIN_DIR)\exception.xml: $(BASE_TOOLS_PATH)\Source\Python\Ecc\exception.xml
    315   @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Ecc\exception.xml $(BIN_DIR)\exception.xml
    316 
    317 $(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
    318   @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) Pkcs7Sign\Pkcs7Sign.py
    319 
    320 $(BIN_DIR)\TestCert.pem: $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestCert.pem
    321   @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestCert.pem $(BIN_DIR)\TestCert.pem
    322 
    323 $(BIN_DIR)\TestCert.pub.pem: $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestCert.pub.pem
    324   @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestCert.pub.pem $(BIN_DIR)\TestCert.pub.pem
    325 
    326 $(BIN_DIR)\TestSub.pem: $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestSub.pem
    327   @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestSub.pem $(BIN_DIR)\TestSub.pem
    328 
    329 $(BIN_DIR)\TestSub.pub.pem: $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestSub.pub.pem
    330   @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestSub.pub.pem $(BIN_DIR)\TestSub.pub.pem
    331 
    332 $(BIN_DIR)\TestRoot.pem: $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestRoot.pem
    333   @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestRoot.pem $(BIN_DIR)\TestRoot.pem
    334 
    335 $(BIN_DIR)\TestRoot.pub.pem: $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestRoot.pub.pem
    336   @copy /Y /B $(BASE_TOOLS_PATH)\Source\Python\Pkcs7Sign\TestRoot.pub.pem $(BIN_DIR)\TestRoot.pub.pem
    337 
    338 clean:
    339 cleanall:  
    340   @del /f /q $(BIN_DIR)\*.pyd $(BIN_DIR)\*.dll
    341   @del /f /q $(BASE_TOOLS_PATH)\Source\Python\*.pyc
    342   @for %%i in ($(APPLICATIONS)) do @del /f /q %%i
    343 
    344