diff --git a/bootstrap.bat b/bootstrap.bat
index 6c2dca44c..f685b3703 100755
--- a/bootstrap.bat
+++ b/bootstrap.bat
@@ -18,29 +18,34 @@ if "" == "%JAVAC%" set JAVAC=%JAVA_HOME%\bin\javac
echo.
echo ... Bootstrapping Ant Distribution
-SET CLASSDIR=build\classes
+if exist lib\ant.jar erase lib\ant.jar
+if exist lib\optional.jar erase lib\optional.jar
+
SET LOCALCLASSPATH=lib\parser.jar;lib\jaxp.jar
if exist %JAVA_HOME%\lib\tools.jar call src\script\lcp.bat %JAVA_HOME%\lib\tools.jar
if exist %JAVA_HOME%\lib\classes.zip call src\script\lcp.bat %JAVA_HOME%\lib\classes.zip
+set TOOLS=src\main\org\apache\tools
+set CLASSDIR=classes
+
+SET CLASSPATH=%LOCALCLASSPATH%;%CLASSDIR%;src\main;
+
echo JAVA_HOME=%JAVA_HOME%
echo JAVA=%JAVA%
echo JAVAC=%JAVAC%
-echo CLASSPATH=%LOCALCLASSPATH%
+echo CLASSPATH=%CLASSPATH%
-if "%OS%" == "Windows_NT" if exist build rmdir/s/q build
-if not "%OS%" == "Windows_NT" deltree/y build
+if "%OS%" == "Windows_NT" if exist %CLASSDIR%\nul rmdir/s/q %CLASSDIR%
+if not "%OS%" == "Windows_NT" if exist %CLASSDIR%\nul deltree/y %CLASSDIR%
+mkdir %CLASSDIR%
mkdir build
-mkdir build\classes
echo.
echo ... Compiling Ant Classes
-SET TOOLS=src\main\org\apache\tools
-
-%JAVAC% -classpath %LOCALCLASSPATH%;src\main -d build\classes %TOOLS%\tar\*.java %TOOLS%\ant\*.java %TOOLS%\ant\types\*.java %TOOLS%\ant\taskdefs\*.java %TOOLS%\ant\util\*.java %TOOLS%\ant\util\regexp\RegexpMatcher.java %TOOLS%\ant\util\regexp\RegexpMatcherFactory.java
+%JAVAC% -d %CLASSDIR% %TOOLS%\tar\*.java %TOOLS%\ant\*.java %TOOLS%\ant\types\*.java %TOOLS%\ant\taskdefs\*.java %TOOLS%\ant\util\*.java %TOOLS%\ant\util\regexp\RegexpMatcher.java %TOOLS%\ant\util\regexp\RegexpMatcherFactory.java
echo.
echo ... Copying Required Files
@@ -51,8 +56,15 @@ copy %TOOLS%\ant\types\*.properties %CLASSDIR%\org\apache\tools\ant\types
echo.
echo ... Building Ant Distribution
-SET CLASSPATH=%LOCALCLASSPATH%;build\classes
-call build.bat %1 %2 %3 %4 %5 %6 %7 %8
+xcopy /s/q %CLASSDIR% build
+
+%JAVA% %ANT_OPTS% org.apache.tools.ant.Main bootstrap
+
+echo.
+echo ... Cleaning Up Build Directories
+
+if "%OS%" == "Windows_NT" if exist %CLASSDIR%\nul rmdir/s/q %CLASSDIR%
+if not "%OS%" == "Windows_NT" if exist %CLASSDIR%\nul deltree/y %CLASSDIR%
echo.
echo ... Done Bootstrapping Ant Distribution
@@ -64,9 +76,7 @@ set ANT_HOME=%OLDANTHOME%
set OLDJAVA=
set OLDJAVAC=
set OLDCLASSPATH=
-set CLASSPATH=
set LOCALCLASSPATH=
set OLDANTHOME=
set TOOLS=
-SET CLASSDIR=
diff --git a/bootstrap.sh b/bootstrap.sh
index c263757c5..03ca3adfb 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -1,35 +1,17 @@
-#!/bin/bash
-
-# Cygwin support. $cygwin _must_ be set to either true or false.
-case "`uname`" in
- CYGWIN*) cygwin=true ;;
- *) cygwin=false ;;
-esac
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched
-if $cygwin; then
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
- [ -n "$CLASSPATH" ] &&
- CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
-fi
-
-LOCALCLASSPATH=lib/parser.jar:lib/jaxp.jar
+#!/bin/sh
-if [ "$CLASSPATH" != "" ] ; then
- LOCALCLASSPATH=$CLASSPATH:$LOCALCLASSPATH
-fi
+# You will need to specify JAVA_HOME if compiling with 1.2 or later.
if [ "$JAVA_HOME" != "" ] ; then
- if test -f $JAVA_HOME/lib/tools.jar ; then
- LOCALCLASSPATH=$LOCALCLASSPATH:$JAVA_HOME/lib/tools.jar
+ if [ -f $JAVA_HOME/lib/tools.jar ] ; then
+ CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar
fi
-
- if test -f $JAVA_HOME/lib/classes.zip ; then
- LOCALCLASSPATH=$LOCALCLASSPATH:$JAVA_HOME/lib/classes.zip
+
+ if [ -f "$JAVA_HOME/lib/classes.zip" ] ; then
+ CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/classes.zip
fi
else
- echo "Warning: JAVA_HOME environment variable is not set."
+ echo "Warning: JAVA_HOME environment variable not set."
echo " If build fails because sun.* classes could not be found"
echo " you will need to set the JAVA_HOME environment variable"
echo " to the installation directory of java."
@@ -41,28 +23,44 @@ if [ ! -x "$JAVA_HOME/bin/java" ] ; then
exit
fi
+# More Cygwin support
+if [ "$OSTYPE" = "cygwin32" ] || [ "$OSTYPE" = "cygwin" ] ; then
+ CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+ANT_HOME=.
+export ANT_HOME
+
if [ -z "$JAVAC" ] ; then
JAVAC=${JAVA_HOME}/bin/javac;
fi
echo ... Bootstrapping Ant Distribution
-rm -rf build
+if [ -f "lib/ant.jar" ] ; then
+ rm lib/ant.jar
+fi
+if [ -f "lib/optional.jar" ] ; then
+ rm lib/optional.jar
+fi
+
+CLASSPATH=lib/parser.jar:lib/jaxp.jar:${CLASSPATH}
TOOLS=src/main/org/apache/tools
-CLASSDIR=build/classes
+CLASSDIR=classes
-mkdir -p build
-mkdir -p ${CLASSDIR}
+CLASSPATH=${CLASSDIR}:src/main:${CLASSPATH}
-echo ... Compiling Ant Classes
+# convert the unix path to windows
+if [ "$OSTYPE" = "cygwin32" ] || [ "$OSTYPE" = "cygwin" ] ; then
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+fi
-export CLASSPATH=$LOCALCLASSPATH:src/main
+export CLASSPATH
-# For Cygwin, switch paths to Windows format before running javac
-if $cygwin; then
- CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
-fi
+mkdir -p ${CLASSDIR}
+
+echo ... Compiling Ant Classes
${JAVAC} -d ${CLASSDIR} ${TOOLS}/tar/*.java \
${TOOLS}/ant/util/regexp/RegexpMatcher.java \
@@ -79,13 +77,13 @@ cp src/main/org/apache/tools/ant/types/defaults.properties \
echo ... Building Ant Distribution
-export CLASSPATH=$LOCALCLASSPATH:build/classes
+${JAVA_HOME}/bin/java -classpath ${CLASSPATH} org.apache.tools.ant.Main \
+ -buildfile build.xml clean main bootstrap
-# For Cygwin, switch paths to Windows format before running javac
-if $cygwin; then
- CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
-fi
+echo ... Cleaning Up Build Directories
+
+chmod +x bin/ant bin/antRun
-${JAVA_HOME}/bin/java -classpath ${CLASSPATH} org.apache.tools.ant.Main $*
+rm -rf ${CLASSDIR}
echo ... Done Bootstrapping Ant Distribution
diff --git a/build.bat b/build.bat
index ed3bb3856..3094df5aa 100755
--- a/build.bat
+++ b/build.bat
@@ -1,45 +1,19 @@
@echo off
-set _CP=%CLASSPATH%
-
-if exist build\classes\org\apache\tools\ant\Main.class goto doBuild
-
-call bootstrap.bat %1 %2 %3 %4 %5 %6 %7 %8
-
-:doBuild
-
-echo ----------------
-echo Ant Build System
-echo ----------------
-
-rem exit
-
-set LOCALCLASSPATH=%CLASSPATH%;lib\optional\junit.jar;build\classes
-for %%i in (lib\*.jar) do call src\script\lcp.bat %%i
-
-if "%JAVA_HOME%" == "" goto noJavaHome
-set _JAVACMD=%JAVACMD%
-if "%_JAVACMD%" == "" set _JAVACMD=%JAVA_HOME%\bin\java
-if exist "%JAVA_HOME%\lib\tools.jar" call src\script\lcp.bat "%JAVA_HOME%\lib\tools.jar"
-if exist "%JAVA_HOME%\lib\classes.zip" call src\script\lcp.bat" "%JAVA_HOME%\lib\classes.zip"
-goto runAnt
-
-:noJavaHome
-if "%_JAVACMD%" == "" set _JAVACMD=java
-echo.
-echo Warning: JAVA_HOME environment variable is not set.
-echo If build fails because sun.* classes could not be found
-echo you will need to set the JAVA_HOME environment variable
-echo to the installation directory of java.
-echo.
+set REAL_ANT_HOME=%ANT_HOME%
+set ANT_HOME=.
+if exist lib\ant.jar if exist bin\ant.bat if exist bin\lcp.bat if exist bin\antRun.bat goto runAnt
+call bootstrap.bat
:runAnt
-set NEW_ANT_HOME=%ANT_HOME%
-if "%ANT_HOME%" == "" set NEW_ANT_HOME=dist
-set CLASSPATH=%LOCALCLASSPATH%
-set LOCALCLASSPATH=
-%_JAVACMD% -classpath %CLASSPATH% %ANT_OPTS% org.apache.tools.ant.Main "-Dant.home=%NEW_ANT_HOME%" -logger org.apache.tools.ant.NoBannerLogger -emacs %1 %2 %3 %4 %5 %6 %7 %8
+if not "%REAL_ANT_HOME%" == "" goto install_ant
+call .\bin\ant.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
+goto cleanup
+
+:install_ant
+call .\bin\ant.bat -Dant.install="%REAL_ANT_HOME%" %1 %2 %3 %4 %5 %6 %7 %8 %9
-set CLASSPATH=%_CP%
-set NEW_ANT_HOME=
-set _JAVACMD=
+rem clean up
+:cleanup
+set ANT_HOME=%REAL_ANT_HOME%
+set REAL_ANT_HOME=
diff --git a/build.sh b/build.sh
index 0445db994..fc1828b6d 100755
--- a/build.sh
+++ b/build.sh
@@ -1,59 +1,16 @@
#!/bin/sh
-if test ! -f build/classes/org/apache/tools/ant/Main.class ; then
- ./bootstrap.sh $*
-fi
-
-# Cygwin support. $cygwin _must_ be set to either true or false.
-case "`uname`" in
- CYGWIN*) cygwin=true ;;
- *) cygwin=false ;;
-esac
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched
-if $cygwin; then
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
- [ -n "$CLASSPATH" ] &&
- CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
-fi
-
-LOCALCLASSPATH=`echo lib/*.jar | tr ' ' ':'`
-LOCALCLASSPATH=$LOCALCLASSPATH:build/classes:lib/optional/junit.jar
-
-if [ "$CLASSPATH" != "" ] ; then
- LOCALCLASSPATH=$CLASSPATH:$LOCALCLASSPATH
-fi
+REALANTHOME=$ANT_HOME
+ANT_HOME=.
+export ANT_HOME
-if [ "$JAVA_HOME" != "" ] ; then
- if test -f $JAVA_HOME/lib/tools.jar ; then
- LOCALCLASSPATH=$LOCALCLASSPATH:$JAVA_HOME/lib/tools.jar
- fi
-
- if test -f $JAVA_HOME/lib/classes.zip ; then
- LOCALCLASSPATH=$LOCALCLASSPATH:$JAVA_HOME/lib/classes.zip
- fi
-else
- echo "Warning: JAVA_HOME environment variable is not set."
- echo " If build fails because sun.* classes could not be found"
- echo " you will need to set the JAVA_HOME environment variable"
- echo " to the installation directory of java."
-fi
-
-if [ ! -x "$JAVA_HOME/bin/java" ] ; then
- echo "Error: JAVA_HOME is not defined correctly."
- echo " We cannot execute JAVA_HOME/bin/java"
- exit
-fi
+if test ! -f lib/ant.jar -o ! -x bin/ant -o ! -x bin/antRun ; then
+ ./bootstrap.sh
+fi
-# For Cygwin, switch paths to Windows format before running javac
-if $cygwin; then
- LOCALCLASSPATH=`cygpath --path --windows "$LOCALCLASSPATH"`
+if [ "$REALANTHOME" != "" ] ; then
+ ANT_INSTALL="-Dant.install $REALANTHOME"
fi
-NEW_ANT_HOME=$ANT_HOME
-if [ ! "$NEW_ANT_HOME" ] ; then
- NEW_ANT_HOME=dist
-fi
+bin/ant $ANT_INSTALL $*
-${JAVA_HOME}/bin/java -classpath $LOCALCLASSPATH org.apache.tools.ant.Main -Dant.home=$NEW_ANT_HOME -logger org.apache.tools.ant.NoBannerLogger -emacs $*
diff --git a/build.xml b/build.xml
index 5101e8ace..928607286 100644
--- a/build.xml
+++ b/build.xml
@@ -16,48 +16,41 @@
+
+
+
+
+
-
+
+
+
+
+
+
+
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -66,41 +59,15 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
@@ -119,7 +86,7 @@
Check to see what optional dependencies are available
===================================================================
-->
-
+
-
-
+
+
+
+
+
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
@@ -281,10 +229,10 @@
-
+
@@ -309,31 +257,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -344,6 +272,8 @@
+
+
@@ -351,11 +281,9 @@
-
@@ -370,31 +298,28 @@
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
+
@@ -433,47 +358,51 @@
-
-
-
-
-
-
-
+
+
-
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
+
@@ -576,7 +531,7 @@
-
+
@@ -586,5 +541,6 @@
-
+
+
\ No newline at end of file