Browse Source

Rework the ant build process for NT/Windows

Change so that
build.bat is used just to build ant itself.
ant.bat should be used to run ant for other projects.


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@267770 13f79535-47bb-0310-9956-ffa450edef68
master
Conor MacNeill 25 years ago
parent
commit
0a5e88a590
5 changed files with 44 additions and 34 deletions
  1. +5
    -4
      bootstrap.bat
  2. +9
    -15
      build.bat
  3. +17
    -4
      build.xml
  4. +13
    -11
      src/bin/ant.bat
  5. +0
    -0
      src/bin/lcp.bat

+ 5
- 4
bootstrap.bat View File

@@ -5,8 +5,9 @@ REM You will need to specify JAVA_HOME if compiling with 1.2 or later.
set OLDJAVA=%JAVA%
set OLDJAVAC=%JAVAC%
set OLDCLASSPATH=%CLASSPATH%
set OLDANTHOME=%ANT_HOME%

if exist ..\antrc.bat call ..\antrc.bat
set ANT_HOME=.

if "" == "%JAVA%" if "" == "%JAVA_HOME%" set JAVA=java
if "" == "%JAVA%" set JAVA=%JAVA_HOME%\bin\java
@@ -48,13 +49,11 @@ copy %TOOLS%\ant\taskdefs\*.properties classes\org\apache\tools\ant\taskdefs
echo.
echo ... Building Ant Distribution

%JAVA% org.apache.tools.ant.Main clean main install %1 %2 %3 %4 %5
%JAVA% org.apache.tools.ant.Main clean main bootstrap %1 %2 %3 %4 %5

echo.
echo ... Cleaning Up Build Directories

%JAVA% org.apache.tools.ant.Main clean %1 %2 %3 %4 %5

if "%OS%" == "Windows_NT" if exist classes\nul rmdir/s/q classes
if not "%OS%" == "Windows_NT" if exist classes\nul deltree/y classes

@@ -64,9 +63,11 @@ echo ... Done Bootstrapping Ant Distribution
set JAVA=%OLDJAVA%
set JAVAC=%OLDJAVAC%
set CLASSPATH=%OLDCLASSPATH%
set ANT_HOME=%OLDANTHOME%
set OLDJAVA=
set OLDJAVAC=
set OLDCLASSPATH=
set LOCALCLASSPATH=
set OLDANTHOME=
set TOOLS=


+ 9
- 15
build.bat View File

@@ -1,20 +1,14 @@
@echo off

set _ANTHOME=%ANT_HOME%
if "%ANT_HOME%" == "" set ANT_HOME=.
set REALANTHOME=%ANT_HOME%
set ANT_HOME=.
if not exist lib\ant.jar call bootstrap.bat

set LOCALCLASSPATH=%CLASSPATH%
for %%i in (%ANT_HOME%\lib\*.jar) do call lcp.bat %%i
if exist %JAVA_HOME%\lib\tools.jar call lcp.bat %JAVA_HOME%\lib\tools.jar
if exist %JAVA_HOME%\lib\classes.zip call lcp.bat %JAVA_HOME%\lib\classes.zip

echo.
echo Building with classpath: %LOCALCLASSPATH%
echo.

java -Dant.home="%ANT_HOME%" -classpath "%LOCALCLASSPATH%" %ANT_OPTS% org.apache.tools.ant.Main %1 %2 %3 %4 %5 %6 %7 %8 %9
set ANT_INSTALL=
if not "%REALANTHOME%" == "" set ANT_INSTALL=-Dant.install %REALANTHOME%
call .\bin\ant %ANT_INSTALL% %1 %2 %3 %4 %5 %6 %7 %8 %9

rem clean up
set LOCALCLASSPATH=
set ANT_HOME=%_ANTHOME%
set _ANTHOME=
set ANT_HOME=%REALANTHOME%
set REALANTHOME=
set ANT_INSTALL=

+ 17
- 4
build.xml View File

@@ -182,10 +182,23 @@
<!-- =================================================================== -->
<!-- Installs the ant.jar library and binary files into ant.home -->
<!-- =================================================================== -->
<target name="install" depends="main">
<echo message="installing into ${ant.home}"/>
<copydir src="${lib.dir}" dest="${ant.home}/lib"/>
<copydir src="${bin.dir}" dest="${ant.home}/bin"/>
<target name="bootstrap" depends="main">
<echo message="copying bootstrapped files into bin and lib"/>
<copydir src="${lib.dir}" dest="lib"/>
<copydir src="${bin.dir}" dest="bin"/>
</target>

<target name="fullinstall" depends="dist" if="ant.install">
<echo message="installing full copy of ant into ${ant.install}"/>
<mkdir dir="${ant.install}"/>
<copydir src="${ant.dist.dir}" dest="${ant.install}"/>
</target>
<target name="install" depends="main" if="ant.install">
<echo message="copy minimal ant installtion into ${ant.install}"/>
<mkdir dir="${ant.install}"/>
<copydir src="${lib.dir}" dest="${ant.install}/lib"/>
<copydir src="${bin.dir}" dest="${ant.install}/bin"/>
</target>

<!-- =================================================================== -->


+ 13
- 11
src/bin/ant.bat View File

@@ -1,33 +1,35 @@
@echo off
@setlocal
if "%ANT_HOME%"=="" goto checkProgFiles
goto checkJava
rem find ANT_HOME
if not "%ANT_HOME%"=="" goto checkJava

:checkProgFiles
rem check for ant on system drive
rem check for ant in Program Files on system drive
if not exist "%SystemDrive%\Program Files\ant" goto checkSystemDrive

set ANT_HOME=%SystemDrive%\Program Files\ant
goto checkJava

:checkSystemDrive
rem check for ant in root directory of system drive
if not exist "%SystemDrive%\ant" goto noAntHome
set ANT_HOME=%SystemDrive%\ant
goto checkJava

:noAntHome
echo ANT_HOME is not set and ant could not be located
echo ANT_HOME is not set and ant could not be located. Please set ANT_HOME.
goto end

:checkJava
if "%JAVACMD%" == "" set JAVACMD=java

set LOCALCLASSPATH=%CLASSPATH%
for %%i in (%ANT_HOME%\lib\*.jar) do call %ANT_HOME%\bin\lcp.bat %%i

if "%JAVA_HOME%" == "" goto runAnt
set CLASSPATH=%JAVA_HOME%\lib\tools.jar;%CLASSPATH%
if exist %JAVA_HOME%\lib\tools.jar call %ANT_HOME%\bin\lcp.bat %JAVA_HOME%\lib\tools.jar
if exist %JAVA_HOME%\lib\classes.zip call %ANT_HOME%\bin\lcp.bat %JAVA_HOME%\lib\classes.zip

:runAnt
set CLASSPATH=%ANT_HOME%\lib\ant.jar;%ANT_HOME%\lib\xml.jar;%CLASSPATH%
%JAVACMD% -Dant.home="%ANT_HOME%" org.apache.tools.ant.Main %1 %2 %3 %4 %5 %6 %7 %8 %9
%JAVACMD% -classpath "%LOCALCLASSPATH%" -Dant.home="%ANT_HOME%" %ANT_OPTS% org.apache.tools.ant.Main %1 %2 %3 %4 %5 %6 %7 %8 %9

:end
@endlocal
set LOCALCLASSPATH=


lcp.bat → src/bin/lcp.bat View File


Loading…
Cancel
Save