From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.20; helo=mga02.intel.com; envelope-from=bob.c.feng@intel.com; receiver=edk2-devel@lists.01.org Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id CA5942194D387 for ; Mon, 28 Jan 2019 18:06:53 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Jan 2019 18:06:53 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,535,1539673200"; d="scan'208";a="295229925" Received: from shwdepsi1121.ccr.corp.intel.com ([10.239.158.47]) by orsmga005.jf.intel.com with ESMTP; 28 Jan 2019 18:06:50 -0800 From: "Feng, Bob C" To: edk2-devel@lists.01.org Cc: Zhijux Fan , Bob Feng , Liming Gao , Yonghong Zhu Date: Tue, 29 Jan 2019 10:06:01 +0800 Message-Id: <20190129020610.14300-25-bob.c.feng@intel.com> X-Mailer: git-send-email 2.20.1.windows.1 In-Reply-To: <20190129020610.14300-1-bob.c.feng@intel.com> References: <20190129020610.14300-1-bob.c.feng@intel.com> MIME-Version: 1.0 Subject: [Patch 24/33] BaseTools: Update windows and linux run scripts file to use Python3 X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2019 02:06:54 -0000 Content-Transfer-Encoding: 8bit From: Zhijux Fan Modify windows script, PosixLike script, edksetup.sh, edksetup.bat to use Python3 based on PYTHON3_ENABLE environment. Cc: Bob Feng Cc: Liming Gao Cc: Yonghong Zhu Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Zhiju.Fan --- BaseTools/Bin/CYGWIN_NT-5.1-i686/Ecc | 6 +++--- BaseTools/Bin/CYGWIN_NT-5.1-i686/GenDepex | 6 +++--- BaseTools/Bin/CYGWIN_NT-5.1-i686/GenFds | 6 +++--- BaseTools/Bin/CYGWIN_NT-5.1-i686/TargetTool | 6 +++--- BaseTools/Bin/CYGWIN_NT-5.1-i686/Trim | 6 +++--- BaseTools/Bin/CYGWIN_NT-5.1-i686/build | 6 +++--- BaseTools/BinWrappers/PosixLike/BPDG | 6 +++--- BaseTools/BinWrappers/PosixLike/Ecc | 6 +++--- BaseTools/BinWrappers/PosixLike/GenDepex | 6 +++--- BaseTools/BinWrappers/PosixLike/GenFds | 6 +++--- BaseTools/BinWrappers/PosixLike/GenPatchPcdTable | 6 +++--- BaseTools/BinWrappers/PosixLike/GenerateCapsule | 6 +++--- BaseTools/BinWrappers/PosixLike/PatchPcdValue | 6 +++--- BaseTools/BinWrappers/PosixLike/Pkcs7Sign | 6 +++--- BaseTools/BinWrappers/PosixLike/Rsa2048Sha256GenerateKeys | 6 +++--- BaseTools/BinWrappers/PosixLike/Rsa2048Sha256Sign | 6 +++--- BaseTools/BinWrappers/PosixLike/TargetTool | 6 +++--- BaseTools/BinWrappers/PosixLike/Trim | 6 +++--- BaseTools/BinWrappers/PosixLike/UPT | 6 +++--- BaseTools/BinWrappers/PosixLike/build | 6 +++--- BaseTools/BinWrappers/WindowsLike/BPDG.bat | 2 +- BaseTools/BinWrappers/WindowsLike/Ecc.bat | 2 +- BaseTools/BinWrappers/WindowsLike/GenDepex.bat | 2 +- BaseTools/BinWrappers/WindowsLike/GenFds.bat | 2 +- BaseTools/BinWrappers/WindowsLike/GenPatchPcdTable.bat | 2 +- BaseTools/BinWrappers/WindowsLike/GenerateCapsule.bat | 2 +- BaseTools/BinWrappers/WindowsLike/PatchPcdValue.bat | 2 +- BaseTools/BinWrappers/WindowsLike/Pkcs7Sign.bat | 2 +- BaseTools/BinWrappers/WindowsLike/Rsa2048Sha256GenerateKeys.bat | 2 +- BaseTools/BinWrappers/WindowsLike/Rsa2048Sha256Sign.bat | 2 +- BaseTools/BinWrappers/WindowsLike/TargetTool.bat | 2 +- BaseTools/BinWrappers/WindowsLike/Trim.bat | 2 +- BaseTools/BinWrappers/WindowsLike/UPT.bat | 2 +- BaseTools/BinWrappers/WindowsLike/build.bat | 2 +- BaseTools/Makefile | 8 ++++---- BaseTools/Source/C/Makefile | 8 ++++---- BaseTools/Tests/GNUmakefile | 2 +- BaseTools/toolsetup.bat | 53 ++++++++++++++++++++++++++++++++++++++++++++--------- edksetup.sh | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++- 39 files changed, 177 insertions(+), 93 deletions(-) diff --git a/BaseTools/Bin/CYGWIN_NT-5.1-i686/Ecc b/BaseTools/Bin/CYGWIN_NT-5.1-i686/Ecc index 214d88fff1..8532fe510d 100755 --- a/BaseTools/Bin/CYGWIN_NT-5.1-i686/Ecc +++ b/BaseTools/Bin/CYGWIN_NT-5.1-i686/Ecc @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/Bin/CYGWIN_NT-5.1-i686/GenDepex b/BaseTools/Bin/CYGWIN_NT-5.1-i686/GenDepex index 214d88fff1..8532fe510d 100755 --- a/BaseTools/Bin/CYGWIN_NT-5.1-i686/GenDepex +++ b/BaseTools/Bin/CYGWIN_NT-5.1-i686/GenDepex @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/Bin/CYGWIN_NT-5.1-i686/GenFds b/BaseTools/Bin/CYGWIN_NT-5.1-i686/GenFds index 214d88fff1..8532fe510d 100755 --- a/BaseTools/Bin/CYGWIN_NT-5.1-i686/GenFds +++ b/BaseTools/Bin/CYGWIN_NT-5.1-i686/GenFds @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/Bin/CYGWIN_NT-5.1-i686/TargetTool b/BaseTools/Bin/CYGWIN_NT-5.1-i686/TargetTool index 214d88fff1..8532fe510d 100755 --- a/BaseTools/Bin/CYGWIN_NT-5.1-i686/TargetTool +++ b/BaseTools/Bin/CYGWIN_NT-5.1-i686/TargetTool @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/Bin/CYGWIN_NT-5.1-i686/Trim b/BaseTools/Bin/CYGWIN_NT-5.1-i686/Trim index 7cac4f7c4f..54e09c039b 100755 --- a/BaseTools/Bin/CYGWIN_NT-5.1-i686/Trim +++ b/BaseTools/Bin/CYGWIN_NT-5.1-i686/Trim @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") exe=$(basename "$full_cmd") diff --git a/BaseTools/Bin/CYGWIN_NT-5.1-i686/build b/BaseTools/Bin/CYGWIN_NT-5.1-i686/build index 214d88fff1..8532fe510d 100755 --- a/BaseTools/Bin/CYGWIN_NT-5.1-i686/build +++ b/BaseTools/Bin/CYGWIN_NT-5.1-i686/build @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/BinWrappers/PosixLike/BPDG b/BaseTools/BinWrappers/PosixLike/BPDG index 276c7ea207..e9f570b52c 100755 --- a/BaseTools/BinWrappers/PosixLike/BPDG +++ b/BaseTools/BinWrappers/PosixLike/BPDG @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/BinWrappers/PosixLike/Ecc b/BaseTools/BinWrappers/PosixLike/Ecc index 1142964028..ed4b7cd384 100755 --- a/BaseTools/BinWrappers/PosixLike/Ecc +++ b/BaseTools/BinWrappers/PosixLike/Ecc @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/BinWrappers/PosixLike/GenDepex b/BaseTools/BinWrappers/PosixLike/GenDepex index dad174788b..d99e54f222 100755 --- a/BaseTools/BinWrappers/PosixLike/GenDepex +++ b/BaseTools/BinWrappers/PosixLike/GenDepex @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/BinWrappers/PosixLike/GenFds b/BaseTools/BinWrappers/PosixLike/GenFds index 276c7ea207..e9f570b52c 100755 --- a/BaseTools/BinWrappers/PosixLike/GenFds +++ b/BaseTools/BinWrappers/PosixLike/GenFds @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/BinWrappers/PosixLike/GenPatchPcdTable b/BaseTools/BinWrappers/PosixLike/GenPatchPcdTable index 01ae23ddeb..d8b8b8f145 100755 --- a/BaseTools/BinWrappers/PosixLike/GenPatchPcdTable +++ b/BaseTools/BinWrappers/PosixLike/GenPatchPcdTable @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/BinWrappers/PosixLike/GenerateCapsule b/BaseTools/BinWrappers/PosixLike/GenerateCapsule index 59a6c8ba43..91bbd22738 100755 --- a/BaseTools/BinWrappers/PosixLike/GenerateCapsule +++ b/BaseTools/BinWrappers/PosixLike/GenerateCapsule @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/BinWrappers/PosixLike/PatchPcdValue b/BaseTools/BinWrappers/PosixLike/PatchPcdValue index 01ae23ddeb..d8b8b8f145 100755 --- a/BaseTools/BinWrappers/PosixLike/PatchPcdValue +++ b/BaseTools/BinWrappers/PosixLike/PatchPcdValue @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/BinWrappers/PosixLike/Pkcs7Sign b/BaseTools/BinWrappers/PosixLike/Pkcs7Sign index 01ae23ddeb..d8b8b8f145 100755 --- a/BaseTools/BinWrappers/PosixLike/Pkcs7Sign +++ b/BaseTools/BinWrappers/PosixLike/Pkcs7Sign @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/BinWrappers/PosixLike/Rsa2048Sha256GenerateKeys b/BaseTools/BinWrappers/PosixLike/Rsa2048Sha256GenerateKeys index 1bc1054a34..b42a126840 100755 --- a/BaseTools/BinWrappers/PosixLike/Rsa2048Sha256GenerateKeys +++ b/BaseTools/BinWrappers/PosixLike/Rsa2048Sha256GenerateKeys @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/BinWrappers/PosixLike/Rsa2048Sha256Sign b/BaseTools/BinWrappers/PosixLike/Rsa2048Sha256Sign index 01ae23ddeb..d8b8b8f145 100755 --- a/BaseTools/BinWrappers/PosixLike/Rsa2048Sha256Sign +++ b/BaseTools/BinWrappers/PosixLike/Rsa2048Sha256Sign @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/BinWrappers/PosixLike/TargetTool b/BaseTools/BinWrappers/PosixLike/TargetTool index 01ae23ddeb..d8b8b8f145 100755 --- a/BaseTools/BinWrappers/PosixLike/TargetTool +++ b/BaseTools/BinWrappers/PosixLike/TargetTool @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/BinWrappers/PosixLike/Trim b/BaseTools/BinWrappers/PosixLike/Trim index 6c8dde5bec..d64b834006 100755 --- a/BaseTools/BinWrappers/PosixLike/Trim +++ b/BaseTools/BinWrappers/PosixLike/Trim @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") exe=$(basename "$full_cmd") diff --git a/BaseTools/BinWrappers/PosixLike/UPT b/BaseTools/BinWrappers/PosixLike/UPT index 01ae23ddeb..d8b8b8f145 100755 --- a/BaseTools/BinWrappers/PosixLike/UPT +++ b/BaseTools/BinWrappers/PosixLike/UPT @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/BinWrappers/PosixLike/build b/BaseTools/BinWrappers/PosixLike/build index 01ae23ddeb..d8b8b8f145 100755 --- a/BaseTools/BinWrappers/PosixLike/build +++ b/BaseTools/BinWrappers/PosixLike/build @@ -1,11 +1,11 @@ #!/usr/bin/env bash #python `dirname $0`/RunToolFromSource.py `basename $0` $* -# If a python2 command is available, use it in preference to python -if command -v python2 >/dev/null 2>&1; then - python_exe=python2 +# If a ${PYTHON} command is available, use it in preference to python +if command -v ${PYTHON} >/dev/null 2>&1; then + python_exe=${PYTHON} fi full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here dir=$(dirname "$full_cmd") cmd=${full_cmd##*/} diff --git a/BaseTools/BinWrappers/WindowsLike/BPDG.bat b/BaseTools/BinWrappers/WindowsLike/BPDG.bat index 98095cfbd4..4a43e5353e 100644 --- a/BaseTools/BinWrappers/WindowsLike/BPDG.bat +++ b/BaseTools/BinWrappers/WindowsLike/BPDG.bat @@ -1,4 +1,4 @@ @setlocal @set ToolName=%~n0% @set PYTHONPATH=%PYTHONPATH%;%BASE_TOOLS_PATH%\Source\Python -@%PYTHON_HOME%\python.exe -m %ToolName%.%ToolName% %* +@%PYTHON% -m %ToolName%.%ToolName% %* diff --git a/BaseTools/BinWrappers/WindowsLike/Ecc.bat b/BaseTools/BinWrappers/WindowsLike/Ecc.bat index 8705e7541e..e63ef50135 100644 --- a/BaseTools/BinWrappers/WindowsLike/Ecc.bat +++ b/BaseTools/BinWrappers/WindowsLike/Ecc.bat @@ -1,4 +1,4 @@ @setlocal @set ToolName=%~n0% @set PYTHONPATH=%PYTHONPATH%;%BASE_TOOLS_PATH%\Source\Python -@%PYTHON_HOME%\python.exe -m %ToolName%.EccMain %* +@%PYTHON% -m %ToolName%.EccMain %* diff --git a/BaseTools/BinWrappers/WindowsLike/GenDepex.bat b/BaseTools/BinWrappers/WindowsLike/GenDepex.bat index ffc783d2be..6c7250f008 100644 --- a/BaseTools/BinWrappers/WindowsLike/GenDepex.bat +++ b/BaseTools/BinWrappers/WindowsLike/GenDepex.bat @@ -1,3 +1,3 @@ @setlocal @set ToolName=%~n0% -@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\AutoGen\%ToolName%.py %* +@%PYTHON% %BASE_TOOLS_PATH%\Source\Python\AutoGen\%ToolName%.py %* diff --git a/BaseTools/BinWrappers/WindowsLike/GenFds.bat b/BaseTools/BinWrappers/WindowsLike/GenFds.bat index 98095cfbd4..4a43e5353e 100644 --- a/BaseTools/BinWrappers/WindowsLike/GenFds.bat +++ b/BaseTools/BinWrappers/WindowsLike/GenFds.bat @@ -1,4 +1,4 @@ @setlocal @set ToolName=%~n0% @set PYTHONPATH=%PYTHONPATH%;%BASE_TOOLS_PATH%\Source\Python -@%PYTHON_HOME%\python.exe -m %ToolName%.%ToolName% %* +@%PYTHON% -m %ToolName%.%ToolName% %* diff --git a/BaseTools/BinWrappers/WindowsLike/GenPatchPcdTable.bat b/BaseTools/BinWrappers/WindowsLike/GenPatchPcdTable.bat index 9fbb704a6e..82e0a90d6c 100644 --- a/BaseTools/BinWrappers/WindowsLike/GenPatchPcdTable.bat +++ b/BaseTools/BinWrappers/WindowsLike/GenPatchPcdTable.bat @@ -1,3 +1,3 @@ @setlocal @set ToolName=%~n0% -@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %* +@%PYTHON% %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %* diff --git a/BaseTools/BinWrappers/WindowsLike/GenerateCapsule.bat b/BaseTools/BinWrappers/WindowsLike/GenerateCapsule.bat index ca442d181b..1ab7d33f98 100644 --- a/BaseTools/BinWrappers/WindowsLike/GenerateCapsule.bat +++ b/BaseTools/BinWrappers/WindowsLike/GenerateCapsule.bat @@ -1 +1 @@ -@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\Capsule\GenerateCapsule.py %* +@%PYTHON% %BASE_TOOLS_PATH%\Source\Python\Capsule\GenerateCapsule.py %* diff --git a/BaseTools/BinWrappers/WindowsLike/PatchPcdValue.bat b/BaseTools/BinWrappers/WindowsLike/PatchPcdValue.bat index 9fbb704a6e..82e0a90d6c 100644 --- a/BaseTools/BinWrappers/WindowsLike/PatchPcdValue.bat +++ b/BaseTools/BinWrappers/WindowsLike/PatchPcdValue.bat @@ -1,3 +1,3 @@ @setlocal @set ToolName=%~n0% -@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %* +@%PYTHON% %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %* diff --git a/BaseTools/BinWrappers/WindowsLike/Pkcs7Sign.bat b/BaseTools/BinWrappers/WindowsLike/Pkcs7Sign.bat index 9fbb704a6e..82e0a90d6c 100644 --- a/BaseTools/BinWrappers/WindowsLike/Pkcs7Sign.bat +++ b/BaseTools/BinWrappers/WindowsLike/Pkcs7Sign.bat @@ -1,3 +1,3 @@ @setlocal @set ToolName=%~n0% -@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %* +@%PYTHON% %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %* diff --git a/BaseTools/BinWrappers/WindowsLike/Rsa2048Sha256GenerateKeys.bat b/BaseTools/BinWrappers/WindowsLike/Rsa2048Sha256GenerateKeys.bat index df9336567c..32da349b31 100644 --- a/BaseTools/BinWrappers/WindowsLike/Rsa2048Sha256GenerateKeys.bat +++ b/BaseTools/BinWrappers/WindowsLike/Rsa2048Sha256GenerateKeys.bat @@ -1 +1 @@ -@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\Rsa2048Sha256Sign\Rsa2048Sha256GenerateKeys.py %* +@%PYTHON% %BASE_TOOLS_PATH%\Source\Python\Rsa2048Sha256Sign\Rsa2048Sha256GenerateKeys.py %* diff --git a/BaseTools/BinWrappers/WindowsLike/Rsa2048Sha256Sign.bat b/BaseTools/BinWrappers/WindowsLike/Rsa2048Sha256Sign.bat index 9fbb704a6e..82e0a90d6c 100644 --- a/BaseTools/BinWrappers/WindowsLike/Rsa2048Sha256Sign.bat +++ b/BaseTools/BinWrappers/WindowsLike/Rsa2048Sha256Sign.bat @@ -1,3 +1,3 @@ @setlocal @set ToolName=%~n0% -@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %* +@%PYTHON% %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %* diff --git a/BaseTools/BinWrappers/WindowsLike/TargetTool.bat b/BaseTools/BinWrappers/WindowsLike/TargetTool.bat index 9fbb704a6e..82e0a90d6c 100644 --- a/BaseTools/BinWrappers/WindowsLike/TargetTool.bat +++ b/BaseTools/BinWrappers/WindowsLike/TargetTool.bat @@ -1,3 +1,3 @@ @setlocal @set ToolName=%~n0% -@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %* +@%PYTHON% %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %* diff --git a/BaseTools/BinWrappers/WindowsLike/Trim.bat b/BaseTools/BinWrappers/WindowsLike/Trim.bat index 9fbb704a6e..82e0a90d6c 100644 --- a/BaseTools/BinWrappers/WindowsLike/Trim.bat +++ b/BaseTools/BinWrappers/WindowsLike/Trim.bat @@ -1,3 +1,3 @@ @setlocal @set ToolName=%~n0% -@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %* +@%PYTHON% %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %* diff --git a/BaseTools/BinWrappers/WindowsLike/UPT.bat b/BaseTools/BinWrappers/WindowsLike/UPT.bat index 9fbb704a6e..82e0a90d6c 100644 --- a/BaseTools/BinWrappers/WindowsLike/UPT.bat +++ b/BaseTools/BinWrappers/WindowsLike/UPT.bat @@ -1,3 +1,3 @@ @setlocal @set ToolName=%~n0% -@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %* +@%PYTHON% %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %* diff --git a/BaseTools/BinWrappers/WindowsLike/build.bat b/BaseTools/BinWrappers/WindowsLike/build.bat index 9fbb704a6e..82e0a90d6c 100644 --- a/BaseTools/BinWrappers/WindowsLike/build.bat +++ b/BaseTools/BinWrappers/WindowsLike/build.bat @@ -1,3 +1,3 @@ @setlocal @set ToolName=%~n0% -@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %* +@%PYTHON% %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %* diff --git a/BaseTools/Makefile b/BaseTools/Makefile index e6932c77c0..2569ea2ff4 100644 --- a/BaseTools/Makefile +++ b/BaseTools/Makefile @@ -18,19 +18,19 @@ SUBDIRS = $(BASE_TOOLS_PATH)\Source\C $(BASE_TOOLS_PATH)\Source\Python all: c c : - @$(PYTHON_HOME)\python.exe $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py all $(BASE_TOOLS_PATH)\Source\C + @$(PYTHON) $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py all $(BASE_TOOLS_PATH)\Source\C subdirs: $(SUBDIRS) - @$(PYTHON_HOME)\python.exe $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py all $** + @$(PYTHON) $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py all $** .PHONY: clean clean: - $(PYTHON_HOME)\python.exe $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py clean $(SUBDIRS) + $(PYTHON) $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py clean $(SUBDIRS) .PHONY: cleanall cleanall: - $(PYTHON_HOME)\python.exe $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py cleanall $(SUBDIRS) + $(PYTHON) $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py cleanall $(SUBDIRS) diff --git a/BaseTools/Source/C/Makefile b/BaseTools/Source/C/Makefile index 5806dcedd9..dd39661272 100644 --- a/BaseTools/Source/C/Makefile +++ b/BaseTools/Source/C/Makefile @@ -36,19 +36,19 @@ libs: $(LIBRARIES) @echo. @echo ###################### @echo # Build libraries @echo ###################### @if not exist $(LIB_PATH) mkdir $(LIB_PATH) - @$(PYTHON_HOME)\python.exe Makefiles\NmakeSubdirs.py all $** + @$(PYTHON) Makefiles\NmakeSubdirs.py all $** apps: $(APPLICATIONS) @echo. @echo ###################### @echo # Build executables @echo ###################### @if not exist $(BIN_PATH) mkdir $(BIN_PATH) - @$(PYTHON_HOME)\python.exe Makefiles\NmakeSubdirs.py all $** + @$(PYTHON) Makefiles\NmakeSubdirs.py all $** install: $(LIB_PATH) $(BIN_PATH) @echo. @echo ###################### @echo # Install to $(SYS_LIB_PATH) @@ -58,13 +58,13 @@ install: $(LIB_PATH) $(BIN_PATH) @-xcopy $(BIN_PATH)\*.exe $(SYS_BIN_PATH) /I /D /E /F /Y > NUL 2>&1 @-xcopy $(BIN_PATH)\*.bat $(SYS_BIN_PATH) /I /D /E /F /Y > NUL 2>&1 .PHONY: clean clean: - @$(PYTHON_HOME)\python.exe Makefiles\NmakeSubdirs.py clean $(LIBRARIES) $(APPLICATIONS) + @$(PYTHON) Makefiles\NmakeSubdirs.py clean $(LIBRARIES) $(APPLICATIONS) .PHONY: cleanall cleanall: - @$(PYTHON_HOME)\python.exe Makefiles\NmakeSubdirs.py cleanall $(LIBRARIES) $(APPLICATIONS) + @$(PYTHON) Makefiles\NmakeSubdirs.py cleanall $(LIBRARIES) $(APPLICATIONS) !INCLUDE Makefiles\ms.rule diff --git a/BaseTools/Tests/GNUmakefile b/BaseTools/Tests/GNUmakefile index 0c11f6aae9..d6f4e1908b 100644 --- a/BaseTools/Tests/GNUmakefile +++ b/BaseTools/Tests/GNUmakefile @@ -12,10 +12,10 @@ # all: test test: - @if command -v python2 >/dev/null 2>&1; then python2 RunTests.py; else python RunTests.py; fi + @if command -v $(PYTHON) >/dev/null 1; then $(PYTHON) RunTests.py; else python RunTests.py; fi clean: find . -name '*.pyc' -exec rm '{}' ';' diff --git a/BaseTools/toolsetup.bat b/BaseTools/toolsetup.bat index 1cac3105c2..811b23051f 100755 --- a/BaseTools/toolsetup.bat +++ b/BaseTools/toolsetup.bat @@ -272,40 +272,75 @@ goto check_build_environment echo. echo !!! ERROR !!! Binary C tools are missing. They are requried to be built from BaseTools Source. echo. :check_build_environment - set PYTHONHASHSEED=0 - if defined BASETOOLS_PYTHON_SOURCE goto VisualStudioAvailable + set PYTHONHASHSEED=1 if not defined BASE_TOOLS_PATH ( if not exist "Source\C\Makefile" ( if not exist "%EDK_TOOLS_PATH%\Source\C\Makefile" goto no_source_files set BASE_TOOLS_PATH=%EDK_TOOLS_PATH% ) else ( set BASE_TOOLS_PATH=%CD% ) ) - if not defined PYTHON_HOME ( - if defined PYTHONHOME ( - set PYTHON_HOME=%PYTHONHOME% - ) else ( +:defined_python +if defined PYTHON3_ENABLE ( + if "%PYTHON3_ENABLE%" EQU "TRUE" ( + set PYTHON=py -3 + %PYTHON% --version >NUL 2>&1 + if %ERRORLEVEL% NEQ 0 ( echo. - echo !!! ERROR !!! Binary python tools are missing. PYTHON_HOME environment variable is not set. - echo PYTHON_HOME is required to build or execute the python tools. + echo !!! ERROR !!! PYTHON3 is not installed or added to environment variables echo. goto end + ) else ( + goto check_freezer_path + ) + ) +) + +if defined PYTHON_HOME ( + if EXIST "%PYTHON_HOME%" ( + set PYTHON=%PYTHON_HOME%\python.exe + goto check_freezer_path + ) + ) +if defined PYTHONHOME ( + if EXIST "%PYTHONHOME%" ( + set PYTHON_HOME=%PYTHONHOME% + set PYTHON=%PYTHON_HOME%\python.exe + goto check_freezer_path ) ) + + echo. + echo !!! ERROR !!! Binary python tools are missing. + echo PYTHON_HOME or PYTHON3_ENABLE environment variable is not set successfully. + echo PYTHON_HOME or PYTHON3_ENABLE is required to build or execute the python tools. + echo. + goto end +:check_freezer_path + if defined BASETOOLS_PYTHON_SOURCE goto print_python_info set "PATH=%BASE_TOOLS_PATH%\BinWrappers\WindowsLike;%PATH%" set BASETOOLS_PYTHON_SOURCE=%BASE_TOOLS_PATH%\Source\Python set PYTHONPATH=%BASETOOLS_PYTHON_SOURCE%;%PYTHONPATH% +:print_python_info echo PATH = %PATH% - echo PYTHON_HOME = %PYTHON_HOME% + if "%PYTHON3_ENABLE%" EQU "TRUE" ( + echo PYTHON3_ENABLE = %PYTHON3_ENABLE% + echo PYTHON3 = %PYTHON% + ) else ( + echo PYTHON3_ENABLE = %PYTHON3_ENABLE% + if defined PYTHON_HOME ( + echo PYTHON_HOME = %PYTHON_HOME% + ) + ) echo PYTHONPATH = %PYTHONPATH% echo. :VisualStudioAvailable if not defined FORCE_REBUILD ( diff --git a/edksetup.sh b/edksetup.sh index 3dee8c5d61..06f95f4b9c 100755 --- a/edksetup.sh +++ b/edksetup.sh @@ -75,11 +75,11 @@ function SetWorkspace() # # Set $WORKSPACE # export WORKSPACE=`pwd` - export PYTHONHASHSEED=0 + export PYTHONHASHSEED=1 return 0 } function SetupEnv() { @@ -109,14 +109,63 @@ function SetupEnv() echo the EDK2 BuildEnv script. return 1 fi } +function SetupPython() +{ + if [ $PYTHON3_ENABLE ] && [ $PYTHON3_ENABLE == TRUE ] + then + for python in $(which python3) + do + python=$(echo $python | grep "[[:digit:]]$" || true) + python_version=${python##*python} + if [ -z "${python_version}" ];then + continue + fi + if [ -z $origin_version ];then + origin_version=$python_version + export PYTHON=$python + continue + fi + ret=`echo "$origin_version < $python_version" |bc` + if [ "$ret" -eq 1 ]; then + origin_version=$python_version + export PYTHON=$python + fi + done + fi + + if [ -z $PYTHON3_ENABLE ] || [ $PYTHON3_ENABLE != TRUE ] + then + for python in $(which python2) + do + python=$(echo $python | grep "[[:digit:]]$" || true) + python_version=${python##*python} + if [ -z "${python_version}" ];then + continue + fi + if [ -z $origin_version ] || [ $origin_version -ge 3 ] + then + origin_version=$python_version + export PYTHON=$python + continue + fi + ret=`echo "$origin_version < $python_version" |bc` + if [ "$ret" -eq 1 ]; then + origin_version=$python_version + export PYTHON=$python + fi + done + fi +} + function SourceEnv() { SetWorkspace && SetupEnv + SetupPython } I=$# while [ $I -gt 0 ] do -- 2.20.1.windows.1