From b8f7af87291241c5fcc1446050e8d34ac05ab1cb Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Tue, 8 May 2001 11:21:27 +0000 Subject: [PATCH] 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 --- bootstrap.sh | 40 ++++++++++++++++++++++++++-------- src/script/ant | 59 ++++++++++++++++++++++++++++++-------------------- 2 files changed, 67 insertions(+), 32 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index d21a7177b..227138f97 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -2,8 +2,8 @@ # 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 fi @@ -17,9 +17,35 @@ else echo " to the installation directory of java." 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 " We cannot execute JAVA_HOME/bin/java" + echo " We cannot execute $JAVACMD" exit fi @@ -31,10 +57,6 @@ fi ANT_HOME=. export ANT_HOME -if [ -z "$JAVAC" ] ; then - JAVAC=${JAVA_HOME}/bin/javac; -fi - echo ... Bootstrapping Ant Distribution if [ -d "bootstrap" ] ; then @@ -91,7 +113,7 @@ echo ... Building Ant Distribution 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 diff --git a/src/script/ant b/src/script/ant index 6245cff3e..d6c9467d9 100644 --- a/src/script/ant +++ b/src/script/ant @@ -22,7 +22,7 @@ if $cygwin ; then CLASSPATH=`cygpath --path --unix "$CLASSPATH"` fi -if [ "$ANT_HOME" = "" ] ; then +if [ -z "$ANT_HOME" ] ; then # try to find ANT if [ -d /opt/ant ] ; then ANT_HOME=/opt/ant @@ -50,16 +50,29 @@ if [ "$ANT_HOME" = "" ] ; then 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 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 DIRLIBS=${ANT_HOME}/lib/*.jar for i in ${DIRLIBS} @@ -67,32 +80,32 @@ do # if the directory is empty, then it will return the input string # this is stupid, so case for it if [ "$i" != "${DIRLIBS}" ] ; then + if [ -z "$LOCALCLASSPATH" ] ; then + LOCALCLASSPATH=$i + else LOCALCLASSPATH=$LOCALCLASSPATH:"$i" + fi fi 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 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 fi # OSX hack to make Ant work with jikes 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 else @@ -103,8 +116,8 @@ else fi # 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" else ANT_OPTS=-Djikes.class.path=$JIKESPATH