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