## @file\r
# Windows makefile for Python tools build.\r
#\r
-# Copyright (c) 2010 - 2015, 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
+!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
-# Using cx_Freeze 3.0.3 with Python 2.5.4\r
-FREEZE=$(PYTHON_FREEZER_PATH)\FreezePython.exe\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,encodings.ascii\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)\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)\Ecc.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\UPT\Xml\XmlParser.py \\r
$(BASE_TOOLS_PATH)\Source\Python\UPT\Xml\XmlParserMisc.py\r
\r
+CMD_ECC=$(BASE_TOOLS_PATH)\Source\Python\Ecc\c.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\Check.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\CLexer.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\CodeFragment.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\CodeFragmentCollector.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\Configuration.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\CParser.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\Database.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\Ecc.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\EccGlobalData.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\EccToolError.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\Exception.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\FileProfile.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\MetaDataParser.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\ParserWarning.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\MetaFileWorkspace\MetaDataTable.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\MetaFileWorkspace\MetaFileParser.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\MetaFileWorkspace\MetaFileTable.py \\r
+ $(BASE_TOOLS_PATH)\Source\Python\Ecc\Xml\XmlRoutines.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)\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
+\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