]> git.proxmox.com Git - mirror_edk2.git/blame - Vlv2TbltDevicePkg/bld_vlv.bat
Vlv2TbltDevicePkg: Fix build failure issue after ECP cleanup
[mirror_edk2.git] / Vlv2TbltDevicePkg / bld_vlv.bat
CommitLineData
3cbfba02
DW
1@REM @file\r
2@REM Windows batch file to build BIOS ROM\r
3@REM\r
46002a4a 4@REM Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
3cbfba02
DW
5@REM This program and the accompanying materials\r
6@REM are licensed and made available under the terms and conditions of the BSD License\r
7@REM which accompanies this distribution. The full text of the license may be found at\r
8@REM http://opensource.org/licenses/bsd-license.php\r
9@REM\r
10@REM THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11@REM WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12@REM\r
13\r
14@echo off\r
15setlocal EnableDelayedExpansion EnableExtensions\r
16echo.\r
17echo %date% %time%\r
18echo.\r
19\r
46002a4a 20\r
3cbfba02
DW
21::**********************************************************************\r
22:: Initial Setup\r
23::**********************************************************************\r
46002a4a
ZS
24set WORKSPACE=%CD%\r
25if %WORKSPACE:~-1%==\ set WORKSPACE=%WORKSPACE:~0,-1%\r
3cbfba02
DW
26set /a build_threads=1\r
27set "Build_Flags= "\r
28set exitCode=0\r
29set Arch=X64\r
30set Source=0\r
46002a4a
ZS
31set CORE_PATH=%WORKSPACE%\edk2\r
32set PLATFORM_PATH=%WORKSPACE%\edk2\r
33set PACKAGES_PATH=%WORKSPACE%\edk2-non-osi\Silicon\Intel;%WORKSPACE%\edk2\r
34cd ./edk2\r
3cbfba02
DW
35\r
36:: Clean up previous build files.\r
46002a4a
ZS
37if exist %CORE_PATH%\edk2.log del %CORE_PATH%\edk2.log\r
38if exist %CORE_PATH%\unitool.log del %CORE_PATH%\unitool.log\r
39if exist %CORE_PATH%\Conf\target.txt del %CORE_PATH%\Conf\target.txt\r
40if exist %CORE_PATH%\Conf\tools_def.txt del %CORE_PATH%\Conf\tools_def.txt\r
41if exist %CORE_PATH%\Conf\build_rule.txt del %CORE_PATH%\Conf\build_rule.txt\r
42if exist %CORE_PATH%\Conf\FrameworkDatabase.db del %CORE_PATH%\Conf\FrameworkDatabase.db\r
43if exist conf\.cache rmdir /q/s conf\.cache\r
3cbfba02
DW
44\r
45:: Setup EDK environment. Edksetup puts new copies of target.txt, tools_def.txt, build_rule.txt in WorkSpace\Conf\r
46:: Also run edksetup as soon as possible to avoid it from changing environment variables we're overriding\r
46002a4a 47call %CORE_PATH%\edksetup.bat Rebuild\r
3cbfba02
DW
48@echo off\r
49\r
50:: Define platform specific environment variables.\r
46002a4a
ZS
51set PLATFORM_NAME=Vlv2TbltDevicePkg\r
52set PLATFORM_PACKAGE=%PLATFORM_PATH%\Vlv2TbltDevicePkg\r
53set config_file=%PLATFORM_PACKAGE%\PlatformPkgConfig.dsc\r
54set auto_config_inc=%PLATFORM_PACKAGE%\AutoPlatformCFG.txt\r
55\r
3cbfba02 56\r
3cbfba02
DW
57\r
58::create new AutoPlatformCFG.txt file\r
59copy /y nul %auto_config_inc% >nul\r
60\r
61::**********************************************************************\r
62:: Parse command line arguments\r
63::**********************************************************************\r
64\r
65:: Optional arguments\r
66:OptLoop\r
67if /i "%~1"=="/?" goto Usage\r
68\r
69if /i "%~1"=="/l" (\r
46002a4a 70 set Build_Flags=%Build_Flags% -j EDK2.log\r
eafde7a2
MK
71 shift\r
72 goto OptLoop\r
73)\r
74if /i "%~1"=="/y" (\r
75 set Build_Flags=%Build_Flags% -y %PLATFORM_PACKAGE%\EDK2_%PLATFORM_PACKAGE%.report\r
3cbfba02
DW
76 shift\r
77 goto OptLoop\r
78)\r
eae631bc
MK
79if /i "%~1"=="/m" (\r
80 if defined NUMBER_OF_PROCESSORS (\r
81 set /a build_threads=%NUMBER_OF_PROCESSORS%+1\r
82 )\r
83 shift\r
84 goto OptLoop\r
85)\r
3cbfba02
DW
86if /i "%~1" == "/c" (\r
87 echo Removing previous build files ...\r
88 if exist build (\r
e2c32486 89 del /f/s/q build > nul\r
3cbfba02
DW
90 rmdir /s/q build\r
91 )\r
92 if exist conf\.cache (\r
e2c32486 93 del /f/s/q conf\.cache > nul\r
3cbfba02
DW
94 rmdir /s/q conf\.cache\r
95 )\r
96 echo.\r
97 shift\r
98 goto OptLoop\r
99)\r
100\r
101if /i "%~1"=="/x64" (\r
102 set Arch=X64\r
103 shift\r
104 goto OptLoop\r
105)\r
106if /i "%~1"=="/IA32" (\r
107 set Arch=IA32\r
108 shift\r
109 goto OptLoop\r
110)\r
111\r
112:: Required argument(s)\r
113if "%~1"=="" goto Usage\r
114\r
115::Remove the values for Platform_Type and Build_Target from BiosIdX.env and stage in Conf\\r
116if "%Arch%"=="IA32" (\r
46002a4a 117 findstr /b /v "BOARD_ID BUILD_TYPE" %PLATFORM_PACKAGE%\BiosIdR.env > Conf\BiosId.env\r
3cbfba02
DW
118 echo DEFINE X64_CONFIG = FALSE >> %auto_config_inc%\r
119) else if "%Arch%"=="X64" (\r
46002a4a 120 findstr /b /v "BOARD_ID BUILD_TYPE" %PLATFORM_PACKAGE%\BiosIdx64R.env > Conf\BiosId.env\r
3cbfba02
DW
121 echo DEFINE X64_CONFIG = TRUE >> %auto_config_inc%\r
122)\r
123\r
124:: -- Build flags settings for each Platform --\r
125echo Setting %1 platform configuration and BIOS ID...\r
126if /i "%~1" == "MNW2" (\r
46002a4a 127 echo BOARD_ID = MNW2MAX >> %Conf\BiosId.env\r
3cbfba02
DW
128 echo DEFINE ENBDT_PF_BUILD = TRUE >> %auto_config_inc%\r
129 \r
130) else (\r
131 echo Error - Unsupported PlatformType: %1\r
132 goto Usage\r
133)\r
134set Platform_Type=%~1\r
135\r
136if /i "%~2" == "RELEASE" (\r
137 set target=RELEASE\r
46002a4a 138 echo BUILD_TYPE = R >> Conf\BiosId.env\r
3cbfba02
DW
139) else (\r
140 set target=DEBUG\r
46002a4a 141 echo BUILD_TYPE = D >> Conf\BiosId.env\r
3cbfba02
DW
142)\r
143\r
144::**********************************************************************\r
12f3447c
MK
145:: Additional EDK Build Setup/Configuration\r
146::**********************************************************************\r
147echo.\r
46002a4a 148echo Setting the Build environment for VS2015/VS2013/VS2012/VS2010/VS2008...\r
12f3447c
MK
149if defined VS140COMNTOOLS (\r
150 if not defined VSINSTALLDIR call "%VS140COMNTOOLS%\vsvars32.bat"\r
151 if /I "%VS140COMNTOOLS%" == "C:\Program Files\Microsoft Visual Studio 14.0\Common7\Tools\" (\r
152 set TOOL_CHAIN_TAG=VS2015\r
6e4c9170 153 ) else (\r
12f3447c 154 set TOOL_CHAIN_TAG=VS2015x86\r
46002a4a 155 ) \r
12f3447c
MK
156) else if defined VS120COMNTOOLS (\r
157 if not defined VSINSTALLDIR call "%VS120COMNTOOLS%\vsvars32.bat"\r
158 if /I "%VS120COMNTOOLS%" == "C:\Program Files\Microsoft Visual Studio 12.0\Common7\Tools\" (\r
159 set TOOL_CHAIN_TAG=VS2013\r
160 ) else (\r
161 set TOOL_CHAIN_TAG=VS2013x86\r
6e4c9170
BC
162 )\r
163) else if defined VS110COMNTOOLS (\r
164 if not defined VSINSTALLDIR call "%VS110COMNTOOLS%\vsvars32.bat"\r
165 if /I "%VS110COMNTOOLS%" == "C:\Program Files\Microsoft Visual Studio 11.0\Common7\Tools\" (\r
166 set TOOL_CHAIN_TAG=VS2012\r
167 ) else (\r
168 set TOOL_CHAIN_TAG=VS2012x86\r
169 )\r
12f3447c
MK
170) else if defined VS100COMNTOOLS (\r
171 if not defined VSINSTALLDIR call "%VS100COMNTOOLS%\vsvars32.bat"\r
172 if /I "%VS100COMNTOOLS%" == "C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\" (\r
173 set TOOL_CHAIN_TAG=VS2010\r
6e4c9170 174 ) else (\r
12f3447c
MK
175 set TOOL_CHAIN_TAG=VS2010x86\r
176 )\r
177) else if defined VS90COMNTOOLS (\r
178 if not defined VSINSTALLDIR call "%VS90COMNTOOLS%\vsvars32.bat"\r
179 if /I "%VS90COMNTOOLS%" == "C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\" (\r
180 set TOOL_CHAIN_TAG=VS2008\r
181 ) else (\r
182 set TOOL_CHAIN_TAG=VS2008x86\r
6e4c9170 183 )\r
12f3447c 184) else (\r
46002a4a 185 echo --ERROR: VS2015/VS2013/VS2012/VS2010/VS2008 not installed correctly. VS140COMNTOOLS/VS120COMNTOOLS/VS110COMNTOOLS/VS100COMNTOOLS/VS90COMNTOOLS not defined ^^!\r
6e4c9170
BC
186 echo.\r
187 goto :BldFail\r
12f3447c 188)\r
3cbfba02
DW
189\r
190echo Ensuring correct build directory is present for GenBiosId...\r
46002a4a 191set BUILD_PATH=Build\%PLATFORM_NAME%\%TARGET%_%TOOL_CHAIN_TAG%\r
3cbfba02
DW
192\r
193echo Modifing Conf files for this build...\r
194:: Remove lines with these tags from target.txt\r
46002a4a 195findstr /V "TARGET TARGET_ARCH TOOL_CHAIN_TAG BUILD_RULE_CONF ACTIVE_PLATFORM MAX_CONCURRENT_THREAD_NUMBER" Conf\target.txt > Conf\target.txt.tmp\r
3cbfba02 196\r
46002a4a 197echo TARGET = %TARGET% >> Conf\target.txt.tmp\r
3cbfba02 198if "%Arch%"=="IA32" (\r
46002a4a 199 echo TARGET_ARCH = IA32 >> Conf\target.txt.tmp\r
3cbfba02 200) else if "%Arch%"=="X64" (\r
46002a4a 201 echo TARGET_ARCH = IA32 X64 >> Conf\target.txt.tmp\r
3cbfba02 202)\r
46002a4a
ZS
203echo TOOL_CHAIN_TAG = %TOOL_CHAIN_TAG% >> Conf\target.txt.tmp\r
204echo BUILD_RULE_CONF = Conf/build_rule.txt >> Conf\target.txt.tmp\r
3cbfba02 205if %Source% == 0 (\r
46002a4a 206 echo ACTIVE_PLATFORM = %PLATFORM_PACKAGE%/PlatformPkg%Arch%.dsc >> Conf\target.txt.tmp\r
3cbfba02 207) else (\r
46002a4a 208 echo ACTIVE_PLATFORM = %PLATFORM_PACKAGE%/PlatformPkg%Arch%Source.dsc >> Conf\target.txt.tmp\r
3cbfba02 209)\r
46002a4a 210echo MAX_CONCURRENT_THREAD_NUMBER = %build_threads% >> Conf\target.txt.tmp\r
3cbfba02 211\r
46002a4a 212move /Y Conf\target.txt.tmp Conf\target.txt >nul\r
3cbfba02
DW
213\r
214::**********************************************************************\r
215:: Build BIOS\r
216::**********************************************************************\r
217\r
218echo Creating BiosId...\r
219pushd %PLATFORM_PACKAGE%\r
46002a4a
ZS
220if not exist %WORKSPACE%\%BUILD_PATH%\IA32 mkdir %WORKSPACE%\%BUILD_PATH%\IA32\r
221 GenBiosId.exe -i %CORE_PATH%\Conf\BiosId.env -o %WORKSPACE%\%BUILD_PATH%\IA32\BiosId.bin -ob %CORE_PATH%\Conf\BiosId.bat\r
3cbfba02 222if "%Arch%"=="X64" (\r
46002a4a
ZS
223 if not exist %WORKSPACE%\%BUILD_PATH%\X64 mkdir %WORKSPACE%\%BUILD_PATH%\X64\r
224 GenBiosId.exe -i %CORE_PATH%\Conf\BiosId.env -o %WORKSPACE%\%BUILD_PATH%\X64\BiosId.bin -ob %CORE_PATH%\Conf\BiosId.bat\r
3cbfba02
DW
225)\r
226popd\r
227\r
228\r
229if %ERRORLEVEL% NEQ 0 goto BldFail\r
230\r
231echo.\r
232echo Invoking EDK2 build...\r
6f514143 233call build %Build_Flags%\r
3cbfba02
DW
234\r
235if %ERRORLEVEL% NEQ 0 goto BldFail\r
236\r
237::**********************************************************************\r
238:: Post Build processing and cleanup\r
239::**********************************************************************\r
240\r
241echo Running fce...\r
242\r
243pushd %PLATFORM_PACKAGE%\r
244:: Extract Hii data from build and store in HiiDefaultData.txt\r
46002a4a 245fce read -i %WORKSPACE%\%BUILD_PATH%\FV\Vlv.fd > %WORKSPACE%\%BUILD_PATH%\FV\HiiDefaultData.txt\r
3cbfba02 246\r
620f2891 247:: save changes to VlvXXX.fd\r
46002a4a 248fce update -i %WORKSPACE%\%BUILD_PATH%\FV\Vlv.fd -s %WORKSPACE%\%BUILD_PATH%\FV\HiiDefaultData.txt -o %WORKSPACE%\%BUILD_PATH%\FV\Vlv%Arch%.fd\r
3cbfba02
DW
249popd\r
250\r
251if %ERRORLEVEL% NEQ 0 goto BldFail\r
252::echo FD successfully updated with default Hii values.\r
253\r
254:: Set the Board_Id, Build_Type, Version_Major, and Version_Minor environment variables\r
46002a4a 255find /v "#" Conf\BiosId.env > ver_strings\r
3cbfba02
DW
256for /f "tokens=1,3" %%i in (ver_strings) do set %%i=%%j\r
257del /f/q ver_strings >nul\r
258\r
259set BIOS_Name=%BOARD_ID%_%Arch%_%BUILD_TYPE%_%VERSION_MAJOR%_%VERSION_MINOR%.ROM\r
46002a4a
ZS
260copy /y/b %WORKSPACE%\%BUILD_PATH%\FV\Vlv%Arch%.fd %PLATFORM_PATH%\%BIOS_Name% >nul\r
261copy /y/b %WORKSPACE%\%BUILD_PATH%\FV\Vlv%Arch%.fd %WORKSPACE%\%BUILD_PATH%\FV\Vlv.ROM >nul\r
3cbfba02
DW
262\r
263echo.\r
264echo Build location: %BUILD_PATH%\r
265echo BIOS ROM Created: %BIOS_Name%\r
266echo.\r
267echo -------------------- The EDKII BIOS build has successfully completed. --------------------\r
268echo.\r
12057760
JY
269\r
270@REM build capsule here\r
46002a4a
ZS
271@REMif "%openssl_path%" == "" (\r
272@REM echo -- Error: OPENSSL_PATH not set. Capule and Recovery images not generated.\r
273@REM set exitCode=1\r
274@REM goto Exit\r
275@REM\r
276@REM echo > %BUILD_PATH%\FV\SYSTEMFIRMWAREUPDATECARGO.Fv\r
277@REM build -p %PLATFORM_PACKAGE%\PlatformCapsule.dsc\r
12057760 278\r
3cbfba02
DW
279goto Exit\r
280\r
281:Usage\r
282echo.\r
283echo ***************************************************************************\r
284echo Build BIOS rom for VLV platforms.\r
285echo.\r
286echo Usage: bld_vlv.bat [options] PlatformType [Build Target]\r
287echo.\r
288echo /c CleanAll before building\r
eafde7a2
MK
289echo /l Generate build log file\r
290echo /y Generate build report file\r
eae631bc 291echo /m Enable multi-processor build\r
3cbfba02
DW
292echo /IA32 Set Arch to IA32 (default: X64)\r
293echo /X64 Set Arch to X64 (default: X64)\r
294echo.\r
295echo Platform Types: MNW2\r
296echo Build Targets: Debug, Release (default: Debug)\r
297echo.\r
298echo Examples:\r
299echo bld_vlv.bat MNW2 : X64 Debug build for MinnowMax\r
300echo bld_vlv.bat /IA32 MNW2 release : IA32 Release build for MinnowMax\r
301echo.\r
302echo ***************************************************************************\r
303set exitCode=1\r
304goto Exit\r
305\r
306:BldFail\r
307set exitCode=1\r
308echo -- Error: EDKII BIOS Build has failed!\r
309echo See EDK2.log for more details\r
310\r
311:Exit\r
312echo %date% %time%\r
313exit /b %exitCode%\r
314\r
315EndLocal\r