]> git.proxmox.com Git - mirror_edk2.git/blob - edksetup.bat
Code have been checked with spec
[mirror_edk2.git] / edksetup.bat
1 @REM @file
2 @REM Windows batch file to setup a WORKSPACE environment
3 @REM
4 @REM Copyright (c) 2006 - 2008, Intel Corporation
5 @REM All rights reserved. This program and the accompanying materials
6 @REM are licensed and made available under the terms and conditions of the BSD License
7 @REM which accompanies this distribution. The full text of the license may be found at
8 @REM http://opensource.org/licenses/bsd-license.php
9 @REM
10 @REM THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 @REM WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 @REM
13
14 @REM set following environment in this file or in command shell for the older,
15 @REM JAVA/Ant build
16 @REM set JAVA_HOME=C:\Java\jdk1.5.0_06
17 @REM set ANT_HOME=C:\ANT
18 @REM set XMLBEANS_HOME=C:\xmlbeans
19 @REM set CYGWIN_HOME=C:\cygwin
20
21 @REM usage:
22 @REM edksetup.bat [--nt32] [AntBuild] [Rebuild] [ForceRebuild] [Reconfig]
23 @REM if the argument, skip is present, only the paths and the
24 @REM test and set of environment settings are performed.
25
26 @REM ##############################################################
27 @REM # You should not have to modify anything below this line
28 @REM #
29
30 @echo off
31
32 @REM
33 @REM Set the WORKSPACE to the current working directory
34 @REM
35 pushd .
36 cd %~dp0
37 set WORKSPACE=%CD%
38
39 @if /I "%1"=="-h" goto Usage
40 @if /I "%1"=="-help" goto Usage
41 @if /I "%1"=="--help" goto Usage
42 @if /I "%1"=="/h" goto Usage
43 @if /I "%1"=="/?" goto Usage
44 @if /I "%1"=="/help" goto Usage
45
46 @if /I not "%1"=="--nt32" goto check_Ant_build
47
48 @REM Flag, --nt32 is set
49 @REM The Nt32 Emluation Platform requires Microsoft Libraries
50 @REM and headers to interface with Windows.
51
52 if not defined VCINSTALLDIR (
53 if defined VS71COMNTOOLS (
54 call "%VS71COMNTOOLS%\vsvars32.bat"
55 ) else (
56 if defined VS80COMNTOOLS (
57 call "%VS80COMNTOOLS%\vsvars32.bat"
58 ) else (
59 echo.
60 echo !!! WARNING !!! Cannot find Visual Studio !!!
61 echo.
62 )
63 )
64 )
65 shift
66
67 :check_Ant_build
68 @if /I "%1"=="AntBuild" goto AntBuild
69
70 @REM
71 @REM Default is new, Makefile Base Build
72 @REM
73
74 @if /I "%1"=="NewBuild" shift
75 @if not defined EDK_TOOLS_PATH set EDK_TOOLS_PATH=%WORKSPACE%\BaseTools
76 @IF NOT EXIST "%EDK_TOOLS_PATH%\toolsetup.bat" goto BadBaseTools
77 @call %EDK_TOOLS_PATH%\toolsetup.bat %*
78 @goto end
79
80 :BadBaseTools
81 @REM
82 @REM Need the BaseTools Package in order to build
83 @REM
84 echo.
85 echo !!! ERROR !!! The BaseTools Package was not found !!!
86 echo.
87 echo Set the system environment variable, EDK_TOOLS_PATH to the BaseTools,
88 echo For example,
89 echo set EDK_TOOLS_PATH=C:\MyTools\BaseTools
90 echo The setup script, toolsetup.bat must reside in this folder.
91 echo.
92 @goto end
93
94 @REM With the exception of the :end and :Usage tags, all information below
95 @REM these lines is for the JAVA/Ant Build!
96
97 :AntBuild
98 @REM
99 @REM Check the required system environment variables
100 @REM
101 @if /I "%1"=="AntBuild" shift
102
103 set FOUND="FALSE"
104 if exist "Tools\Jars" set FOUND="TRUE"
105 if exist "%EDK_TOOLS_PATH%\Tools\Jars" set FOUND="TRUE"
106 if %FOUND%=="FALSE" (
107 echo.
108 echo !!! ERROR !!! You have selected the Java/Ant build, however those tools
109 echo cannot be found in this WORKSPACE.
110 echo.
111 echo Please double check that the AntTools project is installed
112 echo in this WORKSPACE.
113 echo.
114 set FOUND=""
115 goto end
116 )
117 set FOUND=""
118
119 :check_vc
120 if defined VCINSTALLDIR goto check_cygwin
121 if defined VS71COMNTOOLS (
122 call "%VS71COMNTOOLS%\vsvars32.bat"
123 ) else (
124 echo.
125 echo !!! WARNING !!! Cannot find Visual Studio !!!
126 echo.
127 )
128
129 :check_cygwin
130 if defined CYGWIN_HOME goto check_java
131 if exist c:\cygwin (
132 set CYGWIN_HOME=c:\cygwin
133 ) else (
134 echo.
135 echo !!! WARNING !!! No CYGWIN_HOME set, gcc build may not be used !!!
136 echo.
137 )
138
139 :check_java
140 if "%JAVA_HOME%"=="" goto no_jdk
141
142 :check_ant
143 if "%ANT_HOME%"=="" goto no_ant
144 if not exist %ANT_HOME%\lib\ant-contrib.jar goto no_antcontrib
145
146 :check_xmlbeans
147 if "%XMLBEANS_HOME%"=="" goto no_xmlbeans
148 if not exist %XMLBEANS_HOME%\lib\saxon8.jar goto no_saxon8
149
150 set FRAMEWORK_TOOLS_PATH=%WORKSPACE%\Tools\bin
151
152 if not defined ORIGINAL_CLASSPATH set ORIGINAL_CLASSPATH=%CLASSPATH%
153 set CLASSPATH=%ORIGINAL_CLASSPATH%
154
155 if defined WORKSPACE_TOOLS_PATH goto check_path
156 set PATH=%FRAMEWORK_TOOLS_PATH%;%JAVA_HOME%\bin;%ANT_HOME%\bin;%XMLBEANS_HOME%\bin;%PATH%
157 set WORKSPACE_TOOLS_PATH=%FRAMEWORK_TOOLS_PATH%
158 echo Setting the PATH variable to include the FRAMEWORK_TOOLS_PATH for this WORKSPACE
159 goto path_ok
160
161 :check_path
162 if "%FRAMEWORK_TOOLS_PATH%"=="%WORKSPACE_TOOLS_PATH%" goto path_ok
163 set PATH=%FRAMEWORK_TOOLS_PATH%;%PATH%
164 set WORKSPACE_TOOLS_PATH=%WORKSPACE%\Tools\bin
165 echo Resetting the PATH variable to include the FRAMEWORK_TOOLS_PATH for this WORKSPACE
166
167 :path_ok
168
169 @if /I "%1"=="ForceRebuild" goto ForceBuild
170 @if /I "%1"=="Reconfig" goto Reconfig
171
172 @IF NOT EXIST "Tools\Jars\Common.jar" goto NormalBuild
173 @IF NOT EXIST "Tools\Jars\PcdTools.jar" goto NormalBuild
174 @IF NOT EXIST "Tools\Jars\GenBuild.jar" goto NormalBuild
175 @IF NOT EXIST "Tools\Jars\SurfaceArea.jar" goto NormalBuild
176 @IF NOT EXIST "Tools\Jars\cpptasks.jar" goto NormalBuild
177 @IF NOT EXIST "Tools\Jars\frameworktasks.jar" goto NormalBuild
178 @IF NOT EXIST "Tools\bin\FrameworkWizard.jar" goto NormalBuild
179 @IF NOT EXIST "Tools\bin\CompressDll.dll" goto NormalBuild
180 @IF NOT EXIST "Tools\bin\CompressDll.lib" goto NormalBuild
181 @IF NOT EXIST "Tools\bin\CreateMtFile.exe" goto NormalBuild
182 @IF NOT EXIST "Tools\bin\EfiCompress.exe" goto NormalBuild
183 @IF NOT EXIST "Tools\bin\EfiRom.exe" goto NormalBuild
184 @IF NOT EXIST "Tools\bin\FlashMap.exe" goto NormalBuild
185 @IF NOT EXIST "Tools\bin\FwImage.exe" goto NormalBuild
186 @IF NOT EXIST "Tools\bin\GenAcpiTable.exe" goto NormalBuild
187 @IF NOT EXIST "Tools\bin\GenCRC32Section.exe" goto NormalBuild
188 @IF NOT EXIST "Tools\bin\GenCapsuleHdr.exe" goto NormalBuild
189 @IF NOT EXIST "Tools\bin\GenDepex.exe" goto NormalBuild
190 @IF NOT EXIST "Tools\bin\GenFfsFile.exe" goto NormalBuild
191 @IF NOT EXIST "Tools\bin\GenFvImage.exe" goto NormalBuild
192 @IF NOT EXIST "Tools\bin\GenSection.exe" goto NormalBuild
193 @IF NOT EXIST "Tools\bin\GenTEImage.exe" goto NormalBuild
194 @IF NOT EXIST "Tools\bin\GuidChk.exe" goto NormalBuild
195 @IF NOT EXIST "Tools\bin\MakeDeps.exe" goto NormalBuild
196 @IF NOT EXIST "Tools\bin\ModifyInf.exe" goto NormalBuild
197 @IF NOT EXIST "Tools\bin\PeiRebase_Ia32.exe" goto NormalBuild
198 @IF NOT EXIST "Tools\bin\PeiRebase_Ipf.exe" goto NormalBuild
199 @IF NOT EXIST "Tools\bin\PeiRebase_X64.exe" goto NormalBuild
200 @IF NOT EXIST "Tools\bin\SecApResetVectorFixup.exe" goto NormalBuild
201 @IF NOT EXIST "Tools\bin\SecFixup.exe" goto NormalBuild
202 @IF NOT EXIST "Tools\bin\SetStamp.exe" goto NormalBuild
203 @IF NOT EXIST "Tools\bin\SplitFile.exe" goto NormalBuild
204 @IF NOT EXIST "Tools\bin\StrGather.exe" goto NormalBuild
205 @IF NOT EXIST "Tools\bin\Strip.exe" goto NormalBuild
206 @IF NOT EXIST "Tools\bin\VfrCompile.exe" goto NormalBuild
207 @IF NOT EXIST "Tools\bin\ZeroDebugData.exe" goto NormalBuild
208 @IF NOT EXIST "Tools\bin\antlr.exe" goto NormalBuild
209 @IF NOT EXIST "Tools\bin\dlg.exe" goto NormalBuild
210
211 @if /I "%1"=="Rebuild" goto NormalBuild
212 @if NOT "%1"=="" goto Usage
213
214 goto skipbuild
215
216 :ForceBuild
217 call ant -f %WORKSPACE%\Tools\build.xml -noclasspath cleanall
218
219 :NormalBuild
220 @REM
221 @REM Start to build the Framework Tools
222 @REM
223
224 echo.
225 echo Building the Framework Tools
226 echo.
227
228 @REM
229 @REM We are going to create the SurfaceArea.jar file first so that the other
230 @REM Java Programs can use it.
231 @REM It needs the XMLBEANS libraries in order to compile.
232 @REM
233 set CLASSPATH=%XMLBEANS_HOME%\lib;%CLASSPATH%
234 set CLASSPATH=%XMLBEANS_HOME%\lib\jsr173_1.0_api.jar;%CLASSPATH%
235 set CLASSPATH=%XMLBEANS_HOME%\lib\xbean.jar;%CLASSPATH%
236 set CLASSPATH=%XMLBEANS_HOME%\lib\xbean_xpath.jar;%CLASSPATH%
237 set CLASSPATH=%XMLBEANS_HOME%\lib\xmlpublic.jar;%CLASSPATH%
238 set CLASSPATH=%XMLBEANS_HOME%\lib\saxon8.jar;%CLASSPATH%
239 set CLASSPATH=%XMLBEANS_HOME%\lib\resolver.jar;%CLASSPATH%
240
241 call ant -f %WORKSPACE%\Tools\build.xml SurfaceArea
242
243 @REM
244 @REM Now we can make the other Java Programs
245 @REM All of the remaining Java Programs require the SurfaceArea library to compile
246 @REM
247 set CLASSPATH=%WORKSPACE%\Tools\Jars\SurfaceArea.jar;%CLASSPATH%
248
249 call ant -f %WORKSPACE%\Tools\build.xml JavaCode
250
251 @REM
252 @REM We have all of the Java Programs and add-in classes created, so we can start
253 @REM using the cpp-tasks to create our tools
254 @REM
255 set CLASSPATH=%WORKSPACE%\Tools\Jars\Common.jar;%CLASSPATH%
256 set CLASSPATH=%WORKSPACE%\Tools\Jars\PcdTools.jar;%CLASSPATH%
257 set CLASSPATH=%WORKSPACE%\Tools\Jars\GenBuild.jar;%CLASSPATH%
258 set CLASSPATH=%WORKSPACE%\Tools\Jars\cpptasks.jar;%CLASSPATH%
259 set CLASSPATH=%WORKSPACE%\Tools\Jars\frameworktasks.jar;%CLASSPATH%
260 set CLASSPATH=%WORKSPACE%\Tools\Bin\FrameworkWizard.jar;%CLASSPATH%
261 set CLASSPATH=%WORKSPACE%\Tools\Bin\MigrationTools.jar;%CLASSPATH%
262
263 call ant -f %WORKSPACE%\Tools\build.xml C_Code
264
265 @REM
266 @REM Done!!!
267 @REM
268 goto end
269
270 :no_jdk
271 echo.
272 echo !!! Please install Java, and set JAVA_HOME !!!
273 echo.
274 goto end
275
276 :no_ant
277 echo.
278 echo !!! Please install Apache Ant, and set ANT_HOME !!!
279 echo.
280 goto end
281
282 :no_antcontrib
283 echo.
284 echo !!! Please install Ant-contrib to ANT_HOME !!!
285 echo.
286 goto end
287
288 :no_xmlbeans
289 echo.
290 echo !!! Please install XML Beans, and set XMLBEANS_HOME !!!
291 echo.
292 goto end
293
294 :no_saxon8
295 echo.
296 echo !!! Please copy saxon8.jar file to XMLBEANS_HOME\lib !!!
297 echo.
298 goto end
299
300 :skipbuild
301 @REM
302 @REM This just sets up the CLASSPATH, the rest of the environment should have been set already.
303 @REM
304 echo.
305 echo WORKSPACE: %WORKSPACE%
306 echo JAVA_HOME: %JAVA_HOME%
307 echo ANT_HOME: %ANT_HOME%
308 echo XMLBEANS_HOME: %XMLBEANS_HOME%
309 echo CYGWIN_HOME: %CYGWIN_HOME%
310 echo PATH: %PATH%
311 echo.
312 set CLASSPATH=%XMLBEANS_HOME%\lib;%CLASSPATH%
313 set CLASSPATH=%XMLBEANS_HOME%\lib\jsr173_1.0_api.jar;%CLASSPATH%
314 set CLASSPATH=%XMLBEANS_HOME%\lib\xbean.jar;%CLASSPATH%
315 set CLASSPATH=%XMLBEANS_HOME%\lib\xbean_xpath.jar;%CLASSPATH%
316 set CLASSPATH=%XMLBEANS_HOME%\lib\xmlpublic.jar;%CLASSPATH%
317 set CLASSPATH=%XMLBEANS_HOME%\lib\saxon8.jar;%CLASSPATH%
318 set CLASSPATH=%XMLBEANS_HOME%\lib\saxon8-dom.jar;%CLASSPATH%
319 set CLASSPATH=%XMLBEANS_HOME%\lib\saxon8-xpath.jar;%CLASSPATH%
320 set CLASSPATH=%XMLBEANS_HOME%\lib\resolver.jar;%CLASSPATH%
321 set CLASSPATH=%WORKSPACE%\Tools\Jars\SurfaceArea.jar;%CLASSPATH%
322 set CLASSPATH=%WORKSPACE%\Tools\Jars\Common.jar;%CLASSPATH%
323 set CLASSPATH=%WORKSPACE%\Tools\Jars\PcdTools.jar;%CLASSPATH%
324 set CLASSPATH=%WORKSPACE%\Tools\Jars\GenBuild.jar;%CLASSPATH%
325 set CLASSPATH=%WORKSPACE%\Tools\Jars\cpptasks.jar;%CLASSPATH%
326 set CLASSPATH=%WORKSPACE%\Tools\Jars\frameworktasks.jar;%CLASSPATH%
327 set CLASSPATH=%WORKSPACE%\Tools\Bin\FrameworkWizard.jar;%CLASSPATH%
328 set CLASSPATH=%WORKSPACE%\Tools\Bin\MigrationTools.jar;%CLASSPATH%
329 echo CLASSPATH: %CLASSPATH%
330 goto end
331
332 :Reconfig
333 @REM
334 @REM Reinstall all config files
335 @REM
336 call ant -f %WORKSPACE%\Tools\build.xml reconfig
337 goto end
338
339 :Usage
340 echo.
341 echo Usage: "%0 [-h | -help | --help | /h | /help | /?] [--nt32] [AntBuild | Rebuild | ForceRebuild ] [Reconfig]"
342 echo --nt32 Call vsvars32.bat for NT32 platform build.
343 echo.
344 echo Rebuild If sources are available perform an Incremental build, only
345 echo build those updated tools.
346 echo ForceRebuild If sources are available, rebuild all tools regardless of
347 echo whether they have been updated or not.
348 echo Reconfig Reinstall target.txt, tools_def.txt and build_rule.txt.
349 echo.
350 echo JAVA/ANT Build
351 echo AntBuild Using older Java/ANT build tools in Tools directory.
352 echo Rebuild Incremental build, only build those updated tools.
353 echo ForceRebuild Rebuild all tools regardless of whether they have been updated or not.
354 echo Reconfig Reinstall target.txt, tools_def.txt and FrameworkDatabase.db.
355 echo.
356 echo Note that target.template, tools_def.template, build_rules.template and the
357 echo FrameworkDatabase.template will be only copied to target.txt, tools_def.txt, build_rule.txt and
358 echo FrameworkDatabase.db respectively if they do not exist. Using option [Reconfig] to force the copy.
359 echo.
360 @goto end
361
362 :end
363 @popd
364 @echo on
365