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