317 lines
13 KiB
Plaintext
317 lines
13 KiB
Plaintext
@REM
|
|
@REM Project setup batch file
|
|
@REM
|
|
@REM ******************************************************************************
|
|
@REM * Copyright (c) 2018 - 2021, Insyde Software Corp. All Rights Reserved.
|
|
@REM *
|
|
@REM * You may not reproduce, distribute, publish, display, perform, modify, adapt,
|
|
@REM * transmit, broadcast, present, recite, release, license or otherwise exploit
|
|
@REM * any part of this publication in any form, by any means, without the prior
|
|
@REM * written permission of Insyde Software Corporation.
|
|
@REM *
|
|
@REM ******************************************************************************
|
|
|
|
@echo off
|
|
|
|
REM ---------------------------------------------------------------------------------------------
|
|
REM Auto setting of WORKSPACE environment variable
|
|
REM ---------------------------------------------------------------------------------------------
|
|
pushd \ && set ROOT_DIR=%cd% && popd && pushd .
|
|
:SetWorkSpace
|
|
if "%cd%" == "%ROOT_DIR%" goto Next
|
|
cd ..
|
|
if not exist %cd%\BaseTools goto SetWorkSpace
|
|
set WORKSPACE=%cd%
|
|
:Next
|
|
set ROOT_DIR= && popd
|
|
%WORKSPACE%\BaseTools\Bin\Win32\GetProjectEnv WORKSPACE > NUL && for /f %%i in ('%WORKSPACE%\BaseTools\Bin\Win32\GetProjectEnv WORKSPACE') do set %%i
|
|
REM ---------------------------------------------------------------------------------------------
|
|
REM Set PACKAGES_PATH here to specify multiple workspaces.
|
|
REM ---------------------------------------------------------------------------------------------
|
|
set PACKAGES_PATH=^
|
|
%WORKSPACE%\Board\Intel;^
|
|
%WORKSPACE%\Intel\AlderLake;^
|
|
%WORKSPACE%\Intel\AlderLake\Features;^
|
|
%WORKSPACE%\Intel\AlderLake\Features\Audio;^
|
|
%WORKSPACE%\Intel\AlderLake\Features\Storage;^
|
|
%WORKSPACE%\Intel\AlderLake\Features\Manageability;^
|
|
%WORKSPACE%\Intel\Edk2Platforms;^
|
|
%WORKSPACE%\Intel\Edk2Platforms\Platform\Intel;^
|
|
%WORKSPACE%\Intel\Edk2Platforms\Silicon\Intel;^
|
|
%WORKSPACE%\Intel\Edk2Platforms\Features\Intel\Debugging;^
|
|
%WORKSPACE%\Intel\Edk2Platforms\Features\Intel\UserInterface;^
|
|
%WORKSPACE%\Intel\Edk2Platforms\Features\Intel;^
|
|
%WORKSPACE%\Insyde;^
|
|
%WORKSPACE%\EDK2
|
|
|
|
|
|
@REM ---------------------------------------------------------------------------------------------
|
|
@REM Support Module build
|
|
@REM Build command sample:
|
|
@REM build -q -p ..\Build\AlderLakePMultiBoardPkg\Project.dsc -m InsydeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/GenericMemoryTestDxe.inf
|
|
@REM ---------------------------------------------------------------------------------------------
|
|
%WORKSPACE%\BaseTools\Bin\Win32\GetProjectEnv PROJECT_PKG > NUL && for /f %%i in ('%WORKSPACE%\BaseTools\Bin\Win32\GetProjectEnv PROJECT_PKG') do set %%i
|
|
|
|
REM ---------------------------------------------------------------------------------------------
|
|
REM Project dependent parameters
|
|
REM ---------------------------------------------------------------------------------------------
|
|
%WORKSPACE%\BaseTools\Bin\Win32\GetProjectEnv CHIPSET_PKG > NUL && for /f %%a in ('%WORKSPACE%\BaseTools\Bin\Win32\GetProjectEnv CHIPSET_PKG') do set %%a
|
|
%WORKSPACE%\BaseTools\Bin\Win32\GetProjectEnv PROJECT_REL_PATH > NUL && for /f %%a in ('%WORKSPACE%\BaseTools\Bin\Win32\GetProjectEnv PROJECT_REL_PATH') do set %%a
|
|
%WORKSPACE%\BaseTools\Bin\Win32\GetProjectEnv CHIPSET_REL_PATH > NUL && for /f %%a in ('%WORKSPACE%\BaseTools\Bin\Win32\GetProjectEnv CHIPSET_REL_PATH') do set %%a
|
|
REM set TOOL_CHAIN=CLANGPDB
|
|
set ASL_PATH=%WORKSPACE%\%CHIPSET_REL_PATH%\%CHIPSET_PKG%\Tools\Bin\Win32
|
|
set ARCH=IA32 X64
|
|
set EFI_SOURCE_DIR=InsydeModulePkg
|
|
set PYTHON_DIR=%LOCALAPPDATA%\Programs\Python\Python38-32
|
|
set PATH=%PYTHON_DIR%;%PATH%
|
|
|
|
set PLATFORM_TYPE=AlderLakeP
|
|
set EXT_BUILD_FLAGS=-D PROJECT_PKG_ROOT=%PROJECT_PKG%
|
|
set CrbBuild=YES
|
|
@REM[-start-200917-IB06462159-add]REM
|
|
set PLATFORM_FSP_BIN_PACKAGE=AlderLakePFspBinPkg
|
|
@REM[-end-200917-IB06462159-add]REM
|
|
|
|
|
|
@REM !!! Don't set the NativeFsp and NativeFspVersion flag directly,
|
|
@REM !!! You should control the PCD of PcdNativeFspBuild instead of NativeFsp flag and the PCD of PcdNativeFspVersion is the same.
|
|
set NativeFsp=NO
|
|
set NativeFspVersion=
|
|
|
|
@rem for /f "tokens=2 delims=|" %%a in ('find "gChipsetPkgTokenSpaceGuid.PcdNativeFspVersion" Project.dsc') do set NativeFspVersion=%%a
|
|
@rem echo test2
|
|
@rem echo %NativeFspVersion%
|
|
for /f tokens^=2^ delims^=^" %%a in ('find "gChipsetPkgTokenSpaceGuid.PcdNativeFspVersion" Project.dsc') do set NativeFspVersion=%%a
|
|
|
|
findstr /C:"gChipsetPkgTokenSpaceGuid.PcdNativeFspBuild|TRUE" %WORKSPACE%\%PROJECT_REL_PATH%\%PROJECT_PKG%\Project.dsc >nul
|
|
if not errorlevel 1 set NativeFsp=YES
|
|
if %NativeFsp% equ NO goto NoCheckNativeFspBin
|
|
|
|
if not exist "%WORKSPACE%\%CHIPSET_REL_PATH%\%PLATFORM_FSP_BIN_PACKAGE%\NativeFspRelease\%NativeFspVersion%\Fsp.fd" (
|
|
echo !!! ERROR !!! NativeFsp = YES !!!
|
|
echo !!! ERROR !!! NativeFsp version %NativeFspVersion% Binary not exist!!!
|
|
pause
|
|
)
|
|
:NoCheckNativeFspBin
|
|
|
|
REM ---------------------------------------------------------------------------------------------
|
|
REM AlderLake P relative parameters
|
|
REM ---------------------------------------------------------------------------------------------
|
|
@findstr /C:"gSiPkgTokenSpaceGuid.PcdAdlLpSupport|TRUE" %WORKSPACE%\%PROJECT_REL_PATH%\%PROJECT_PKG%\PlatformPkgConfigOverride.dsc >nul
|
|
@if errorlevel 1 (
|
|
@echo ^gSiPkgTokenSpaceGuid.PcdAdlLpSupport^|TRUE >> %WORKSPACE%\%PROJECT_REL_PATH%\%PROJECT_PKG%\PlatformPkgConfigOverride.dsc
|
|
)
|
|
@findstr /C:"gSiPkgTokenSpaceGuid.PcdITbtEnable|TRUE" %WORKSPACE%\%PROJECT_REL_PATH%\%PROJECT_PKG%\PlatformPkgConfigOverride.dsc >nul
|
|
@if errorlevel 1 (
|
|
@echo ^gSiPkgTokenSpaceGuid.PcdITbtEnable^|TRUE >> %WORKSPACE%\%PROJECT_REL_PATH%\%PROJECT_PKG%\PlatformPkgConfigOverride.dsc
|
|
)
|
|
|
|
REM ---------------------------------------------------------------------------------------------
|
|
REM Check tool chain
|
|
REM ---------------------------------------------------------------------------------------------
|
|
:Check_signtool
|
|
set BIOS_GUARD=NO
|
|
set CHASMFALLGEN2=NO
|
|
for /f "tokens=4" %%a in ('find "BIOS_GUARD_SUPPORT" Project.env') do if %%a==YES set BIOS_GUARD=YES
|
|
|
|
findstr /C:"gChipsetPkgTokenSpaceGuid.PcdChasmFallsSupport|2" %WORKSPACE%\%PROJECT_REL_PATH%\%PROJECT_PKG%\Project.dsc >nul
|
|
if not errorlevel 1 set CHASMFALLGEN2=YES
|
|
|
|
if %BIOS_GUARD% equ NO goto End_SignTool_Check
|
|
if %CHASMFALLGEN2% equ NO goto End_SignTool_Check
|
|
set SIGNTOOL_FOUND=NO
|
|
set INSYDE_SIGNER_FOUND=NO
|
|
set SIGNER_CHIPSET_PATH=%WORKSPACE%\%CHIPSET_REL_PATH%\%CHIPSET_PKG%\Tools\Bin\Win32\Signer
|
|
set SIGNER_PATH=DEVTLS\SignTool
|
|
set SIGNER_PRESET_PATH=C:\%SIGNER_PATH%;D:\%SIGNER_PATH%;E:\%SIGNER_PATH%;F:\%SIGNER_PATH%;G:\%SIGNER_PATH%;H:\%SIGNER_PATH%;%SIGNER_CHIPSET_PATH%
|
|
set PATH=%SIGNER_PRESET_PATH%;%PATH%
|
|
signtool /? 2>nul
|
|
if not errorlevel 1 goto SignTool_Found
|
|
|
|
:SignTool_NotFound
|
|
start /WAIT CautionSiger.bat
|
|
echo.
|
|
call :ColorText 0c "Build code process has been terminated due to SignTool is missing!"
|
|
echo.
|
|
echo.
|
|
exit /b
|
|
|
|
:SignTool_Found
|
|
echo.
|
|
call :ColorText 0b "SignTool Found!"
|
|
echo.
|
|
echo.
|
|
:End_SignTool_Check
|
|
|
|
:Check_OpenSSL_tool
|
|
set CHASMFALLGEN0=NO
|
|
findstr /C:"gChipsetPkgTokenSpaceGuid.PcdChasmFallsSupport|0" %WORKSPACE%\%PROJECT_REL_PATH%\%PROJECT_PKG%\Project.dsc >nul
|
|
if not errorlevel 1 set CHASMFALLGEN0=YES
|
|
for /f "tokens=4" %%a in ('find "BOOT_GUARD_SUPPORT" Project.env') do if %%a==NO (if %CHASMFALLGEN0% equ YES goto Check_OpenSSL_End)
|
|
@REM Check 1. Does OpenSSL already exist and tool PATH is ready
|
|
echo Check OpenSSL:
|
|
@openssl version 2>nul
|
|
@if not errorlevel 1 goto OpenSSL_Found
|
|
|
|
@REM Check 2. Set the preset PATH to environment and try
|
|
set OPENSSL_PRESET_PATH=C:\OpenSSL-Win32\bin;C:\Program Files (x86)\OpenSSL-Win32\bin;
|
|
set OPENSSL_PRESET_PATH=%OPENSSL_PRESET_PATH%;C:\OpenSSL-Win64\bin;C:\Program Files\OpenSSL-Win64\bin;
|
|
set OPENSSL_PRESET_PATH=%OPENSSL_PRESET_PATH%;C:\OpenSSL\bin;%WORKSPACE%\%CHIPSET_REL_PATH%\%CHIPSET_PKG%\Tools\OpenSSl;
|
|
set SSL_DIR=DEVTLS\OpenSSL
|
|
set OPENSSL_PRESET_PATH=%OPENSSL_PRESET_PATH%;C:\%SSL_DIR%;D:\%SSL_DIR%;E:\%SSL_DIR%;F:\%SSL_DIR%;G:\%SSL_DIR%;H:\%SSL_DIR%;
|
|
set PATH=%OPENSSL_PRESET_PATH%;%PATH%
|
|
@openssl version 2>nul
|
|
@if not errorlevel 1 goto OpenSSL_Found
|
|
|
|
:OpenSSL_Not_Found
|
|
start /WAIT Caution.bat
|
|
echo.
|
|
call :ColorText 0c "Build code process has been terminated due to OpenSSL is missing!"
|
|
echo.
|
|
echo.
|
|
exit /b
|
|
|
|
:ColorText
|
|
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & for %%b in (1) do rem"') do (
|
|
set "TempToDel=%%a"
|
|
)
|
|
<nul set /p ".=%TempToDel%" > "%~2"
|
|
findstr /v /a:%1 /R "^$" "%~2" nul
|
|
del "%~2" > nul 2>&1
|
|
goto :eof
|
|
|
|
:OpenSSL_Found
|
|
echo.
|
|
call :ColorText 0b "OpenSSL Found!"
|
|
echo.
|
|
echo.
|
|
:Check_OpenSSL_End
|
|
|
|
:CBnT_Check
|
|
@REM Check Intel Converged Boot Guard and Trusted Execution Technologies
|
|
set TXT_SUPPORT=NO
|
|
set BOOT_GUARD_SUPPORT=NO
|
|
|
|
for /f "tokens=4" %%a in ('find "TXT_SUPPORT" Project.env') do if %%a==YES set TXT_SUPPORT=YES
|
|
for /f "tokens=4" %%a in ('find "BOOT_GUARD_SUPPORT" Project.env') do if %%a==YES set BOOT_GUARD_SUPPORT=YES
|
|
|
|
@REM For CBnT, the Boot Policy Manifest is updated to add a new TXT Element (_TXTE_), which is used to provide additional information needed for TXT functionality
|
|
@REM The TXT Element is optional, and if not defined, all of its fields are assumed to have default values.
|
|
@if /I %BOOT_GUARD_SUPPORT%==NO (
|
|
@if /I %TXT_SUPPORT%==YES (
|
|
echo.
|
|
echo.
|
|
call :ColorText 0c " Intel Converged Boot Guard and Trusted Execution Technologie"
|
|
echo.
|
|
call :ColorText 0c " TXT need fill in _TXTE_ information in BIOS"
|
|
echo.
|
|
call :ColorText 0c " Please Enable Boot Guard in Project.env"
|
|
echo.
|
|
echo.
|
|
echo.
|
|
exit /b
|
|
)
|
|
)
|
|
|
|
@if not defined TOOL_CHAIN (
|
|
REM ---------------------------------------------------------------------------------------------
|
|
REM @echo Check the DEVTLS environment.
|
|
REM ---------------------------------------------------------------------------------------------
|
|
set TOOL_DIR=DEVTLS\MSVC16
|
|
call :CheckDevtlsPath C:
|
|
call :CheckDevtlsPath D:
|
|
call :CheckDevtlsPath E:
|
|
call :CheckDevtlsPath F:
|
|
call :CheckDevtlsPath G:
|
|
call :CheckDevtlsPath H:
|
|
)
|
|
|
|
if defined TOOL_CHAIN_DRV (
|
|
set TOOL_CHAIN=DEVTLS_VC16
|
|
goto KernelEnvSetting
|
|
)
|
|
|
|
@if defined TOOL_CHAIN goto KernelEnvSetting
|
|
|
|
@if not defined TOOL_CHAIN (
|
|
REM ---------------------------------------------------------------------------------------------
|
|
REM @echo check VS2017~ environment from vswhere
|
|
REM ---------------------------------------------------------------------------------------------
|
|
IF EXIST "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" (
|
|
call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" > Output
|
|
FOR /f "usebackq tokens=1* delims=: " %%i IN (Output) do (
|
|
IF /i "%%i"=="installationVersion" (
|
|
IF %%j GTR 16 (
|
|
REM ---------------------------------------------------------------------------------------------
|
|
REM @echo Select the VS2019 environment.
|
|
REM ---------------------------------------------------------------------------------------------
|
|
set TOOL_CHAIN=VS2019
|
|
goto KernelEnvSetting
|
|
) ELSE IF %%j GTR 15 (
|
|
REM ---------------------------------------------------------------------------------------------
|
|
REM @echo Select the VS2017 environment.
|
|
REM ---------------------------------------------------------------------------------------------
|
|
set TOOL_CHAIN=VS2017x86
|
|
goto KernelEnvSetting
|
|
)
|
|
)
|
|
)
|
|
) ELSE IF exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" (
|
|
call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" > Output
|
|
FOR /f "usebackq tokens=1* delims=: " %%i IN (Output) do (
|
|
IF /i "%%i"=="installationVersion" (
|
|
IF %%j GTR 16 (
|
|
REM ---------------------------------------------------------------------------------------------
|
|
REM @echo Select the VS2019 environment.
|
|
REM ---------------------------------------------------------------------------------------------
|
|
set TOOL_CHAIN=VS2019
|
|
goto KernelEnvSetting
|
|
) ELSE IF %%j GTR 15 (
|
|
REM ---------------------------------------------------------------------------------------------
|
|
REM @echo Select the VS2017 environment.
|
|
REM ---------------------------------------------------------------------------------------------
|
|
set TOOL_CHAIN=VS2017x86
|
|
goto KernelEnvSetting
|
|
)
|
|
)
|
|
)
|
|
)
|
|
if defined VS140COMNTOOLS (
|
|
REM ---------------------------------------------------------------------------------------------
|
|
REM @echo Select the VS2015 environment.
|
|
REM ---------------------------------------------------------------------------------------------
|
|
set TOOL_CHAIN=VS2015x86
|
|
goto KernelEnvSetting
|
|
)
|
|
)
|
|
|
|
:ErrorHandle
|
|
REM If Visual Studio 2019 was not detected, return an error.
|
|
@if not defined TOOL_CHAIN (
|
|
echo.
|
|
echo !!! ERROR !!! Visual Studio 2019 not installed correctly!!!
|
|
echo.
|
|
pause
|
|
goto :EOF
|
|
)
|
|
|
|
:CheckDevtlsPath
|
|
if not DEFINED TOOL_CHAIN_DRV (
|
|
if exist "%1\%TOOL_DIR%" set TOOL_CHAIN_DRV=%1
|
|
)
|
|
goto :EOF
|
|
|
|
:KernelEnvSetting
|
|
call %WORKSPACE%\BaseTools\H2ORev50.bat
|
|
|
|
@if not defined PYTHON_COMMAND (
|
|
set PYTHON_COMMAND=py -3
|
|
)
|
|
%PYTHON_COMMAND% --version
|
|
if not %ERRORLEVEL% == 0 (
|
|
@echo ERROR - Python is not found at %PYTHON_COMMAND% and py -3 is invalid
|
|
@echo.
|
|
@echo !! The EDKII BIOS build has failed in ProjectSetup!
|
|
@echo.
|
|
@exit /b 1
|
|
) |