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