Le ven 03/05/2002 � 12:22, GOMEZ Henri a �crit : > Ok, if your script is ready, thank to send us the patch file against > 1.5b so I could release the 1.5b rpm asap
Here it is :
1. ant.5 latest script
2. ant-4.5.patch diff of latest changes of the script :
1. fix some very stupid typos,
2. ANT_HOME=/usr/share/ant in rpmmode,
3. add ANT_HOME/lib to classpath even in rpmmode,
4. build all classpath elements :-ended so I don't have to
bother anymore if the previous classpath element was void
or not
5. -> LOCALCLASSPATH = LOCALCLASSPATH RPMCOREJARS COREJARS
CLASSPATH
3. jvm.list.patch add OSX JAVA_HOME to list
4. java-functions+setjavacmd.patch : add setjavacmd to
java-functions for AIX hack inclusion
Note that the patched version of jpackage-utils is required by this
script if JAVA_HOME and JAVACMD are not set.
This works on my box with ant 1.4 and a pretty complex build.xml
Now I'll get something to it and try to figure how I'll commit the
jpackage-utils part in jpackage cvs:)
Regards
--
Nicolas Mailhot
#! /bin/sh
# Copyright (c) 2001-2002 The Apache Software Foundation. All rights
# reserved.
# load system-wide ant configuration
[ -r "/etc/ant.conf" ] && . "/etc/ant.conf"
# load user ant configuration
[ -r "$HOME/.antrc" ] && . "$HOME/.antrc"
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
case "`uname`" in
CYGWIN*) cygwin=true ;;
Darwin*) darwin=true ;;
esac
if [ "$rpmmode" = "true" ] ; then
[ -z "$ANT_HOME" ] && ANT_HOME="/usr/share/ant"
[ -z "$JAVA_FUNCTIONS" ] && JAVA_FUNCTIONS="/usr/bin/java-functions"
fi
if [ -z "$ANT_HOME" ] ; then
# try to find ANT
[ -d "/opt/ant" ] && ANT_HOME="/opt/ant"
[ -d "$HOME/opt/ant" ] && ANT_HOME="$HOME/opt/ant"
## resolve links - $0 may be a link to ant's home
PRG=$0
progname=`basename $0`
saveddir="`pwd`"
# need this for relative symlinks
cd "`dirname $PRG`"
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '.*/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname $PRG`/$link"
fi
done
ANT_HOME="`dirname '$PRG'`/.."
# make it fully qualified
ANT_HOME=`cd "$ANT_HOME" && pwd`
cd "$saveddir"
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if [ "$cygwin" = "true" ] ; then
[ -n "$ANT_HOME" ] && ANT_HOME=`cygpath --unix "$ANT_HOME"`
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
[ -z "$JAVA_FUNCTIONS" ] && $JAVA_FUNCTIONS="$ANT_HOME/bin/java-functions"
if [ -r "$JAVA_FUNCTIONS" ] ; then
. "$JAVA_FUNCTIONS"
set_jvm
set_javacmd
else
echo "No java functions found in $JAVA_FUNCTIONS, operating in dumb mode"
[ -z "$JAVA_HOME" ] && JAVA_HOME="/usr/lib/java"
[ -z "$JAVACMD" ] && JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: we cannot execute $JAVACMD"
echo "Please set the JAVACMD environment variable to a correct value"
exit 1
fi
if [ ! -d "$JAVA_HOME" ] ; then
echo "Warning: $JAVA_HOME is not a directory"
echo "Please set the JAVA_HOME environment variable to a correct value"
fi
unset LOCALCLASSPATH
[ -f "$JAVA_HOME/lib/tools.jar" ] && LOCALCLASSPATH="$JAVA_HOME/lib/tools.jar:"
[ -f "$JAVA_HOME/lib/classes.zip" ] && LOCALCLASSPATH="$JAVA_HOME/lib/classes.zip:"
if [ "$darwin" = "true" -a "$usejikes" = "true" ] ; then
OSXHACK="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes"
JIKESJARS=`find "$OSXHACK" -name *.jar -maxdepth 1 -printf %p: 2>/dev/null`
[ -z "$JIKESPATH" ] && JIKESPATH="$JIKESJARS" || JIKESPATH="$JIKESPATH:$JIKESJARS"
fi
unset RPMCOREJARS
if [ "$rpmmode" = "true" ] ; then
JAVALIBDIR="/usr/share/java"
JARS="ant ant-optional jaxp_parser xml_apis"
for jar in $JARS ; do RPMCOREJARS="$RPMCOREJARS$JAVALIBDIR/$jar.jar:" ; done
fi
COREJARS=`find "$ANT_HOME/lib" -name *.jar -maxdepth 1 -printf %p: 2>/dev/null`
LOCALCLASSPATH="$LOCALCLASSPATH$RPMCOREJARS$COREJARS$CLASSPATH"
# supply JIKESPATH to Ant as jikes.class.path
if [ -n "$JIKESPATH" ] ; then
[ "$cygwin" = "true" ] && JIKESPATH=`cygpath --path --windows "$JIKESPATH"`
ANT_OPTS="$ANT_OPTS -Djikes.class.path=$JIKESPATH"
fi
# Allow Jikes support (off by default)
[ "$usejikes" = "true" ] && ANT_OPTS="$ANT_OPTS -Dbuild.compiler=jikes"
# For Cygwin, switch paths to Windows format before running java
if [ "$cygwin" = "true" ]; then
ANT_HOME=`cygpath --path --windows "$ANT_HOME"`
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
LOCALCLASSPATH=`cygpath --path --windows "$LOCALCLASSPATH"`
fi
"$JAVACMD" -classpath "$LOCALCLASSPATH" -Dant.home="$ANT_HOME" $ANT_OPTS org.apache.tools.ant.Main $ANT_ARGS "$@"
--- ant.4 2002-05-02 12:19:53.000000000 +0200
+++ ant.5 2002-05-03 13:06:02.000000000 +0200
@@ -17,8 +17,8 @@
esac
if [ "$rpmmode" = "true" ] ; then
- [ -z "$ANT_HOME" ] && ANT_HOME="/usr"
- [ -z "$JAVA_FUNCTIONS" ] && $JAVA_FUNCTIONS="/usr/bin/java-functions"
+ [ -z "$ANT_HOME" ] && ANT_HOME="/usr/share/ant"
+ [ -z "$JAVA_FUNCTIONS" ] && JAVA_FUNCTIONS="/usr/bin/java-functions"
fi
if [ -z "$ANT_HOME" ] ; then
@@ -66,8 +66,8 @@
set_javacmd
else
echo "No java functions found in $JAVA_FUNCTIONS, operating in dumb mode"
- [ -z "$JAVA_HOME" ] && $JAVA_HOME="/usr/lib/java"
- [ -z "$JAVACMD" ] && $JAVACMD="$JAVA_HOME/bin/java"
+ [ -z "$JAVA_HOME" ] && JAVA_HOME="/usr/lib/java"
+ [ -z "$JAVACMD" ] && JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
@@ -83,8 +83,8 @@
unset LOCALCLASSPATH
-[ -f "$JAVA_HOME/lib/tools.jar" ] && LOCALCLASSPATH="$JAVA_HOME/lib/tools.jar"
-[ -f "$JAVA_HOME/lib/classes.zip" ] &&
LOCALCLASSPATH="$JAVA_HOME/lib/classes.zip"
+[ -f "$JAVA_HOME/lib/tools.jar" ] &&
LOCALCLASSPATH="$JAVA_HOME/lib/tools.jar:"
+[ -f "$JAVA_HOME/lib/classes.zip" ] &&
LOCALCLASSPATH="$JAVA_HOME/lib/classes.zip:"
if [ "$darwin" = "true" -a "$usejikes" = "true" ] ; then
OSXHACK="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes"
@@ -92,22 +92,17 @@
[ -z "$JIKESPATH" ] && JIKESPATH="$JIKESJARS" ||
JIKESPATH="$JIKESPATH:$JIKESJARS"
fi
+unset RPMCOREJARS
+
if [ "$rpmmode" = "true" ] ; then
JAVALIBDIR="/usr/share/java"
JARS="ant ant-optional jaxp_parser xml_apis"
- unset COREJARS
- for jar in $JARS ; do COREJARS="$COREJARS$JAVALIBDIR/$jar.jar:" ; done
-else
- COREJARS=`find "$ANT_HOME/lib" -name *.jar -maxdepth 1 -printf %p:
2>/dev/null`
+ for jar in $JARS ; do RPMCOREJARS="$RPMCOREJARS$JAVALIBDIR/$jar.jar:" ;
done
fi
+
+COREJARS=`find "$ANT_HOME/lib" -name *.jar -maxdepth 1 -printf %p: 2>/dev/null`
-[ -z "$LOCALCLASSPATH" ] && LOCALCLASSPATH="$COREJARS" ||\
- LOCALCLASSPATH="$LOCALCLASSPATH:$COREJARS"
-
-# We just constructed a :-ended LOCALCLASSPATH
-if [ -n "$CLASSPATH" ] ; then
- LOCALCLASSPATH="$LOCALCLASSPATH$CLASSPATH"
-fi
+LOCALCLASSPATH="$LOCALCLASSPATH$RPMCOREJARS$COREJARS$CLASSPATH"
# supply JIKESPATH to Ant as jikes.class.path
if [ -n "$JIKESPATH" ] ; then
--- jvm.list.orig 2002-05-03 13:16:22.000000000 +0200 +++ jvm.list 2002-05-03 13:18:23.000000000 +0200 @@ -16,6 +16,8 @@ /usr/java/jdk # Default Caldera JAVA_HOME /opt/java-1.3 +# OSX java-home +/System/Library/Frameworks/JavaVM.framework/Home # madeinlinux JAVA_HOME /usr/local/jdk1.2.2 # Kondara JAVA_HOME
--- java-functions 2002-04-30 11:24:36.000000000 +0200
+++ java-functions-setjavacmd 2002-05-03 13:19:59.000000000 +0200
@@ -25,7 +25,7 @@
# try to find it from java command
java=`which java 2>/dev/null`
if [ -n "$java" ] ; then
- JAVA_HOME=`dirname $java`/..
+ JAVA_HOME="`dirname $java`/.."
return
fi
@@ -34,7 +34,7 @@
while read jvm; do
if [ -n "$jvm" ] && [ "${jvm:0:1}" != "#" ]; then
if [ -d "$jvm" ]; then
- JAVA_HOME=$jvm
+ JAVA_HOME="$jvm"
return
fi
fi
@@ -86,6 +86,21 @@
done
}
+
+set_javacmd() {
+ [ -x "$JAVACMD" ] && return
+
+ # Add all sorts of jvm layouts here
+ [ -x "$JAVA_HOME/jre/sh/java" ] &&
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+
+ [ ! -x "$JAVACMD" -a -x "$JAVA_HOME/bin/java" ] &&
+ JAVACMD="$JAVA_HOME/bin/java"
+
+ [ ! -x "$JAVACMD" ] && JAVACMD="java"
+}
+
+
# Set flags
set_flags() {
FLAGS=$@
signature.asc
Description: PGP signature
