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