]> git.proxmox.com Git - mirror_edk2.git/blame - Vlv2TbltDevicePkg/Build_IFWI.bat
Vlv2TbltDevicePkg: Add /y flag to generate report files
[mirror_edk2.git] / Vlv2TbltDevicePkg / Build_IFWI.bat
CommitLineData
3cbfba02
DW
1@REM @file\r
2@REM Windows batch file to build BIOS ROM\r
3@REM\r
4@REM Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>\r
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
15\r
16SetLocal EnableDelayedExpansion EnableExtensions\r
17\r
18@REM Go to root directory of the codebase.\r
19cd ..\r
20\r
21:: Assign initial values\r
22set exitCode=0\r
23set "Build_Flags= "\r
24set "Stitch_Flags= "\r
25set Arch=X64\r
26set PLATFORM_PACKAGE=Vlv2TbltDevicePkg\r
27set ROOT_DIR=%CD%\r
28\r
29:: Parse Optional arguments\r
30:OptLoop\r
31if /i "%~1"=="/?" goto Usage\r
32\r
33if /i "%~1"=="/q" (\r
34 set Build_Flags=%Build_Flags% /q\r
35 shift\r
36 goto OptLoop\r
37)\r
38if /i "%~1"=="/l" (\r
39 set Build_Flags=%Build_Flags% /l\r
40 shift\r
41 goto OptLoop\r
42)\r
eafde7a2
MK
43if /i "%~1"=="/y" (\r
44 set Build_Flags=%Build_Flags% /y\r
45 shift\r
46 goto OptLoop\r
47)\r
3cbfba02
DW
48if /i "%~1" == "/c" (\r
49 set Build_Flags=%Build_Flags% /c\r
50 shift\r
51 goto OptLoop\r
52)\r
53if /i "%~1" == "/ECP" (\r
54 set Build_Flags=%Build_Flags% /ecp\r
55 shift\r
56 goto OptLoop\r
57)\r
58\r
59if /i "%~1"=="/s" (\r
60 set Build_Flags=%Build_Flags% /s\r
61 shift\r
62 goto OptLoop\r
63)\r
64\r
65if /i "%~1"=="/x64" (\r
66 set Arch=X64\r
67 set Build_Flags=%Build_Flags% /x64\r
68 shift\r
69 goto OptLoop\r
70)\r
71\r
72if /i "%~1"=="/IA32" (\r
73 set Arch=IA32\r
74 set Build_Flags=%Build_Flags% /IA32\r
75 shift\r
76 goto OptLoop\r
77)\r
78\r
79if /i "%~1"=="/nG" (\r
80 set Stitch_Flags=%Stitch_Flags% /nG\r
81 shift\r
82 goto OptLoop\r
83)\r
84if /i "%~1"=="/nM" (\r
85 set Stitch_Flags=%Stitch_Flags% /nM\r
86 shift\r
87 goto OptLoop\r
88)\r
89if /i "%~1"=="/nB" (\r
90 set Stitch_Flags=%Stitch_Flags% /nB\r
91 shift\r
92 goto OptLoop\r
93)\r
83586b5d
TH
94if /i "%~1"=="/yL" (\r
95 set Stitch_Flags=%Stitch_Flags% /yL\r
96 shift\r
97 goto OptLoop\r
98)\r
99\r
3cbfba02
DW
100\r
101:: Require 2 input parameters\r
102if "%~2"=="" goto Usage\r
103\r
104:: Assign required arguments\r
105set Platform_Type=%~1\r
106set Build_Target=%~2\r
83586b5d 107\r
3cbfba02
DW
108if "%~3"=="" (\r
109 set "IFWI_Suffix= "\r
110) else set "IFWI_Suffix=/S %~3"\r
111\r
112:: Build BIOS\r
113echo ======================================================================\r
114echo Build_IFWI: Calling BIOS build Script...\r
115if "%Platform_Type%" == "BYTC" (\r
116 call %PLATFORM_PACKAGE%\bld_vlv_cr.bat %Build_Flags% %Platform_Type% %Build_Target%\r
117 \r
118) else (\r
119 call %PLATFORM_PACKAGE%\bld_vlv.bat %Build_Flags% %Platform_Type% %Build_Target%\r
120)\r
121if %ERRORLEVEL% NEQ 0 (\r
122 echo echo -- Error Building BIOS & echo.\r
123 set exitCode=1\r
124 goto exit\r
125)\r
126echo.\r
127echo Finished Building BIOS.\r
128@REM Set BIOS_ID environment variable here.\r
129call Conf\BiosId.bat\r
130echo BIOS_ID=%BIOS_ID%\r
131\r
132:: Set the Board_Id, Build_Type, Version_Major, and Version_Minor environment variables\r
133find /v "#" Conf\BiosId.env > ver_strings\r
134for /f "tokens=1,3" %%i in (ver_strings) do set %%i=%%j\r
135del /f/q ver_strings >nul\r
136set BIOS_Name=%BOARD_ID%_%Arch%_%BUILD_TYPE%_%VERSION_MAJOR%_%VERSION_MINOR%.ROM\r
137\r
138:: Start Integration process\r
139echo ======================================================================\r
140echo Build_IFWI: Calling IFWI Stitching Script...\r
141if "%Platform_Type%" == "BYTC" (\r
142 pushd %PLATFORM_PACKAGE%\Stitch_CR\r
143) else (\r
144 pushd %PLATFORM_PACKAGE%\Stitch\r
145)\r
146 :: IFWIStitch.bat [/nG] [/nM] [/nB] [/B BIOS.rom] [/C StitchConfig] [/S IFWISuffix]\r
147 call IFWIStitch.bat %Stitch_Flags% /B ..\..\%BIOS_Name% %IFWI_Suffix%\r
148 \r
149 @echo off\r
150popd\r
151if %ERRORLEVEL% NEQ 0 (\r
152 echo echo -- Error Stitching %BIOS_Nam% & echo.\r
153 set exitCode=1\r
154)\r
155echo.\r
156echo Build_IFWI is finished.\r
157echo The final IFWI file is located in %ROOT_DIR%\Vlv2TbltDevicePkg\Stitch\\r
158echo ======================================================================\r
159goto Exit\r
160\r
161:Usage\r
162echo Script to build BIOS firmware and stitch the entire IFWI.\r
163echo.\r
164echo Usage: Build_IFWI.bat [options] PlatformType BuildTarget [IFWI Suffix]\r
165echo.\r
3cbfba02 166echo /c CleanAll before building\r
3cbfba02
DW
167echo /x64 Set Arch to X64 (default: X64)\r
168echo /IA32 Set Arch to IA32 (default: X64)\r
83586b5d 169echo /yL Enable SPI lock\r
3cbfba02
DW
170echo. \r
171echo Platform Types: MNW2\r
172echo Build Targets: Release, Debug\r
173echo IFWI Suffix: Suffix to append to end of IFWI filename (default: MM_DD_YYYY)\r
174echo.\r
175echo See Stitch/Stitch_Config.txt for additional stitching settings.\r
176echo.\r
008e2ccf
JY
177echo If capsule update is needed, please update CAPSULE_ENABLE = TRUE in Config.dsc.\r
178echo If recovery is needed, please update RECOVERY_ENABLE = TRUE in Config.dsc.\r
179echo If either of above is TRUE, please set OPENSSL_PATH in windows evironment\r
180echo and put openssl.exe there, to generate final capsule image.\r
181echo.\r
3cbfba02
DW
182set exitCode=1\r
183\r
184:Exit\r
185@REM CD to platform package.\r
186cd %ROOT_DIR%\Vlv2TbltDevicePkg\r
187exit /b %exitCode%\r
188\r
189EndLocal\r