ICE_TEA_BIOS/Board/Oem/L05AlderLakePMultiBoardPkg/BuildFsp.cmd

340 lines
11 KiB
Batchfile

@REM
@REM FSP build batch file
@REM
@REM ******************************************************************************
@REM * Copyright (c) 2018 - 2019, 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 ******************************************************************************
@REM Copyright (c) 2013 - 2016, Intel Corporation. All rights reserved.
@REM This software and associated documentation (if any) is furnished
@REM under a license and may only be used or copied in accordance
@REM with the terms of the license. Except as permitted by such
@REM license, no part of this software or documentation may be
@REM reproduced, stored in a retrieval system, or transmitted in any
@REM form or by any means without the express written consent of
@REM Intel Corporation.
@echo off
if "%~1" == "/?" goto USAGE
if "%~1" == "/h" goto USAGE
@set NOTIMESTAMP=1
setlocal enableextensions enabledelayedexpansion
set BUILD_ARGS=%*
set WORKSPACE_CORE=%WORKSPACE%\Edk2
set WORKSPACE_EDK_PLATFORM=%WORKSPACE%\Intel\Edk2Platforms
set TOOL_CHAIN_TAG=%TOOL_CHAIN%
set PROJECT_PKG_BAK=%PROJECT_PKG%
rem Perform pre-build
rem -----------------
rem Remove shifted arguments by reconstructing BUILD_ARGS
rem -----------------------------------------------------
set BUILD_ARGS=AlderLakeP
:CONSTRUCT_BUILD_ARGS_LOOP
if "%~1"=="" goto CONSTRUCT_BUILD_ARGS_CONTINUE
if /i "notimestamp" == "%1" (
set NOTIMESTAMP=1
) else (
set BUILD_ARGS=%BUILD_ARGS% %1
)
shift
goto CONSTRUCT_BUILD_ARGS_LOOP
:CONSTRUCT_BUILD_ARGS_CONTINUE
call :PREBUILD
if not %ERRORLEVEL% == 0 goto DIE
rem Build package
rem -------------
rem Find build script.
set BUILD_TARGET=%CHIPSET_REL_PATH%\AlderLakeFspPkg\BuildFv.cmd
if not exist %WORKSPACE%\%BUILD_TARGET% (
echo ERROR: Unable to find '%BUILD_TARGET%'.
goto DIE
)
@if exist %WORKSPACE%\Conf\.cache @rd %WORKSPACE%\Conf\.cache /s /q
@if exist %WORKSPACE%\Build\AlderLakeFspPkg\*.* @rd %WORKSPACE%\Build\AlderLakeFspPkg\ /s /q
set PROJECT_PKG=DUMMY
@if "%WORKSPACE:~-1%"==":" ( pushd %WORKSPACE%\ ) ELSE ( pushd %WORKSPACE% )
call %WORKSPACE%\%BUILD_TARGET% %BUILD_ARGS%
popd
if not %ERRORLEVEL% == 0 goto DIE
rem Perform post-build
rem ------------------
call :POSTBUILD %BUILD_ARGS%
if not %ERRORLEVEL% == 0 goto DIE
rem Done
rem ----
goto END
rem Store target for later
echo Setting default target to '%TARGET%'.
echo %TARGET%>%DEFAULT_TARGET_FILE%
set TARGET=
goto END
:POSTBUILD
rem ---------------------------------------------------------------------------
rem Perform post-build actions
rem ---------------------------------------------------------------------------
rem echo Performing post-build actions.
rem
if /I "%1"=="/clean" goto END
echo - PostBuild Done -
echo =============================================================
echo == Build FSP Done ==
echo == ==
echo == ==
echo == ==
echo == ==
echo == ==
echo == ==
echo =============================================================
goto END
@REM
@REM Backward Compatibility End
@REM
:PREBUILD
@if not defined WORKSPACE (
call %~dp0\EdkSetup.bat
)
set WORKSPACE_PLATFORM=%WORKSPACE%
set WORKSPACE_SILICON=%WORKSPACE%\%CHIPSET_REL_PATH%
@REM set PACKAGES_PATH=%WORKSPACE_CORE%;%WORKSPACE_PLATFORM%;%WORKSPACE_SILICON%
@REM
@REM Check for Python support
@REM
set PYTHON_MIN_VERSION=(2,5)
call :FIND_PYTHON
if not %ERRORLEVEL% == 0 goto DIE
@REM
@REM Setup Visual Studio environment. Order of presedence is 2015, 2013, 2012, 2010 and then 2008.
@REM
@REM NOTE: To override presedence set TOOL_CHAIN_TAG before calling.
@REM Example: set TOOL_CHAIN_TAG=VS2008
@REM
@REM Check if tool chain has not been selected and Visual Studio 2015 is installed.
@if not defined TOOL_CHAIN_TAG (
if defined VS140COMNTOOLS (
set TOOL_CHAIN_TAG=VS2015
)
)
@REM If Visual Studio 2015 is selected by priority or by preference, setup the environment variables.
@if /I "%TOOL_CHAIN_TAG%"=="VS2015" (
echo.
echo Prebuild: Set the VS2015 environment.
echo.
if not defined VSINSTALLDIR call "%VS140COMNTOOLS%\vsvars32.bat"
if /I "%VS140COMNTOOLS%" == "C:\Program Files\Microsoft Visual Studio 14.0\Common7\Tools\" (
set TOOL_CHAIN_TAG=VS2015
) else (
set TOOL_CHAIN_TAG=VS2015x86
)
)
@REM Check if tool chain has not been selected and Visual Studio 2013 is installed.
@if not defined TOOL_CHAIN_TAG (
if defined VS120COMNTOOLS (
set TOOL_CHAIN_TAG=VS2013
)
)
@REM If Visual Studio 2013 is selected by priority or by preference, setup the environment variables.
@if /I "%TOOL_CHAIN_TAG%"=="VS2013" (
echo.
echo Prebuild: Set the VS2013 environment.
echo.
if not defined VSINSTALLDIR call "%VS120COMNTOOLS%\vsvars32.bat"
if /I "%VS120COMNTOOLS%" == "C:\Program Files\Microsoft Visual Studio 12.0\Common7\Tools\" (
set TOOL_CHAIN_TAG=VS2013
) else (
set TOOL_CHAIN_TAG=VS2013x86
)
)
@REM Check if tool chain has not been selected and Visual Studio 2012 is installed.
@if not defined TOOL_CHAIN_TAG (
if defined VS110COMNTOOLS (
set TOOL_CHAIN_TAG=VS2012
)
)
@REM If Visual Studio 2012 is selected by priority or by preference, setup the environment variables.
@if /I "%TOOL_CHAIN_TAG%"=="VS2012" (
echo.
echo Prebuild: Set the VS2012 environment.
echo.
if not defined VSINSTALLDIR call "%VS110COMNTOOLS%\vsvars32.bat"
if /I "%VS110COMNTOOLS%" == "C:\Program Files\Microsoft Visual Studio 11.0\Common7\Tools\" (
set TOOL_CHAIN_TAG=VS2012
) else (
set TOOL_CHAIN_TAG=VS2012x86
)
)
@REM Check if tool chain has not been selected and Visual Studio 2010 is installed.
@if not defined TOOL_CHAIN_TAG (
if defined VS100COMNTOOLS (
set TOOL_CHAIN_TAG=VS2010
)
)
@REM If Visual Studio 2010 is selected by priority or by preference, setup the environment variables.
@if /I "%TOOL_CHAIN_TAG%"=="VS2010" (
echo.
echo Prebuild: Set the VS2010 environment.
echo.
if not defined VSINSTALLDIR call "%VS100COMNTOOLS%\vsvars32.bat"
if /I "%VS100COMNTOOLS%" == "C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\" (
set TOOL_CHAIN_TAG=VS2010
) else (
set TOOL_CHAIN_TAG=VS2010x86
)
)
@REM Check if tool chain has not been selected and Visual Studio 2008 is installed.
@if not defined TOOL_CHAIN_TAG (
if defined VS90COMNTOOLS (
set TOOL_CHAIN_TAG=VS2008
)
)
@REM If Visual Studio 2008 is selected by priority or by preference, setup the environment variables.
@if /I "%TOOL_CHAIN_TAG%"=="VS2008" (
echo.
echo Prebuild: Set the VS2008 environment.
echo.
if not defined VSINSTALLDIR call "%VS90COMNTOOLS%\vsvars32.bat"
if /I "%VS90COMNTOOLS%" == "C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\" (
set TOOL_CHAIN_TAG=VS2008
) else (
set TOOL_CHAIN_TAG=VS2008x86
)
)
@REM If no supported version of Visual Studio was detected, return an error.
@if not defined TOOL_CHAIN_TAG (
echo.
echo !!! ERROR !!! Visual Studio not installed correctly!!!
echo.
exit /b 1
)
goto END
:FIND_PYTHON
rem ---------------------------------------------------------------------------
rem Looks for Python installed on the system.
rem ---------------------------------------------------------------------------
set PYTHON_DEF_EXE=python.exe
set PYTHON_EXE=
set PYTHON_DIR=
set PYTHON_FOUND_IN_PATH=0
rem Check the standard installation location for Python 2.7
if exist C:\Python27\%PYTHON_DEF_EXE% (
set PYTHON_EXE=C:\Python27\%PYTHON_DEF_EXE%
)
if defined PYTHON_EXE goto FIND_PYTHON_FOUND
rem Check the standard installation location for Python 2.6
if exist C:\Python26\%PYTHON_DEF_EXE% (
set PYTHON_EXE=C:\Python26\%PYTHON_DEF_EXE%
)
if defined PYTHON_EXE goto FIND_PYTHON_FOUND
rem Check the standard installation location for Python 2.5
if exist C:\Python25\%PYTHON_DEF_EXE% (
set PYTHON_EXE=C:\Python25\%PYTHON_DEF_EXE%
)
if defined PYTHON_EXE goto FIND_PYTHON_FOUND
rem Check the PATH environment variable
for %%X in (%PYTHON_DEF_EXE%) do (set PYTHON_EXE=%%~$PATH:X)
if defined PYTHON_EXE (
set PYTHON_FOUND_IN_PATH=1
goto FIND_PYTHON_FOUND
)
rem Python not found
echo Error: %PYTHON_DEF_EXE% could not be located on this system. If^
Python has been installed to a nonstandard location (the typical installation^
location is C:\Python25\%PYTHON_DEF_EXE%), ensure that the directory^
containing the Python executable has been added to the PATH environment^
variable.
call :FIND_PYTHON_CLEANUP
goto DIE
:FIND_PYTHON_FOUND
echo Python was found at '%PYTHON_EXE%'.
call :PYTHON_VERSION_TEST "%PYTHON_EXE%" "%PYTHON_MIN_VERSION%"
if not %ERRORLEVEL% == 0 (
echo Error: The version of Python installed on this system at^
'%PYTHON_EXE%' is too old to run necessary scripts. Please upgrade^
your Python installation to version !PYTHON_MIN_VERSION! or newer.
call :FIND_PYTHON_CLEANUP
goto DIE
)
rem Add Python to the PATH if necessary
if not %PYTHON_FOUND_IN_PATH% == 0 goto FIND_PYTHON_CLEANUP
for %%X in (%PYTHON_EXE%) do set PYTHON_DIR=%%~pdX
set PATH=%PATH%;%PYTHON_DIR%
:FIND_PYTHON_CLEANUP
set PYTHON_DEF_EXE=
set PYTHON_DEF_DIR=
set PYTHON_EXE=
set PYTHON_DIR=
set PYTHON_FOUND_IN_PATH=
goto END
:PYTHON_VERSION_TEST
rem ---------------------------------------------------------------------------
rem Test the Python executable %1 for version >= %2.
rem ---------------------------------------------------------------------------
%1 -c "import sys; sys.exit(sys.version_info<%~2)"
if not %ERRORLEVEL% == 0 goto DIE
goto END
:USAGE
rem ---------------------------------------------------------------------------
rem Print usage and exit
rem ---------------------------------------------------------------------------
echo Usage:
echo BuildFsp [/h ^| /? ^| /r ^| /d ^| /ddt ^| /clean | notimestamp]
echo.
goto END
:DIE
rem ---------------------------------------------------------------------------
rem Exit returning a failure error code
rem ---------------------------------------------------------------------------
set PROJECT_PKG=%PROJECT_PKG_BAK%
exit /B 1
:END
rem ---------------------------------------------------------------------------
rem Exit returning a success error code
rem ---------------------------------------------------------------------------
set PROJECT_PKG=%PROJECT_PKG_BAK%
exit /B 0