Added test to ensure that the only options that can be used are the help optiops...
[mirror_edk2.git] / edksetup.bat
CommitLineData
878ddf1f 1@REM\r
2@REM Copyright (c) 2006, Intel Corporation\r
3@REM All rights reserved. This program and the accompanying materials\r
4@REM are licensed and made available under the terms and conditions of the BSD License\r
5@REM which accompanies this distribution. The full text of the license may be found at\r
6@REM http://opensource.org/licenses/bsd-license.php\r
a29212b2 7@REM\r
878ddf1f 8@REM THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
9@REM WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
10@REM\r
11\r
12@REM set following environment in this file or in command shell\r
13@REM set JAVA_HOME=C:\Java\jdk1.5.0_04\r
a29212b2 14@REM set ANT_HOME=C:\ANT\r
15@REM set XMLBEANS_HOME=C:\xmlbeans\r
16@REM set CYGWIN_HOME=C:\cygwin\r
878ddf1f 17\r
11f009f1 18@REM usage: edksetup.bat [Rebuild] [ForceRebuild]\r
302e0e4a 19@REM if the argument, skip is present, only the paths and the\r
20@REM test and set of environment settings are performed. \r
878ddf1f 21\r
22@REM ##############################################################\r
23@REM # You should not have to modify anything below this line\r
24@REM #\r
25\r
26@echo off\r
27\r
a29212b2 28@REM\r
29@REM Check the required system environment variables\r
30@REM\r
31\r
878ddf1f 32:check_vc\r
a29212b2 33if defined VCINSTALLDIR goto check_cygwin\r
878ddf1f 34if defined VS71COMNTOOLS (\r
b0108f04 35 call "%VS71COMNTOOLS%\vsvars32.bat"\r
878ddf1f 36) else (\r
37 echo.\r
38 echo !!! WARNING !!!! Cannot find Visual Studio !!!\r
39 echo.\r
40)\r
41\r
a29212b2 42:check_cygwin\r
43if defined CYGWIN_HOME goto check_java\r
44if exist c:\cygwin (\r
45 set CYGWIN_HOME=c:\cygwin\r
42b67fc4 46) else (\r
a29212b2 47 echo.\r
48 echo !!! WARNING !!!! Not set CYGWIN_HOME, gcc build may not be used !!!\r
49 echo.\r
878ddf1f 50)\r
51\r
a29212b2 52:check_java\r
53if "%JAVA_HOME%"=="" goto no_jdk\r
54\r
55:check_ant\r
02996846 56if "%ANT_HOME%"=="" goto no_ant\r
42b67fc4 57if not exist %ANT_HOME%\lib\ant-contrib.jar goto no_antcontrib\r
58\r
a29212b2 59:check_xmlbeans\r
02996846 60if "%XMLBEANS_HOME%"=="" goto no_xmlbeans\r
a29212b2 61if not exist %XMLBEANS_HOME%\lib\saxon8.jar goto no_saxon8\r
878ddf1f 62\r
a29212b2 63@REM\r
64@REM Set the WORKSPACE to the current working directory\r
65@REM\r
66set WORKSPACE=%CD%\r
878ddf1f 67\r
2da8968b 68set FRAMEWORK_TOOLS_PATH=%WORKSPACE%\Tools\bin\r
6de5f959 69\r
70if defined WORKSPACE_TOOLS_PATH goto check_path\r
71set PATH=%FRAMEWORK_TOOLS_PATH%;%JAVA_HOME%\bin;%ANT_HOME%\bin;%XMLBEANS_HOME%\bin;%PATH%\r
72set WORKSPACE_TOOLS_PATH=%FRAMEWORK_TOOLS_PATH%\r
11f009f1 73echo Setting the PATH variable to include the FRAMEWORK_TOOLS_PATH for this WORKSPACE\r
6de5f959 74goto path_ok\r
75\r
76:check_path\r
77if "%FRAMEWORK_TOOLS_PATH%"=="%WORKSPACE_TOOLS_PATH%" goto path_ok\r
78set PATH=%FRAMEWORK_TOOLS_PATH%;%PATH%\r
79set WORKSPACE_PATH=%WORKSPACE%\r
11f009f1 80echo Resetting the PATH variable to include the FRAMEWORK_TOOLS_PATH for this WORKSPACE\r
6de5f959 81\r
82:path_ok\r
83\r
70edbc34 84@if "%1"=="-h" goto Usage\r
85@if "%1"=="-help" goto Usage\r
86@if "%1"=="--help" goto Usage\r
87@if "%1"=="/h" goto Usage\r
88@if "%1"=="/?" goto Usage\r
89@if "%1"=="/help" goto Usage\r
90\r
91@IF NOT EXIST "Tools\Jars\Common.jar" goto NormalBuild\r
92@IF NOT EXIST "Tools\Jars\GenBuild.jar" goto NormalBuild\r
93@IF NOT EXIST "Tools\Jars\SurfaceArea.jar" goto NormalBuild\r
94@IF NOT EXIST "Tools\Jars\cpptasks.jar" goto NormalBuild\r
95@IF NOT EXIST "Tools\Jars\frameworktasks.jar" goto NormalBuild\r
96@IF NOT EXIST "Tools\bin\FrameworkWizard.jar" goto NormalBuild\r
97@IF NOT EXIST "Tools\bin\CompressDll.dll" goto NormalBuild\r
98@IF NOT EXIST "Tools\bin\CompressDll.lib" goto NormalBuild\r
99@IF NOT EXIST "Tools\bin\CreateMtFile.exe" goto NormalBuild\r
100@IF NOT EXIST "Tools\bin\EfiCompress.exe" goto NormalBuild\r
101@IF NOT EXIST "Tools\bin\EfiRom.exe" goto NormalBuild\r
102@IF NOT EXIST "Tools\bin\FlashMap.exe" goto NormalBuild\r
103@IF NOT EXIST "Tools\bin\FwImage.exe" goto NormalBuild\r
104@IF NOT EXIST "Tools\bin\GenAcpiTable.exe" goto NormalBuild\r
105@IF NOT EXIST "Tools\bin\GenCRC32Section.exe" goto NormalBuild\r
106@IF NOT EXIST "Tools\bin\GenCapsuleHdr.exe" goto NormalBuild\r
107@IF NOT EXIST "Tools\bin\GenDepex.exe" goto NormalBuild\r
108@IF NOT EXIST "Tools\bin\GenFfsFile.exe" goto NormalBuild\r
109@IF NOT EXIST "Tools\bin\GenFvImage.exe" goto NormalBuild\r
70edbc34 110@IF NOT EXIST "Tools\bin\GenSection.exe" goto NormalBuild\r
111@IF NOT EXIST "Tools\bin\GenTEImage.exe" goto NormalBuild\r
112@IF NOT EXIST "Tools\bin\GuidChk.exe" goto NormalBuild\r
113@IF NOT EXIST "Tools\bin\MakeDeps.exe" goto NormalBuild\r
114@IF NOT EXIST "Tools\bin\ModifyInf.exe" goto NormalBuild\r
115@IF NOT EXIST "Tools\bin\PeiRebase_Ia32.exe" goto NormalBuild\r
116@IF NOT EXIST "Tools\bin\PeiRebase_Ipf.exe" goto NormalBuild\r
117@IF NOT EXIST "Tools\bin\PeiRebase_X64.exe" goto NormalBuild\r
118@IF NOT EXIST "Tools\bin\SecApResetVectorFixup.exe" goto NormalBuild\r
119@IF NOT EXIST "Tools\bin\SecFixup.exe" goto NormalBuild\r
120@IF NOT EXIST "Tools\bin\SetStamp.exe" goto NormalBuild\r
121@IF NOT EXIST "Tools\bin\SplitFile.exe" goto NormalBuild\r
122@IF NOT EXIST "Tools\bin\StrGather.exe" goto NormalBuild\r
123@IF NOT EXIST "Tools\bin\Strip.exe" goto NormalBuild\r
124@IF NOT EXIST "Tools\bin\VfrCompile.exe" goto NormalBuild\r
125@IF NOT EXIST "Tools\bin\ZeroDebugData.exe" goto NormalBuild\r
126@IF NOT EXIST "Tools\bin\antlr.exe" goto NormalBuild\r
127@IF NOT EXIST "Tools\bin\dlg.exe" goto NormalBuild\r
128\r
129@if "%1"=="Rebuild" goto NormalBuild\r
130@if "%1"=="ForceRebuild" goto ForceBuild\r
11f009f1 131@if NOT "%1"=="" goto Usage\r
70edbc34 132\r
133goto skipbuild\r
134\r
135:ForceBuild\r
136call ant -f %WORKSPACE%\Tools\build.xml cleanall\r
878ddf1f 137\r
70edbc34 138:NormalBuild\r
a29212b2 139@REM\r
140@REM Start to build the Framework Tools\r
141@REM\r
42b67fc4 142\r
a29212b2 143echo.\r
144echo Building the Framework Tools\r
145echo.\r
42b67fc4 146\r
a29212b2 147@REM\r
148@REM We are going to create the SurfaceArea.jar file first so that the other\r
149@REM Java Programs can use it.\r
150@REM It needs the XMLBEANS libraries in order to compile.\r
151@REM\r
f907f57b 152set CLASSPATH=%XMLBEANS_HOME%\lib\r
70edbc34 153set CLASSPATH=%CLASSPATH%;%XMLBEANS_HOME%\lib\jsr173_1.0_api.jar\r
154set CLASSPATH=%CLASSPATH%;%XMLBEANS_HOME%\lib\xbean.jar\r
155set CLASSPATH=%CLASSPATH%;%XMLBEANS_HOME%\lib\xbean_xpath.jar\r
156set CLASSPATH=%CLASSPATH%;%XMLBEANS_HOME%\lib\xmlpublic.jar\r
157set CLASSPATH=%CLASSPATH%;%XMLBEANS_HOME%\lib\saxon8.jar\r
158set CLASSPATH=%CLASSPATH%;%XMLBEANS_HOME%\lib\resolver.jar\r
159\r
a29212b2 160call ant -f %WORKSPACE%\Tools\build.xml SurfaceArea\r
878ddf1f 161\r
a29212b2 162@REM\r
878ddf1f 163@REM Now we can make the other Java Programs\r
53cef58a 164@REM All of the remaining Java Programs require the SurfaceArea library to compile\r
a29212b2 165@REM\r
70edbc34 166set CLASSPATH=%CLASSPATH%;%WORKSPACE%\Tools\Jars\SurfaceArea.jar\r
b9546cc8 167\r
a29212b2 168call ant -f %WORKSPACE%\Tools\build.xml JavaCode\r
878ddf1f 169\r
a29212b2 170@REM\r
171@REM We have all of the Java Programs and add-in classes created, so we can start\r
172@REM using the cpp-tasks to create our tools\r
173@REM\r
b9546cc8 174set CLASSPATH=%CLASSPATH%;%WORKSPACE%\Tools\Jars\Common.jar\r
302e0e4a 175set CLASSPATH=%CLASSPATH%;%WORKSPACE%\Tools\Jars\GenBuild.jar\r
08e4a412 176set CLASSPATH=%CLASSPATH%;%WORKSPACE%\Tools\Jars\cpptasks.jar\r
177set CLASSPATH=%CLASSPATH%;%WORKSPACE%\Tools\Jars\frameworktasks.jar\r
da1508dd 178set CLASSPATH=%CLASSPATH%;%WORKSPACE%\Tools\Bin\FrameworkWizard.jar\r
878ddf1f 179\r
a29212b2 180call ant -f %WORKSPACE%\Tools\build.xml C_Code\r
878ddf1f 181\r
a29212b2 182@REM\r
183@REM Done!!!\r
184@REM\r
878ddf1f 185goto end\r
186\r
187:no_jdk\r
188echo.\r
02996846 189echo !!! Please install Java, and set JAVA_HOME !!!\r
190echo.\r
a29212b2 191goto end\r
02996846 192\r
193:no_ant\r
194echo.\r
195echo !!! Please install Apache Ant, and set ANT_HOME !!!\r
196echo.\r
a29212b2 197goto end\r
02996846 198\r
42b67fc4 199:no_antcontrib\r
200echo.\r
201echo !!! Please install Ant-contrib to ANT_HOME !!!\r
202echo.\r
a29212b2 203goto end\r
42b67fc4 204\r
02996846 205:no_xmlbeans\r
206echo.\r
207echo !!! Please install XML Beans, and set XMLBEANS_HOME !!!\r
878ddf1f 208echo.\r
a29212b2 209goto end\r
878ddf1f 210\r
42b67fc4 211:no_saxon8\r
212echo.\r
213echo !!! Please copy saxon8.jar file to XMLBEANS_HOME\lib !!!\r
214echo.\r
a29212b2 215goto end\r
42b67fc4 216\r
302e0e4a 217:skipbuild\r
218@REM\r
219@REM This just sets up the CLASSPATH, the rest of the environment should have been set already.\r
220@REM\r
302e0e4a 221echo.\r
6de5f959 222echo WORKSPACE: %WORKSPACE%\r
302e0e4a 223echo JAVA_HOME: %JAVA_HOME%\r
224echo ANT_HOME: %ANT_HOME%\r
225echo XMLBEANS_HOME: %XMLBEANS_HOME%\r
226echo CYGWIN_HOME: %CYGWIN_HOME%\r
302e0e4a 227echo PATH: %PATH%\r
228echo.\r
f907f57b 229set CLASSPATH=%XMLBEANS_HOME%\lib\r
70edbc34 230set CLASSPATH=%CLASSPATH%;%XMLBEANS_HOME%\lib\jsr173_1.0_api.jar\r
231set CLASSPATH=%CLASSPATH%;%XMLBEANS_HOME%\lib\xbean.jar\r
232set CLASSPATH=%CLASSPATH%;%XMLBEANS_HOME%\lib\xbean_xpath.jar\r
233set CLASSPATH=%CLASSPATH%;%XMLBEANS_HOME%\lib\xmlpublic.jar\r
234set CLASSPATH=%CLASSPATH%;%XMLBEANS_HOME%\lib\saxon8.jar\r
235set CLASSPATH=%CLASSPATH%;%XMLBEANS_HOME%\lib\resolver.jar\r
08e4a412 236set CLASSPATH=%CLASSPATH%;%WORKSPACE%\Tools\Jars\SurfaceArea.jar\r
70edbc34 237set CLASSPATH=%CLASSPATH%;%WORKSPACE%\Tools\Jars\Common.jar\r
238set CLASSPATH=%CLASSPATH%;%WORKSPACE%\Tools\Jars\GenBuild.jar\r
239set CLASSPATH=%CLASSPATH%;%WORKSPACE%\Tools\Jars\cpptasks.jar\r
240set CLASSPATH=%CLASSPATH%;%WORKSPACE%\Tools\Jars\frameworktasks.jar\r
241set CLASSPATH=%CLASSPATH%;%WORKSPACE%\Tools\Bin\FrameworkWizard.jar\r
11f009f1 242echo CLASSPATH: %CLASSPATH%\r
302e0e4a 243goto end\r
244\r
70edbc34 245:Usage\r
246echo.\r
247echo Usage: %0 [Rebuild] [ForceRebuild]\r
248echo.\r
249\r
878ddf1f 250:end\r
251@echo on\r
252\r