Home | History | Annotate | Download | only in bin
      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