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