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