From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: zhijux.fan@intel.com) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by groups.io with SMTP; Wed, 10 Apr 2019 01:51:28 -0700 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Apr 2019 01:51:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,332,1549958400"; d="dat'59?scan'59,208,59";a="160348888" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga004.fm.intel.com with ESMTP; 10 Apr 2019 01:51:28 -0700 Received: from fmsmsx120.amr.corp.intel.com (10.18.124.208) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 10 Apr 2019 01:51:27 -0700 Received: from shsmsx105.ccr.corp.intel.com (10.239.4.158) by fmsmsx120.amr.corp.intel.com (10.18.124.208) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 10 Apr 2019 01:51:27 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.164]) by SHSMSX105.ccr.corp.intel.com ([169.254.11.25]) with mapi id 14.03.0415.000; Wed, 10 Apr 2019 16:50:59 +0800 From: "Fan, ZhijuX" To: "devel@edk2.groups.io" CC: "Gao, Liming" , "Feng, Bob C" Subject: [edk2][PATCH V2] BaseTools:Enable the /MP option of MSVC compiler Thread-Topic: [edk2][PATCH V2] BaseTools:Enable the /MP option of MSVC compiler Thread-Index: AdTvenjqziXLQ0SNTOWl43634l5Haw== Date: Wed, 10 Apr 2019 08:50:58 +0000 Message-ID: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: zhijux.fan@intel.com X-Groupsio-MsgNum: 38793 Content-Type: multipart/mixed; boundary="_000_FAD0D7E0AE0FA54D987F6E72435CAFD50AF49C78SHSMSX101ccrcor_" Content-Language: en-US --_000_FAD0D7E0AE0FA54D987F6E72435CAFD50AF49C78SHSMSX101ccrcor_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable BZ:https://bugzilla.tianocore.org/show_bug.cgi?id=3D1672 The /MP option of MSVC compiler can reduce the total time to compile the source files on the command line. This patch is going to enable this MSVC option in BaseTools. Cc: Bob Feng Cc: Liming Gao Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Zhiju.Fan --- BaseTools/Conf/tools_def.template | 126 ++++++++++++++-----------= ---- BaseTools/Source/Python/AutoGen/GenMake.py | 81 +++++++++++++++++-- 2 files changed, 137 insertions(+), 70 deletions(-) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.t= emplate index abda2164a6..bffb6d63eb 100755 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -674,9 +674,9 @@ NOOPT_VS2008_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAUL= TLIB /IGNORE:4001 /OPT:REF *_VS2008_X64_ASLPP_PATH =3D DEF(VS2008_BINX64)\cl.exe *_VS2008_X64_ASLDLINK_PATH =3D DEF(VS2008_BINX64)\link.exe =20 - DEBUG_VS2008_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm -RELEASE_VS2008_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF -NOOPT_VS2008_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od + DEBUG_VS2008_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /MP +RELEASE_VS2008_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /MP +NOOPT_VS2008_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od /MP =20 DEBUG_VS2008_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2008_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd @@ -876,9 +876,9 @@ NOOPT_VS2008xASL_X64_DLINK_FLAGS =3D /NOLOGO /NODEFA= ULTLIB /IGNORE:4001 /OPT:RE *_VS2008x86_IA32_ASM_PATH =3D DEF(VS2008x86_BIN)\ml.exe =20 *_VS2008x86_IA32_MAKE_FLAGS =3D /nologo - DEBUG_VS2008x86_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm -RELEASE_VS2008x86_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF -NOOPT_VS2008x86_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od + DEBUG_VS2008x86_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /MP +RELEASE_VS2008x86_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /MP +NOOPT_VS2008x86_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od /MP =20 DEBUG_VS2008x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd /Z= i RELEASE_VS2008x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd @@ -908,9 +908,9 @@ NOOPT_VS2008x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAU= LTLIB /IGNORE:4001 /OPT:REF *_VS2008x86_X64_DLINK_PATH =3D DEF(VS2008x86_BINX64)\link.exe *_VS2008x86_X64_ASLDLINK_PATH =3D DEF(VS2008x86_BINX64)\link.exe =20 - DEBUG_VS2008x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm -RELEASE_VS2008x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF -NOOPT_VS2008x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od + DEBUG_VS2008x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /MP +RELEASE_VS2008x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /MP +NOOPT_VS2008x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od /MP =20 DEBUG_VS2008x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2008x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd @@ -1109,9 +1109,9 @@ NOOPT_VS2008x86xASL_X64_DLINK_FLAGS =3D /NOLOGO /N= ODEFAULTLIB /IGNORE:4001 /OPT *_VS2010_IA32_ASLDLINK_PATH =3D DEF(VS2010_BIN)\link.exe =20 *_VS2010_IA32_MAKE_FLAGS =3D /nologo - DEBUG_VS2010_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D = UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm -RELEASE_VS2010_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D = UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF -NOOPT_VS2010_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D = UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od + DEBUG_VS2010_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D = UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /MP +RELEASE_VS2010_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D = UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /MP +NOOPT_VS2010_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D = UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od /MP =20 DEBUG_VS2010_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd /Zi RELEASE_VS2010_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd @@ -1141,9 +1141,9 @@ NOOPT_VS2010_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFA= ULTLIB /IGNORE:4001 /OPT:REF *_VS2010_X64_ASLPP_PATH =3D DEF(VS2010_BINX64)\cl.exe *_VS2010_X64_ASLDLINK_PATH =3D DEF(VS2010_BINX64)\link.exe =20 - DEBUG_VS2010_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm -RELEASE_VS2010_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF -NOOPT_VS2010_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od + DEBUG_VS2010_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /MP +RELEASE_VS2010_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /MP +NOOPT_VS2010_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od /MP =20 DEBUG_VS2010_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2010_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd @@ -1343,9 +1343,9 @@ NOOPT_VS2010xASL_X64_DLINK_FLAGS =3D /NOLOGO /NODE= FAULTLIB /IGNORE:4001 /OPT:RE *_VS2010x86_IA32_ASM_PATH =3D DEF(VS2010x86_BIN)\ml.exe =20 *_VS2010x86_IA32_MAKE_FLAGS =3D /nologo - DEBUG_VS2010x86_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm -RELEASE_VS2010x86_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF -NOOPT_VS2010x86_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od + DEBUG_VS2010x86_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /MP +RELEASE_VS2010x86_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /MP +NOOPT_VS2010x86_IA32_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od /MP =20 DEBUG_VS2010x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd /Z= i RELEASE_VS2010x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd @@ -1375,9 +1375,9 @@ NOOPT_VS2010x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEF= AULTLIB /IGNORE:4001 /OPT:REF *_VS2010x86_X64_DLINK_PATH =3D DEF(VS2010x86_BINX64)\link.exe *_VS2010x86_X64_ASLDLINK_PATH =3D DEF(VS2010x86_BINX64)\link.exe =20 - DEBUG_VS2010x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm -RELEASE_VS2010x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF -NOOPT_VS2010x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od + DEBUG_VS2010x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /MP +RELEASE_VS2010x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /MP +NOOPT_VS2010x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od /MP =20 DEBUG_VS2010x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2010x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd @@ -1576,9 +1576,9 @@ NOOPT_VS2010x86xASL_X64_DLINK_FLAGS =3D /NOLOGO /N= ODEFAULTLIB /IGNORE:4001 /OPT *_VS2012_IA32_ASLDLINK_PATH =3D DEF(VS2012_BIN)\link.exe =20 *_VS2012_IA32_MAKE_FLAGS =3D /nologo - DEBUG_VS2012_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm -RELEASE_VS2012_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF -NOOPT_VS2012_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od + DEBUG_VS2012_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /MP +RELEASE_VS2012_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /MP +NOOPT_VS2012_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od /MP =20 DEBUG_VS2012_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd /Zi RELEASE_VS2012_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd @@ -1608,9 +1608,9 @@ NOOPT_VS2012_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFA= ULTLIB /IGNORE:4001 /OPT:REF *_VS2012_X64_ASLPP_PATH =3D DEF(VS2012_BINX64)\cl.exe *_VS2012_X64_ASLDLINK_PATH =3D DEF(VS2012_BINX64)\link.exe =20 - DEBUG_VS2012_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm -RELEASE_VS2012_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF -NOOPT_VS2012_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od + DEBUG_VS2012_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /MP +RELEASE_VS2012_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /MP +NOOPT_VS2012_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od /MP =20 DEBUG_VS2012_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2012_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd @@ -1810,9 +1810,9 @@ NOOPT_VS2012xASL_X64_DLINK_FLAGS =3D /NOLOGO /NODE= FAULTLIB /IGNORE:4001 /OPT:RE *_VS2012x86_IA32_ASM_PATH =3D DEF(VS2012x86_BIN)\ml.exe =20 *_VS2012x86_IA32_MAKE_FLAGS =3D /nologo - DEBUG_VS2012x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 -RELEASE_VS2012x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF -NOOPT_VS2012x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od + DEBUG_VS2012x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /MP +RELEASE_VS2012x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /MP +NOOPT_VS2012x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od /MP =20 DEBUG_VS2012x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd /Z= i RELEASE_VS2012x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd @@ -1842,9 +1842,9 @@ NOOPT_VS2012x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEF= AULTLIB /IGNORE:4001 /OPT:REF *_VS2012x86_X64_DLINK_PATH =3D DEF(VS2012x86_BINX64)\link.exe *_VS2012x86_X64_ASLDLINK_PATH =3D DEF(VS2012x86_BINX64)\link.exe =20 - DEBUG_VS2012x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 -RELEASE_VS2012x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF -NOOPT_VS2012x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od + DEBUG_VS2012x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /MP +RELEASE_VS2012x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /MP +NOOPT_VS2012x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od /MP =20 DEBUG_VS2012x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2012x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd @@ -2042,9 +2042,9 @@ NOOPT_VS2012x86xASL_X64_DLINK_FLAGS =3D /NOLOGO /N= ODEFAULTLIB /IGNORE:4001 /OPT *_VS2013_IA32_ASLDLINK_PATH =3D DEF(VS2013_BIN)\link.exe =20 *_VS2013_IA32_MAKE_FLAGS =3D /nologo - DEBUG_VS2013_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw -RELEASE_VS2013_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw -NOOPT_VS2013_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od + DEBUG_VS2013_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Gw /MP +RELEASE_VS2013_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /MP +NOOPT_VS2013_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od /MP =20 DEBUG_VS2013_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd /Zi RELEASE_VS2013_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd @@ -2074,9 +2074,9 @@ NOOPT_VS2013_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFA= ULTLIB /IGNORE:4001 /OPT:REF *_VS2013_X64_ASLPP_PATH =3D DEF(VS2013_BINX64)\cl.exe *_VS2013_X64_ASLDLINK_PATH =3D DEF(VS2013_BINX64)\link.exe =20 - DEBUG_VS2013_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Gw -RELEASE_VS2013_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -NOOPT_VS2013_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od + DEBUG_VS2013_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /MP +RELEASE_VS2013_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw /MP +NOOPT_VS2013_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od /MP =20 DEBUG_VS2013_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2013_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd @@ -2276,9 +2276,9 @@ NOOPT_VS2013xASL_X64_DLINK_FLAGS =3D /NOLOGO /NODE= FAULTLIB /IGNORE:4001 /OPT:RE *_VS2013x86_IA32_ASM_PATH =3D DEF(VS2013x86_BIN)\ml.exe =20 *_VS2013x86_IA32_MAKE_FLAGS =3D /nologo - DEBUG_VS2013x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Gw -RELEASE_VS2013x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw -NOOPT_VS2013x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od + DEBUG_VS2013x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Gw /MP +RELEASE_VS2013x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /MP +NOOPT_VS2013x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od /MP =20 DEBUG_VS2013x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd /Z= i RELEASE_VS2013x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd @@ -2308,9 +2308,9 @@ NOOPT_VS2013x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEF= AULTLIB /IGNORE:4001 /OPT:REF *_VS2013x86_X64_DLINK_PATH =3D DEF(VS2013x86_BINX64)\link.exe *_VS2013x86_X64_ASLDLINK_PATH =3D DEF(VS2013x86_BINX64)\link.exe =20 - DEBUG_VS2013x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw -RELEASE_VS2013x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -NOOPT_VS2013x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od + DEBUG_VS2013x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /MP +RELEASE_VS2013x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw /MP +NOOPT_VS2013x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od /MP =20 DEBUG_VS2013x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2013x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd @@ -2510,9 +2510,9 @@ NOOPT_VS2013x86xASL_X64_DLINK_FLAGS =3D /NOLOGO /N= ODEFAULTLIB /IGNORE:4001 /OPT *_VS2015_IA32_ASLDLINK_PATH =3D DEF(VS2015_BIN)\link.exe =20 *_VS2015_IA32_MAKE_FLAGS =3D /nologo - DEBUG_VS2015_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw -RELEASE_VS2015_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw -NOOPT_VS2015_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od + DEBUG_VS2015_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Gw /MP +RELEASE_VS2015_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /MP +NOOPT_VS2015_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /= Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od /MP =20 DEBUG_VS2015_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd /Zi RELEASE_VS2015_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd @@ -2542,9 +2542,9 @@ NOOPT_VS2015_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFA= ULTLIB /IGNORE:4001 /OPT:REF *_VS2015_X64_ASLPP_PATH =3D DEF(VS2015_BINX64)\cl.exe *_VS2015_X64_ASLDLINK_PATH =3D DEF(VS2015_BINX64)\link.exe =20 - DEBUG_VS2015_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Gw -RELEASE_VS2015_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -NOOPT_VS2015_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od + DEBUG_VS2015_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /MP +RELEASE_VS2015_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw /MP +NOOPT_VS2015_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od /MP =20 DEBUG_VS2015_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2015_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd @@ -2746,9 +2746,9 @@ NOOPT_VS2015xASL_X64_DLINK_FLAGS =3D /NOLOGO /NODE= FAULTLIB /IGNORE:4001 /OPT:RE *_VS2015x86_IA32_ASM_PATH =3D DEF(VS2015x86_BIN)\ml.exe =20 *_VS2015x86_IA32_MAKE_FLAGS =3D /nologo - DEBUG_VS2015x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Gw -RELEASE_VS2015x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw -NOOPT_VS2015x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od + DEBUG_VS2015x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Gw /MP +RELEASE_VS2015x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /MP +NOOPT_VS2015x86_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 = /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od /MP =20 DEBUG_VS2015x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd /Z= i RELEASE_VS2015x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd @@ -2778,9 +2778,9 @@ NOOPT_VS2015x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEF= AULTLIB /IGNORE:4001 /OPT:REF *_VS2015x86_X64_DLINK_PATH =3D DEF(VS2015x86_BINX64)\link.exe *_VS2015x86_X64_ASLDLINK_PATH =3D DEF(VS2015x86_BINX64)\link.exe =20 - DEBUG_VS2015x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw -RELEASE_VS2015x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -NOOPT_VS2015x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od + DEBUG_VS2015x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /MP +RELEASE_VS2015x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw /MP +NOOPT_VS2015x86_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D= UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od /MP =20 DEBUG_VS2015x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2015x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd @@ -2976,9 +2976,9 @@ NOOPT_VS2015x86xASL_X64_DLINK_FLAGS =3D /NOLOGO /N= ODEFAULTLIB /IGNORE:4001 /OPT *_VS2017_IA32_ASM_PATH =3D DEF(VS2017_BIN_IA32)\ml.exe =20 *_VS2017_IA32_MAKE_FLAGS =3D /nologo - DEBUG_VS2017_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /Gs= 32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Gw -RELEASE_VS2017_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /Gs= 32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw -NOOPT_VS2017_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /Gs= 32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od + DEBUG_VS2017_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /Gs= 32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Gw /MP +RELEASE_VS2017_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /Gs= 32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /MP +NOOPT_VS2017_IA32_CC_FLAGS =3D /nologo /arch:IA32 /c /WX /GS- /W4 /Gs= 32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od /MP =20 DEBUG_VS2017_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd /Zi RELEASE_VS2017_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd @@ -3006,9 +3006,9 @@ NOOPT_VS2017_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAUL= TLIB /IGNORE:4001 /OPT:REF /O *_VS2017_X64_DLINK_PATH =3D DEF(VS2017_BIN_X64)\link.exe *_VS2017_X64_ASLDLINK_PATH =3D DEF(VS2017_BIN_X64)\link.exe =20 - DEBUG_VS2017_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw -RELEASE_VS2017_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -NOOPT_VS2017_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od + DEBUG_VS2017_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /MP +RELEASE_VS2017_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw /MP +NOOPT_VS2017_X64_CC_FLAGS =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UN= ICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od /MP =20 DEBUG_VS2017_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2017_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/= Python/AutoGen/GenMake.py index b441817b52..adf06065d3 100644 --- a/BaseTools/Source/Python/AutoGen/GenMake.py +++ b/BaseTools/Source/Python/AutoGen/GenMake.py @@ -435,7 +435,7 @@ cleanlib: self.CommonFileDependency =3D [] self.FileListMacros =3D {} self.ListFileMacros =3D {} - + self.ObjTargetDict =3D {} self.FileCache =3D {} self.LibraryBuildCommandList =3D [] self.LibraryFileList =3D [] @@ -518,6 +518,9 @@ cleanlib: # Remove duplicated include path, if any if Attr =3D=3D "FLAGS": Value =3D RemoveDupOption(Value, IncPrefix, MyAgo.= IncludePathList) + if self._AutoGenObject.BuildRuleFamily =3D=3D TAB_= COMPILER_MSFT and Tool =3D=3D 'CC' and '/GM' in Value: + Value =3D Value.replace(' /MP', '') + MyAgo.BuildOption[Tool][Attr] =3D Value if Tool =3D=3D "OPTROM" and PCI_COMPRESS_Flag: ValueList =3D Value.split() if ValueList: @@ -618,6 +621,11 @@ cleanlib: False ) =20 + # Generate objlist used to create .obj file + for Type in self.ObjTargetDict: + NewLine =3D ' '.join(list(self.ObjTargetDict[Type])) + FileMacroList.append("OBJLIST_%s =3D %s" % (list(self.ObjTarge= tDict.keys()).index(Type), NewLine)) + BcTargetList =3D [] =20 MakefileName =3D self._FILE_NAME_[self._FileType] @@ -927,6 +935,10 @@ cleanlib: for File in DepSet: self.CommonFileDependency.append(self.PlaceMacro(File.Path, se= lf.Macros)) =20 + CmdSumDict =3D {} + CmdTargetDict =3D {} + CmdCppDict =3D {} + DependencyDict =3D FileDependencyDict.copy() for File in FileDependencyDict: # skip non-C files if File.Ext not in [".c", ".C"] or File.Name =3D=3D "AutoGen.c= ": @@ -934,6 +946,7 @@ cleanlib: NewDepSet =3D set(FileDependencyDict[File]) NewDepSet -=3D DepSet FileDependencyDict[File] =3D ["$(COMMON_DEPS)"] + list(NewDepS= et) + DependencyDict[File] =3D list(NewDepSet) =20 # Convert target description object to target string in makefile for Type in self._AutoGenObject.Targets: @@ -945,11 +958,21 @@ cleanlib: self.ListFileMacros[T.ListFileMacro] =3D [] if T.GenIncListFile and T.IncListFileMacro not in self.Lis= tFileMacros: self.ListFileMacros[T.IncListFileMacro] =3D [] + if self._AutoGenObject.BuildRuleFamily =3D=3D TAB_COMPILER= _MSFT and Type =3D=3D TAB_C_CODE_FILE: + NewFile =3D self.PlaceMacro(str(T), self.Macros) + if self.ObjTargetDict.get(T.Target.SubDir): + self.ObjTargetDict[T.Target.SubDir].add(NewFile) + else: + self.ObjTargetDict[T.Target.SubDir] =3D set() + self.ObjTargetDict[T.Target.SubDir].add(NewFile) =20 Deps =3D [] + CCodeDeps =3D [] # Add force-dependencies for Dep in T.Dependencies: Deps.append(self.PlaceMacro(str(Dep), self.Macros)) + if Dep !=3D '$(MAKE_FILE)': + CCodeDeps.append(self.PlaceMacro(str(Dep), self.Ma= cros)) # Add inclusion-dependencies if len(T.Inputs) =3D=3D 1 and T.Inputs[0] in FileDependenc= yDict: for F in FileDependencyDict[T.Inputs[0]]: @@ -973,12 +996,56 @@ cleanlib: if Type in [TAB_OBJECT_FILE, TAB_STATIC_LIBRARY]: Deps.append("$(%s)" % T.ListFileMacro) =20 - TargetDict =3D { - "target" : self.PlaceMacro(T.Target.Path, self.Ma= cros), - "cmd" : "\n\t".join(T.Commands), - "deps" : Deps - } - self.BuildTargetList.append(self._BUILD_TARGET_TEMPLATE.Re= place(TargetDict)) + if self._AutoGenObject.BuildRuleFamily =3D=3D TAB_COMPILER= _MSFT and Type =3D=3D TAB_C_CODE_FILE: + T, CmdTarget, CmdTargetDict, CmdCppDict =3D self.Parse= rCCodeFile(T, Type, CmdSumDict, CmdTargetDict, CmdCppDict, DependencyDict) + TargetDict =3D {"target": self.PlaceMacro(T.Target.Pat= h, self.Macros), "cmd": "\n\t".join(T.Commands),"deps": CCodeDeps} + CmdLine =3D self._BUILD_TARGET_TEMPLATE.Replace(Target= Dict).rstrip().replace('\t$(OBJLIST', '$(OBJLIST') + if T.Commands: + CmdLine =3D '%s%s' %(CmdLine, TAB_LINE_BREAK) + if CCodeDeps or CmdLine: + self.BuildTargetList.append(CmdLine) + else: + TargetDict =3D {"target": self.PlaceMacro(T.Target.Pat= h, self.Macros), "cmd": "\n\t".join(T.Commands),"deps": Deps} + self.BuildTargetList.append(self._BUILD_TARGET_TEMPLAT= E.Replace(TargetDict)) + + def ParserCCodeFile(self, T, Type, CmdSumDict, CmdTargetDict, CmdCppDi= ct, DependencyDict): + if not CmdSumDict: + for item in self._AutoGenObject.Targets[Type]: + CmdSumDict[item.Target.SubDir] =3D item.Target.BaseName + for CppPath in item.Inputs: + Path =3D self.PlaceMacro(CppPath.Path, self.Macros) + if CmdCppDict.get(item.Target.SubDir): + CmdCppDict[item.Target.SubDir].append(Path) + else: + CmdCppDict[item.Target.SubDir] =3D ['$(MAKE_FILE)'= , Path] + if CppPath.Path in DependencyDict: + for Temp in DependencyDict[CppPath.Path]: + Path =3D self.PlaceMacro(Temp.Path, self.Macro= s) + if Path not in (self.CommonFileDependency + Cm= dCppDict[item.Target.SubDir]): + CmdCppDict[item.Target.SubDir].append(Path= ) + if T.Commands: + CommandList =3D T.Commands[:] + for Item in CommandList[:]: + SingleCommandList =3D Item.split() + if len(SingleCommandList) > 0 and '$(CC)' in SingleCommand= List[0]: + for Temp in SingleCommandList: + if Temp.startswith('/Fo'): + CmdSign =3D '%s%s' % (Temp.rsplit(TAB_SLASH, 1= )[0], TAB_SLASH) + break + else: continue + if CmdSign not in list(CmdTargetDict.keys()): + CmdTargetDict[CmdSign] =3D Item.replace(Temp, CmdS= ign) + else: + CmdTargetDict[CmdSign] =3D "%s %s" % (CmdTargetDic= t[CmdSign], SingleCommandList[-1]) + Index =3D CommandList.index(Item) + CommandList.pop(Index) + if SingleCommandList[-1].endswith("%s%s.c" % (TAB_SLAS= H, CmdSumDict[CmdSign.lstrip('/Fo').rsplit(TAB_SLASH, 1)[0]])): + Cpplist =3D CmdCppDict[T.Target.SubDir] + Cpplist.insert(0, '$(OBJLIST_%d): $(COMMON_DEPS)' = % list(self.ObjTargetDict.keys()).index(T.Target.SubDir)) + T.Commands[Index] =3D '%s\n\t%s' % (' \\\n\t'.join= (Cpplist), CmdTargetDict[CmdSign]) + else: + T.Commands.pop(Index) + return T, CmdSumDict, CmdTargetDict, CmdCppDict =20 ## For creating makefile targets for dependent libraries def ProcessDependentLibrary(self): --=20 2.14.1.windows.1 --_000_FAD0D7E0AE0FA54D987F6E72435CAFD50AF49C78SHSMSX101ccrcor_ Content-Disposition: attachment; filename="winmail.dat" Content-Transfer-Encoding: base64 Content-Type: application/ms-tnef; name="winmail.dat" eJ8+ImU8AQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAEJgAEAIQAAADg3QjA4NkY3 NEZFQzA4NEFCM0RFOEI0QUU2ODk3QzQ4AGoHAQ2ABAACAAAAAgACAAEFgAMADgAAAOMHBAAKAAgA MgA6AAMAbwEBIIADAA4AAADjBwQACgAIADIAOgADAG8BAQiABwAYAAAASVBNLk1pY3Jvc29mdCBN YWlsLk5vdGUAMQgBBIABAEIAAABbZWRrMl1bUEFUQ0ggVjJdIEJhc2VUb29sczpFbmFibGUgdGhl IC9NUCBvcHRpb24gb2YgTVNWQyBjb21waWxlcgDqFQELgAEAIQAAADg3QjA4NkY3NEZFQzA4NEFC M0RFOEI0QUU2ODk3QzQ4AGoHAQOQBgC0JQAAMAAAAAIBfwABAAAASAAAADxGQUQwRDdFMEFFMEZB NTREOTg3RjZFNzI0MzVDQUZENTBBRjQ5Qzc4QFNIU01TWDEwMS5jY3IuY29ycC5pbnRlbC5jb20+ AAsAHw4BAAAAAgEJEAEAAAD9HAAA+RwAAMuLAABMWkZ1X9k7CGEACmZiaWQEAABjY8BwZzEyNTIA /gND8HRleHQB9wKkA+MCAARjaArAc2V0MCDvB20CgwBQEU0yCoAGtAKAln0KgAjIOwliMTkOwL8J wxZyCjIWcQKAFWIqCbBzCfAEkGF0BbIOUANgc6JvAYAgRXgRwW4YMF0GUnYEkBe2AhByAMB0fQhQ bhoxECAFwAWgG2RkmiADUiAQIheyXHYIkOR3awuAZDUdUwTwB0ANF3AwCnEX8mJrbWsGcwGQACAg Qk1fQuBFR0lOfQr8AfEL8REfsFo6aAJAcHM6wC8vYnVnegMQC2AkLnQHMG5vBaFlLgEFsGcvc2hv d19BIlEuY2dpPw3QPaQxNgHAXGwLgGUKgARUaBngL01QIG8tBTBpAiAl4GYF0VZDeRvRbXADEBuy A5EJcXX6YxngdCWBGJABkAMgIuD/B4AoUSbWKBIlBRkgCHAn8f5mJyEEICYxKCIm4QOBHGBdJRIu JQUlBwQAIAqwdKURwCAtcWdvC4BnKQL/CfABoCmTLXEmkyX1C4AfsFJhEgBUbwbwcyxtQ4RjOh+w b2IgRgnwlS5wPAbgYiRALmYygbZAC4AQIGwkQANwPjGJpkwHcC5SR2EpIDwlEPk08i5nNVAzfzHg AiEFEPMiUBxBLXUdwASQMhAHYLcjAQhQCXAgN1cmIkEJwmMHgAIwIDEuAFAlFFMcaWcYUDfwGTBm LWIKeTIQWi1ganUuRukDkTx6PDJ4MyAAcDY/XAotPpAlBTBoLxtBZvYvGJAw0V8BASLQOjALURUQ ICBBV3w6gDI2IJ4rQls+kUM6Ps8vUypzmC9QeSggAiAvQTfAFG9HCfAvRmFNYWuJI2BweUHhIDgx Qk2bQwNEJjIqxRmUZCw6gDwzNzAxEgAAICYhcyj0KylKUDcSMAEAHnBLBNwtKSx8DeABICBD8CRg 2QVAYS8/T0BfYk4/T08PJQUdsRAwThBiZGEygSTANGE2Li5iASDAYjZkNjNlMlAekfw3NR3gPjdO H1FvUndCUWdQX1bvUndAQE2wJNA0HCw5QkBbpFthTk9PIFBUX1ZTAdAwOABfSUEzMl9ETIEgIEtf RkxBRwXwDUFSPSWgXKBMT0dPAV7SREVGQVVMVCVd0EIloElHXKBSRaw6NB6gR5AvXME6YJAqRkQm Klz2WFPAX0EAU0xQUF9QQVTWSF6EX5EoXQVCICBiof9MgAjQM8AQMCnmYg9dxGND92PPZNMlEWtl Sj4mQVBfkMhCVUdiKkNDXhwjEJcJAC4wJaBjJaBXWCWgV15QVcBtYDRtkXNdkDcENjgloEQgVU5J xkNfgWEBMWIyBCBGkGZMbZFHMC9GXXBGNC6BLeAvRUhzLWNt0ZRHUnGSRiWgWmltkaZtPiZgkExF YuBFaw//bB9tL24/b09wX3FrPiZcq/90L3Ufdi93PXjfcU9yVGEB/wswWCVqn3RPfX9+j3d/eI// gQ9yBEqQJbFYFnM/hJ+Fr/+Gv4fPiN+J73IDi4h7X3xv/45Pj19/n5Ivip2C4ItpagZ/QVGDr2Lg H9BeJ5aPl1Az/SWgQ1NAckCb4XJQRCaML++eT59foGda+TiQEFvSpiT9XH14YuFik13NXs9f32Do 8WWOeDg2XWSi4mNGZ6v3rSJkkWTxbWU7nLhBUqyv+E1BS4yAXiWjt2ofrNz/jVqjv5efkE+RZJm/ gZuZcv9yX4xZtW+2f7ePuJ+5r7q//3qfvb+Vq79/wI/Bm8MPu1//gm+DfcYPxz/IT8lfwm/K3/+7 yYtfvY/O/9AP0R/SL9M//5Lvk//XD8bf2Q/aH8oP3N//1Sib35zvrQ1eJuDfoEcFoH9NkaDP1o/o v+nP6t5a+Tn/XUBb0vGUpv6tNl3MqW+qf/9g76yMqDhjT68YaL/3z2af//nv+v9pn+eflV/uz+Hv 2r//kV/kL3HvvQ8CTwNfBG8Ff/8GjwefxC/FPwtvDF8Nb5iP/xA/CH/MrwGPE58UzxXfDp//D68Y X4rf1i8bzxzfHe8e//8gDyEf3U/eXySvFG8mrye//yl/Ko/lz+bfG16i7+8PoI9f7H82Lzc/pJ9b JjFU0Dn3W9I+hfJvNqfvqP/1b/Z8/2WMVNCtVv2qLiZn1kWBr4T///+w30VosrqzX2p8RYbf//8u vy/P2u/b/+SvvD+huk3v/07/UA9RH1IvUz8Rz5TEVp//Lh9Yn1mv459Tv8xfGr5eb/9fn2CvYb9a 32M/1N8jT2av/2e/aM9p32rva/8rH5Rbb4//X39xj3KfYq9sr2TLM/81Df9FiDtpeQ/vzzkfbw6B T4Jf8/APPgg0MT7EihM/e0WGP0EtQg9DH/bfRPr9RVBQ9/lvR8b/lGOv+5CO/b+Snv9If0y/kMcl L3lfem8oXylv/3yvCT+FDZn/mw+cH50vnj//n09c/3c3op+jj6SfMI+nb/+f32UfmR+iz6v/rQ+l /6cP/6+PIq9uvrLvs/+1D7Yfty//uD9176nPqt+8v73Prg/An/8y737Pf986/8TvOG+En8xPx81f PN896TM0Mz7D1KT/iu1An0Gvjd+O75P+7XtGl/dHSv8ll1Ftk6tJf9tsSzr/TB+ADPNXxArSL8YP vr90H//I31SfoX/j/+UP5h/nL+g//+lPqQ/sT3Af7k/vX3t/8h//fZ+xX/Qv7V/2b/d/8I/4///6 D7m/7A/9f/6P/58ArwG//wLPwl8Fj/VfB48In/iPC1//A6nKT8tf25279g9viD/Pb58FTxd/GI+I f9QnNzXU1P8gQ9WO28bXDNf/2Q+PX9sc/9bIkb/dqJcvJn+VDyifKa//mA8WL8PPHV8QfwlPv88S v/+gX+ufMP8yDzMfNC81PzZP//K/8886HzsPPB/G/z7vNy//+z8wP0JPQ39Ejz1PPl9HD/+5TwS/ Sn9Lj0yfTa9Ov0/P/wvfDO9TX0MfVV9Wb1gvWT//FF8Vb0oO0V8dn87/Gw9k3/dl79MPiXc1EVCK M21EIR/+NtZ/148kHyUsk/3cIBxF/yxaXNaWR9wg3hQur99vdBg/4Urh75jtdEUOj11mYXL4Y2g6 IkJdz17fCd9gn//6PzhP0IV8r32/fs9/34Dv/4H/P99A74YPhv+ID4kfEY//i9+Dj0jPfA+Gf5Av kT+ST/+Kv5PPE59Rz4WfmE+ZX5pv/5t/nI+dn1n/jd+O76Jfo2//pH+TL6c/FA93r5bvHHxqr38e T2e/oG+z37TvHp/UFzb8MDjU07yUbix0RW/dcL/Pcc8lj3OqK/VQUCgfdnb9LkRj3ovDHixvxS53 L3tv/8NXU99df60/Vw9YH69/N+//t53Mj82fzq/Pv9DP0d+ND/+pV9Uv1h/XL18/2f/Sb5Xf/8uv 1V/ej9+f2I/Zn+IfUV//oC7lf+aP55/or+m/6s+oD//cX91v70/wX+Cf8y9hn7Ff/7Jvaa/3f2cf ty/+3//va4/9H4k4LbAgYwc0vX1vT3Bf/8BvwX/GjhwLdUd1+i3VyeH+bcY7eC8N/Hnqes+ynCIH //aaqz+sT/j/pY/6v6/v7ED/078WPxdPGF8Zbxp/G48cn//brx9foZ8hXyJvI38lLx0P//x25A8n /yB/Kj8rTyOvJL//Ld+ez+zPMQ8yHzMvND81T/82Xzdv9L8nzyjfPC89Pz5P/y0fQQ+wv/1vMJ+4 vAS/us8/Af86H02vTr+7Dwa3NDL/B2RWcwgeE1YJnAqPC5/B7/8NrAlYxE8QOMm/XK/Hn17P/1/f yp9MX/ZfU49Grz7P8l//SO/r1x5fZu9n/2kPah9rL/9sPyYvJz9vz0SPcc9y33Sf/3WvL19mb3g/ eW96f3M/dE//fP/r3zmPgC+BP4JPg1+Eb/+Ff0FfQm+JD3kPiw+MH43f/47vSo9Ln3++A+9TzwGP UT//mo+bnwWfvAbFQFZ0ouVXT742CQ8KH1pPW1zGjTNSZv9iipKGyNep8BCkZN8R/6nI/xPaFH/L fan1RA9FH5N/lI/PP1+WT0nN43VHd25vsh//sy+0P7VPtl+3b7h/OGO6l//1ibv/vO+9/78PR7/B z7k//+Ovsb+8b8Zfx2/If8Cvyf//Sc+6cYdvu3/Ob89/0I/Rn//Sr9O/wuiP/9cfxW/ZH9ov/9s/ 3O/UX5ffmO/NbJ+roG9/VI+df9bu6o/rn1TPomg3/jSjJPNTo9yp9aWNpm+nf+dbv6laYiVQUF5P rCZkdP5jERv5zmKf+96s37Ef+gf/iY+TL+PvjL+Nz+YvhxK6H//uTQM/BE8FXwZvB38Ij8L///Rb DB8NDw4flO8Q7wkfzA//Al8MTxW/Fs8PfxCPGU+HBv/VzwtfHP8eDx8fIC8hPyJP/97PE58UrybP J98X3yqvl1//6B/pL59vLz+c3+3vNp83r/+hT6JYMRGjIz7k9C2k/6YP//cf+C/9PlI7qverqmQF AJH+bfzrrd9FrK+asH/pTFg3/y5K4e/i/zCv2/8yb+afI3T/Cq9N707/UA9RH1IvUz9UT/8Sn0AZ V7/hn1m/Ws/kz12P/+bvGy9gH1hfYl9jb2R/XJ//Zf/U7yPvVy9p/2sPbB9tL/9uP29PK98s73Mf YY91H3Yv/2S/eO9wTzSPNZ9F3SX2PG9/8X85r3KPhl+Hb/G/onYz/DA4oyOPFD/OSwZBTEI//0NP +J9FXEEI+v9H6ABvlV///k+Xf5iPAU+FDy4PjD9/X/93PynPgZ8jC1ZPn5+gr6G//6LPo9+k74If Xy+ofy6fqn//q48xz65fM+poD7DfqX+zH/+0L6yvtZ+2r3Evp9+5n7qv/7u/vM+9377veg97H8J/ sj//xH/Fj8dPyF+DP4RPuO47n3+Mfzk/ie/UP9VPPU/ytzXcMTDzc9ykj/82QL9Bz/eS/5QM/T01 ixabOsw2/4f/46BIVJ2PSa/jeEuKTC8CLf/jpXy/fc/NL84/d8/P/4J9/wofOmvsD+0f7i/vP/BP 8V//8m+vz/VvzAf27/f/+Q+Av//7z/M+t+/+D/ZfAE8BXwJv//qfA+9wf8Dv9T8ILwk/Ck//C18M bw1/yR8s/REvEh8TL/8UPwKvFv8Ob9Hv0v/jmNl5/9ofjT/XLxCeJD8lT41/3Bj8NDLc1C0D3Yzj pd894B/P4S+Ub+MKmtVQUJb/5db9nSRjSMszfptPNY7mj+rP/zO3wv/M3x2fxi/HPx/f0XL/888n /TzvPf8/D0AfQS9CP//8ry4LRc9Gv0fPzp9Kn0LP/wW/PA9F/09vUH9JL0o/Uv//wD8QD1YvVz9Y T1lfWm9bf/8X/xkPXw9f/2EPYh9j32Tv/yFPIl8zjNl/Kn/W715PcK/Hcb/bX47SNzQ2j0N4lP8t 3d6v378wzzHfNu6K6+Sn9+VanLU6QW02m+ePf1zpSv/qLyL8kOdn+hufHK9qXxWv/2wfIE+m/ygp h++I/4oPix//jC+NP45PTJ+RDxHPkw+UH/+VL5bfjn+3n4cvka+br5y//53Ple+fT6BfXT+Qf6NP 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 LnMVsCFQhn+onmQf8aoQPiAw2aOd8Y+gQID/tcJoD6tBYo9GP0dFam9rr79mn7VhTUKi8MGQqyB3 IVDiaPTQL0Zv9oBvT3Pv+SVFaWevEPvIUcBNM+BAJ2WztyMVQFNIo3AxKb+rQbcFd4JmD3nvjzFi 9GC8YWt4/zqusvCmsHSLsP51KL8xz3VUUWWLoKLwBOLBFhgua2V5c/Qwct//g58bC0iQdUQ/cmVT 9GZHMv8aJHVxeO98j4f/g8+E34Xk/iL78LuQy5F2QYwPhcOjcPFuP1stMVVwig+R2amwbR0AeD+B XfkuvOCTASjPYSKRH10/k7Vwb/QgkuPvlM+cnY/PkNIuHOFyJI2RefvwLmON83c5JXl1NS7/icDz 83KEdr93xVVwgp+h7//fMYECkzJYOAuXWZWhD6IfL6MjlBHgUWXgMPXKXyUaZKDgIGnB2OBNT07y X9rwUFNqAbuggQMSE//W8YGP9ECUJKRd1F+u717Z/5LjP3L74Q3kdgX8MA3gsmL9DgInDlSjBQ0x jk+Fw63/f4j/tY+vH8j2l0+3+PRgdPx1cm4Q3TQafxuPt5UJwOO+5VeyIyMgnwAAkC7gs3tQfdFn IMkggjBm4OH+IAoEAGAqQsthHONRgLeg83swChBpZcyGV7MYEw0AufSwc3NS1gQhwyJ5E8MNoOct zqC3lTIuMTRNx5AucjDs8G93nBAxM7eVt5V9fbfgyaAAAAAfAEIAAQAAABgAAABGAGEAbgAsACAA WgBoAGkAagB1AFgAAAAfAGUAAQAAACoAAAB6AGgAaQBqAHUAeAAuAGYAYQBuAEAAaQBuAHQAZQBs AC4AYwBvAG0AAAAAAB8AZAABAAAACgAAAFMATQBUAFAAAAAAAAIBQQABAAAAZAAAAAAAAACBKx+k vqMQGZ1uAN0BD1QCAAAAgEYAYQBuACwAIABaAGgAaQBqAHUAWAAAAFMATQBUAFAAAAB6AGgAaQBq AHUAeAAuAGYAYQBuAEAAaQBuAHQAZQBsAC4AYwBvAG0AAAAfAAJdAQAAACoAAAB6AGgAaQBqAHUA eAAuAGYAYQBuAEAAaQBuAHQAZQBsAC4AYwBvAG0AAAAAAB8A5V8BAAAAMgAAAHMAaQBwADoAegBo AGkAagB1AHgALgBmAGEAbgBAAGkAbgB0AGUAbAAuAGMAbwBtAAAAAAAfABoMAQAAABgAAABGAGEA bgAsACAAWgBoAGkAagB1AFgAAAAfAB8MAQAAACoAAAB6AGgAaQBqAHUAeAAuAGYAYQBuAEAAaQBu AHQAZQBsAC4AYwBvAG0AAAAAAB8AHgwBAAAACgAAAFMATQBUAFAAAAAAAAIBGQwBAAAAZAAAAAAA AACBKx+kvqMQGZ1uAN0BD1QCAAAAgEYAYQBuACwAIABaAGgAaQBqAHUAWAAAAFMATQBUAFAAAAB6 AGgAaQBqAHUAeAAuAGYAYQBuAEAAaQBuAHQAZQBsAC4AYwBvAG0AAAAfAAFdAQAAACoAAAB6AGgA aQBqAHUAeAAuAGYAYQBuAEAAaQBuAHQAZQBsAC4AYwBvAG0AAAAAAB8A+D8BAAAAGAAAAEYAYQBu ACwAIABaAGgAaQBqAHUAWAAAAB8AI0ABAAAAKgAAAHoAaABpAGoAdQB4AC4AZgBhAG4AQABpAG4A dABlAGwALgBjAG8AbQAAAAAAHwAiQAEAAAAKAAAAUwBNAFQAUAAAAAAAAgH5PwEAAABkAAAAAAAA AIErH6S+oxAZnW4A3QEPVAIAAACARgBhAG4ALAAgAFoAaABpAGoAdQBYAAAAUwBNAFQAUAAAAHoA aABpAGoAdQB4AC4AZgBhAG4AQABpAG4AdABlAGwALgBjAG8AbQAAAB8ACV0BAAAAKgAAAHoAaABp AGoAdQB4AC4AZgBhAG4AQABpAG4AdABlAGwALgBjAG8AbQAAAAAACwBAOgEAAAAfABoAAQAAABIA AABJAFAATQAuAE4AbwB0AGUAAAAAAAMA8T8JBAAACwBAOgEAAAADAP0/5AQAAAIBCzABAAAAEAAA AIewhvdP7AhKs96LSuaJfEgDABcAAQAAAEAAOQAAhfyDeu/UAUAACDBtLWCEeu/UAR8AAICGAwIA AAAAAMAAAAAAAABGAQAAAB4AAABhAGMAYwBlAHAAdABsAGEAbgBnAHUAYQBnAGUAAAAAAAEAAAAM AAAAZQBuAC0AVQBTAAAAHwA3AAEAAACEAAAAWwBlAGQAawAyAF0AWwBQAEEAVABDAEgAIABWADIA XQAgAEIAYQBzAGUAVABvAG8AbABzADoARQBuAGEAYgBsAGUAIAB0AGgAZQAgAC8ATQBQACAAbwBw AHQAaQBvAG4AIABvAGYAIABNAFMAVgBDACAAYwBvAG0AcABpAGwAZQByAAAAHwA9AAEAAAACAAAA AAAAAAMANgAAAAAAAgFxAAEAAAAWAAAAAdTvenjqziXLQ0SNTOWl43634l5HawAAHwBwAAEAAACE AAAAWwBlAGQAawAyAF0AWwBQAEEAVABDAEgAIABWADIAXQAgAEIAYQBzAGUAVABvAG8AbABzADoA RQBuAGEAYgBsAGUAIAB0AGgAZQAgAC8ATQBQACAAbwBwAHQAaQBvAG4AIABvAGYAIABNAFMAVgBD ACAAYwBvAG0AcABpAGwAZQByAAAAHwA1EAEAAACQAAAAPABGAEEARAAwAEQANwBFADAAQQBFADAA RgBBADUANABEADkAOAA3AEYANgBFADcAMgA0ADMANQBDAEEARgBEADUAMABBAEYANAA5AEMANwA4 AEAAUwBIAFMATQBTAFgAMQAwADEALgBjAGMAcgAuAGMAbwByAHAALgBpAG4AdABlAGwALgBjAG8A bQA+AAAAAwDeP59OAABAAAcw5adWhHrv1AECAQsAAQAAABAAAACHsIb3T+wISrPei0rmiXxIAwAm AAAAAAACAUcAAQAAADIAAABjPVVTO2E9TUNJO3A9SW50ZWw7bD1TSFNNU1gxMDEtMTkwNDEwMDg1 MDU4Wi05NjMyAAAAAgEQMAEAAABGAAAAAAAAACZ3vTk77DhJpKYVPcule0IHAPrQ1+CuD6VNmH9u ckNcr9UAAABEEV4AAKaTaDaIdmxLp0rT60eaTGQAAAlUjz8AAAAAHwD6PwEAAAAYAAAARgBhAG4A LAAgAFoAaABpAGoAdQBYAAAAAwAJWQEAAAALAACACCAGAAAAAADAAAAAAAAARgAAAACChQAAAAAA AAMAAIAIIAYAAAAAAMAAAAAAAABGAAAAAOuFAAAJBAAAAwANNP0/AAAfAACAhgMCAAAAAADAAAAA AAAARgEAAAAgAAAAeAAtAG0AcwAtAGgAYQBzAC0AYQB0AHQAYQBjAGgAAAABAAAAAgAAAAAAAAAf AACAhgMCAAAAAADAAAAAAAAARgEAAAAiAAAAeAAtAG8AcgBpAGcAaQBuAGEAdABpAG4AZwAtAGkA cAAAAAAAAQAAACAAAABbADEAMAAuADIAMwA5AC4AMQAyADcALgA0ADAAXQAAAMtf --_000_FAD0D7E0AE0FA54D987F6E72435CAFD50AF49C78SHSMSX101ccrcor_--