Browse Source

Made scripts a little more consistent, they should now work with IBM's

JDK on AIX out of the box.

Ant will now prepend CLASSPATH to the jars in ANT_HOME/lib like it
always did for Windows - if this is not the correct order, change it
here and in the batch file. We need to be consistent.

Make sure :: doesn't slip into the CLASSPATH when adding the library
jars.


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@269015 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 24 years ago
parent
commit
b8f7af8729
2 changed files with 67 additions and 32 deletions
  1. +31
    -9
      bootstrap.sh
  2. +36
    -23
      src/script/ant

+ 31
- 9
bootstrap.sh View File

@@ -2,8 +2,8 @@


# You will need to specify JAVA_HOME if compiling with 1.2 or later. # You will need to specify JAVA_HOME if compiling with 1.2 or later.


if [ "$JAVA_HOME" != "" ] ; then
if [ -f $JAVA_HOME/lib/tools.jar ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -f "$JAVA_HOME/lib/tools.jar" ] ; then
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar
fi fi
@@ -17,9 +17,35 @@ else
echo " to the installation directory of java." echo " to the installation directory of java."
fi fi


if [ ! -x "$JAVA_HOME/bin/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables:
# JAVA_HOME/jre/sh for java and rmid
# JAVA_HOME/sh for javac and rmic
if [ -z "$JAVAC" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/sh/javac" ] ; then
JAVAC=${JAVA_HOME}/sh/javac;
else
JAVAC=${JAVA_HOME}/bin/javac;
fi
else
JAVAC=javac
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
JAVACMD=$JAVA_HOME/jre/sh/java
else
JAVACMD=$JAVA_HOME/bin/java
fi
else
JAVACMD=java
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." echo "Error: JAVA_HOME is not defined correctly."
echo " We cannot execute JAVA_HOME/bin/java"
echo " We cannot execute $JAVACMD"
exit exit
fi fi


@@ -31,10 +57,6 @@ fi
ANT_HOME=. ANT_HOME=.
export ANT_HOME export ANT_HOME


if [ -z "$JAVAC" ] ; then
JAVAC=${JAVA_HOME}/bin/javac;
fi

echo ... Bootstrapping Ant Distribution echo ... Bootstrapping Ant Distribution


if [ -d "bootstrap" ] ; then if [ -d "bootstrap" ] ; then
@@ -91,7 +113,7 @@ echo ... Building Ant Distribution


cp -r ${CLASSDIR} build cp -r ${CLASSDIR} build


${JAVA_HOME}/bin/java -classpath ${CLASSPATH} org.apache.tools.ant.Main -emacs bootstrap
${JAVACMD} -classpath ${CLASSPATH} org.apache.tools.ant.Main -emacs bootstrap


echo ... Cleaning Up Build Directories echo ... Cleaning Up Build Directories




+ 36
- 23
src/script/ant View File

@@ -22,7 +22,7 @@ if $cygwin ; then
CLASSPATH=`cygpath --path --unix "$CLASSPATH"` CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi fi


if [ "$ANT_HOME" = "" ] ; then
if [ -z "$ANT_HOME" ] ; then
# try to find ANT # try to find ANT
if [ -d /opt/ant ] ; then if [ -d /opt/ant ] ; then
ANT_HOME=/opt/ant ANT_HOME=/opt/ant
@@ -50,16 +50,29 @@ if [ "$ANT_HOME" = "" ] ; then


fi fi


if [ "$JAVA_HOME" != "" ] ; then
if [ "$JAVACMD" = "" ] ; then
JAVACMD=$JAVA_HOME/bin/java
fi
else
if [ "$JAVACMD" = "" ] ; then
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD=$JAVA_HOME/jre/sh/java
else
JAVACMD=$JAVA_HOME/bin/java
fi
else
JAVACMD=java JAVACMD=java
fi fi
fi fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly."
echo " We cannot execute $JAVACMD"
exit
fi

if [ -n "$CLASSPATH" ] ; then
LOCALCLASSPATH=$CLASSPATH
fi

# add in the dependency .jar files # add in the dependency .jar files
DIRLIBS=${ANT_HOME}/lib/*.jar DIRLIBS=${ANT_HOME}/lib/*.jar
for i in ${DIRLIBS} for i in ${DIRLIBS}
@@ -67,32 +80,32 @@ do
# if the directory is empty, then it will return the input string # if the directory is empty, then it will return the input string
# this is stupid, so case for it # this is stupid, so case for it
if [ "$i" != "${DIRLIBS}" ] ; then if [ "$i" != "${DIRLIBS}" ] ; then
if [ -z "$LOCALCLASSPATH" ] ; then
LOCALCLASSPATH=$i
else
LOCALCLASSPATH=$LOCALCLASSPATH:"$i" LOCALCLASSPATH=$LOCALCLASSPATH:"$i"
fi
fi fi
done done


if [ "$CLASSPATH" != "" ] ; then
LOCALCLASSPATH=$CLASSPATH:$LOCALCLASSPATH
fi

if [ "$JAVA_HOME" != "" ] ; then
if test -f $JAVA_HOME/lib/tools.jar ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -f "$JAVA_HOME/lib/tools.jar" ] ; then
LOCALCLASSPATH=$LOCALCLASSPATH:$JAVA_HOME/lib/tools.jar LOCALCLASSPATH=$LOCALCLASSPATH:$JAVA_HOME/lib/tools.jar
fi fi


if test -f $JAVA_HOME/lib/classes.zip ; then
if [ -f "$JAVA_HOME/lib/classes.zip" ] ; then
LOCALCLASSPATH=$LOCALCLASSPATH:$JAVA_HOME/lib/classes.zip LOCALCLASSPATH=$LOCALCLASSPATH:$JAVA_HOME/lib/classes.zip
fi fi


# OSX hack to make Ant work with jikes # OSX hack to make Ant work with jikes
if $darwin ; then if $darwin ; then
OSXHACK="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes"
if [ -d ${OSXHACK} ] ; then
for i in ${OSXHACK}/*.jar
do
JIKESPATH=$JIKESPATH:$i
done
fi
OSXHACK="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes"
if [ -d ${OSXHACK} ] ; then
for i in ${OSXHACK}/*.jar
do
JIKESPATH=$JIKESPATH:$i
done
fi
fi fi


else else
@@ -103,8 +116,8 @@ else
fi fi


# supply JIKESPATH to Ant as jikes.class.path # supply JIKESPATH to Ant as jikes.class.path
if [ "$JIKESPATH" != "" ] ; then
if [ "$ANT_OPTS" != "" ] ; then
if [ -n "$JIKESPATH" ] ; then
if [ -n "$ANT_OPTS" ] ; then
ANT_OPTS="$ANT_OPTS -Djikes.class.path=$JIKESPATH" ANT_OPTS="$ANT_OPTS -Djikes.class.path=$JIKESPATH"
else else
ANT_OPTS=-Djikes.class.path=$JIKESPATH ANT_OPTS=-Djikes.class.path=$JIKESPATH


Loading…
Cancel
Save