1 @echo off 2 3 REM Licensed to the Apache Software Foundation (ASF) under one or more 4 REM contributor license agreements. See the NOTICE file distributed with 5 REM this work for additional information regarding copyright ownership. 6 REM The ASF licenses this file to You under the Apache License, Version 2.0 7 REM (the "License"); you may not use this file except in compliance with 8 REM the License. You may obtain a copy of the License at 9 REM 10 REM http://www.apache.org/licenses/LICENSE-2.0 11 REM 12 REM Unless required by applicable law or agreed to in writing, software 13 REM distributed under the License is distributed on an "AS IS" BASIS, 14 REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 REM See the License for the specific language governing permissions and 16 REM limitations under the License. 17 18 REM This is an inordinately troublesome piece of code, particularly because it 19 REM tries to work on both Win9x and WinNT-based systems. If we could abandon '9x 20 REM support, things would be much easier, but sadly, it is not yet time. 21 REM Be cautious about editing this, and only add WinNT specific stuff in code that 22 REM only runs on WinNT. 23 24 if "%HOME%"=="" goto homeDrivePathPre 25 if exist "%HOME%\antrc_pre.bat" call "%HOME%\antrc_pre.bat" 26 27 :homeDrivePathPre 28 if "%HOMEDRIVE%%HOMEPATH%"=="" goto userProfilePre 29 if "%HOMEDRIVE%%HOMEPATH%"=="%HOME%" goto userProfilePre 30 if exist "%HOMEDRIVE%%HOMEPATH%\antrc_pre.bat" call "%HOMEDRIVE%%HOMEPATH%\antrc_pre.bat" 31 32 :userProfilePre 33 if "%USERPROFILE%"=="" goto alpha 34 if "%USERPROFILE%"=="%HOME%" goto alpha 35 if "%USERPROFILE%"=="%HOMEDRIVE%%HOMEPATH%" goto alpha 36 if exist "%USERPROFILE%\antrc_pre.bat" call "%USERPROFILE%\antrc_pre.bat" 37 38 :alpha 39 40 if "%OS%"=="Windows_NT" @setlocal 41 if "%OS%"=="WINNT" @setlocal 42 43 if "%ANT_HOME%"=="" goto setDefaultAntHome 44 45 :stripAntHome 46 if not _%ANT_HOME:~-1%==_\ goto checkClasspath 47 set ANT_HOME=%ANT_HOME:~0,-1% 48 goto stripAntHome 49 50 :setDefaultAntHome 51 rem %~dp0 is expanded pathname of the current script under NT 52 set ANT_HOME=%~dp0.. 53 54 :checkClasspath 55 set _USE_CLASSPATH=yes 56 rem CLASSPATH must not be used if it is equal to "" 57 if "%CLASSPATH%"=="""" set _USE_CLASSPATH=no 58 if "%CLASSPATH%"=="" set _USE_CLASSPATH=no 59 60 rem Slurp the command line arguments. This loop allows for an unlimited number 61 rem of arguments (up to the command line limit, anyway). 62 set ANT_CMD_LINE_ARGS=%1 63 if ""%1""=="""" goto doneStart 64 shift 65 :setupArgs 66 if ""%1""=="""" goto doneStart 67 if ""%1""==""-noclasspath"" goto clearclasspath 68 set ANT_CMD_LINE_ARGS=%ANT_CMD_LINE_ARGS% %1 69 shift 70 goto setupArgs 71 72 rem here is there is a -noclasspath in the options 73 :clearclasspath 74 set _USE_CLASSPATH=no 75 shift 76 goto setupArgs 77 78 rem This label provides a place for the argument list loop to break out 79 rem and for NT handling to skip to. 80 81 :doneStart 82 83 if _USE_CLASSPATH==no goto findAntHome 84 85 :stripClasspath 86 if not _%CLASSPATH:~-1%==_\ goto findAntHome 87 set CLASSPATH=%CLASSPATH:~0,-1% 88 goto stripClasspath 89 90 :findAntHome 91 rem find ANT_HOME if it does not exist due to either an invalid value passed 92 rem by the user or the %0 problem on Windows 9x 93 if exist "%ANT_HOME%\lib\ant.jar" goto checkJava 94 95 rem check for ant in Program Files 96 if not exist "%ProgramFiles%\ant" goto checkSystemDrive 97 set ANT_HOME=%ProgramFiles%\ant 98 goto checkJava 99 100 :checkSystemDrive 101 rem check for ant in root directory of system drive 102 if not exist %SystemDrive%\ant\lib\ant.jar goto checkCDrive 103 set ANT_HOME=%SystemDrive%\ant 104 goto checkJava 105 106 :checkCDrive 107 rem check for ant in C:\ant for Win9X users 108 if not exist C:\ant\lib\ant.jar goto noAntHome 109 set ANT_HOME=C:\ant 110 goto checkJava 111 112 :noAntHome 113 echo ANT_HOME is set incorrectly or ant could not be located. Please set ANT_HOME. 114 goto end 115 116 :checkJava 117 set _JAVACMD=%JAVACMD% 118 119 if "%JAVA_HOME%" == "" goto noJavaHome 120 if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome 121 if "%_JAVACMD%" == "" set _JAVACMD=%JAVA_HOME%\bin\java.exe 122 goto checkJikes 123 124 :noJavaHome 125 if "%_JAVACMD%" == "" set _JAVACMD=java.exe 126 127 :checkJikes 128 if not "%JIKESPATH%"=="" goto runAntWithJikes 129 130 :runAnt 131 if "%_USE_CLASSPATH%"=="no" goto runAntNoClasspath 132 :runAntWithClasspath 133 "%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% -cp "%CLASSPATH%" %ANT_CMD_LINE_ARGS% 134 rem Check the error code of the Ant build 135 if not "%OS%"=="Windows_NT" goto onError 136 set ANT_ERROR=%ERRORLEVEL% 137 goto end 138 139 :runAntNoClasspath 140 "%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS% 141 rem Check the error code of the Ant build 142 if not "%OS%"=="Windows_NT" goto onError 143 set ANT_ERROR=%ERRORLEVEL% 144 goto end 145 146 :runAntWithJikes 147 148 if not _%JIKESPATH:~-1%==_\ goto checkJikesAndClasspath 149 set JIKESPATH=%JIKESPATH:~0,-1% 150 goto runAntWithJikes 151 152 :checkJikesAndClasspath 153 154 if "%_USE_CLASSPATH%"=="no" goto runAntWithJikesNoClasspath 155 156 :runAntWithJikesAndClasspath 157 "%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% -cp "%CLASSPATH%" %ANT_CMD_LINE_ARGS% 158 rem Check the error code of the Ant build 159 if not "%OS%"=="Windows_NT" goto onError 160 set ANT_ERROR=%ERRORLEVEL% 161 goto end 162 163 :runAntWithJikesNoClasspath 164 "%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS% 165 rem Check the error code of the Ant build 166 if not "%OS%"=="Windows_NT" goto onError 167 set ANT_ERROR=%ERRORLEVEL% 168 goto end 169 170 :onError 171 rem Windows 9x way of checking the error code. It matches via brute force. 172 for %%i in (1 10 100) do set err%%i= 173 for %%i in (0 1 2) do if errorlevel %%i00 set err100=%%i 174 if %err100%==2 goto onError200 175 if %err100%==0 set err100= 176 for %%i in (0 1 2 3 4 5 6 7 8 9) do if errorlevel %err100%%%i0 set err10=%%i 177 if "%err100%"=="" if %err10%==0 set err10= 178 :onError1 179 for %%i in (0 1 2 3 4 5 6 7 8 9) do if errorlevel %err100%%err10%%%i set err1=%%i 180 goto onErrorEnd 181 :onError200 182 for %%i in (0 1 2 3 4 5) do if errorlevel 2%%i0 set err10=%%i 183 if err10==5 for %%i in (0 1 2 3 4 5) do if errorlevel 25%%i set err1=%%i 184 if not err10==5 goto onError1 185 :onErrorEnd 186 set ANT_ERROR=%err100%%err10%%err1% 187 for %%i in (1 10 100) do set err%%i= 188 189 :end 190 rem bug ID 32069: resetting an undefined env variable changes the errorlevel. 191 if not "%_JAVACMD%"=="" set _JAVACMD= 192 if not "%_ANT_CMD_LINE_ARGS%"=="" set ANT_CMD_LINE_ARGS= 193 194 if "%ANT_ERROR%"=="0" goto mainEnd 195 196 rem Set the return code if we are not in NT. We can only set 197 rem a value of 1, but it's better than nothing. 198 if not "%OS%"=="Windows_NT" echo 1 > nul | choice /n /c:1 199 200 rem Set the ERRORLEVEL if we are running NT. 201 if "%OS%"=="Windows_NT" color 00 202 203 goto omega 204 205 :mainEnd 206 207 rem If there were no errors, we run the post script. 208 if "%OS%"=="Windows_NT" @endlocal 209 if "%OS%"=="WINNT" @endlocal 210 211 if "%HOME%"=="" goto homeDrivePathPost 212 if exist "%HOME%\antrc_post.bat" call "%HOME%\antrc_post.bat" 213 214 :homeDrivePathPost 215 if "%HOMEDRIVE%%HOMEPATH%"=="" goto userProfilePost 216 if "%HOMEDRIVE%%HOMEPATH%"=="%HOME%" goto userProfilePost 217 if exist "%HOMEDRIVE%%HOMEPATH%\antrc_post.bat" call "%HOMEDRIVE%%HOMEPATH%\antrc_post.bat" 218 219 :userProfilePost 220 if "%USERPROFILE%"=="" goto omega 221 if "%USERPROFILE%"=="%HOME%" goto omega 222 if "%USERPROFILE%"=="%HOMEDRIVE%%HOMEPATH%" goto omega 223 if exist "%USERPROFILE%\antrc_post.bat" call "%USERPROFILE%\antrc_post.bat" 224 225 :omega 226 227