1402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll#! /bin/sh 2402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 3402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Licensed to the Apache Software Foundation (ASF) under one or more 4402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# contributor license agreements. See the NOTICE file distributed with 5402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# this work for additional information regarding copyright ownership. 6402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# The ASF licenses this file to You under the Apache License, Version 2.0 7402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# (the "License"); you may not use this file except in compliance with 8402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# the License. You may obtain a copy of the License at 9402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# 10402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# http://www.apache.org/licenses/LICENSE-2.0 11402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# 12402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Unless required by applicable law or agreed to in writing, software 13402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# distributed under the License is distributed on an "AS IS" BASIS, 14402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# See the License for the specific language governing permissions and 16402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# limitations under the License. 17402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 18402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Extract launch and ant arguments, (see details below). 19402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollant_exec_args= 20402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollno_config=false 21402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Molluse_jikes_default=false 22402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollant_exec_debug=false 23402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollshow_help=false 24402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfor arg in "$@" ; do 25402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ "$arg" = "--noconfig" ] ; then 26402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll no_config=true 27402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll elif [ "$arg" = "--usejikes" ] ; then 28402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll use_jikes_default=true 29402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll elif [ "$arg" = "--execdebug" ] ; then 30402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ant_exec_debug=true 31402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll elif [ my"$arg" = my"--h" -o my"$arg" = my"--help" ] ; then 32402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll show_help=true 33402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ant_exec_args="$ant_exec_args -h" 34402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll else 35402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ my"$arg" = my"-h" -o my"$arg" = my"-help" ] ; then 36402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll show_help=true 37402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 38402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ant_exec_args="$ant_exec_args \"$arg\"" 39402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 40402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Molldone 41402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 42402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Source/default ant configuration 43402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif $no_config ; then 44402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll rpm_mode=false 45402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll usejikes=$use_jikes_default 46402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollelse 47402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # load system-wide ant configuration (ONLY if ANT_HOME has NOT been set) 48402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -z "$ANT_HOME" -o "$ANT_HOME" = "/usr/share/ant" ]; then 49402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -f "/etc/ant.conf" ] ; then 50402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll . /etc/ant.conf 51402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 52402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 53402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 54402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # load user ant configuration 55402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -f "$HOME/.ant/ant.conf" ] ; then 56402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll . $HOME/.ant/ant.conf 57402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 58402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -f "$HOME/.antrc" ] ; then 59402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll . "$HOME/.antrc" 60402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 61402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 62402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # provide default configuration values 63402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -z "$rpm_mode" ] ; then 64402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll rpm_mode=false 65402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 66402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -z "$usejikes" ] ; then 67402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll usejikes=$use_jikes_default 68402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 69402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 70402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 71402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Setup Java environment in rpm mode 72402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif $rpm_mode ; then 73402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -f /usr/share/java-utils/java-functions ] ; then 74402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll . /usr/share/java-utils/java-functions 75402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll set_jvm 76402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll set_javacmd 77402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 78402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 79402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 80402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# OS specific support. $var _must_ be set to either true or false. 81402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollcygwin=false; 82402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Molldarwin=false; 83402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollcase "`uname`" in 84402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll CYGWIN*) cygwin=true ;; 85402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll Darwin*) darwin=true 86402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -z "$JAVA_HOME" ] ; then 87402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home 88402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 89402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ;; 90402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollesac 91402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 92402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif [ -z "$ANT_HOME" -o ! -d "$ANT_HOME" ] ; then 93402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ## resolve links - $0 may be a link to ant's home 94402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll PRG="$0" 95402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll progname=`basename "$0"` 96402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 97402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # need this for relative symlinks 98402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll while [ -h "$PRG" ] ; do 99402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ls=`ls -ld "$PRG"` 100402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll link=`expr "$ls" : '.*-> \(.*\)$'` 101402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if expr "$link" : '/.*' > /dev/null; then 102402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll PRG="$link" 103402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll else 104402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll PRG=`dirname "$PRG"`"/$link" 105402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 106402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll done 107402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 108402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ANT_HOME=`dirname "$PRG"`/.. 109402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 110402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # make it fully qualified 111402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ANT_HOME=`cd "$ANT_HOME" > /dev/null && pwd` 112402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 113402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 114402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# For Cygwin, ensure paths are in UNIX format before anything is touched 115402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif $cygwin ; then 116402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll [ -n "$ANT_HOME" ] && 117402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ANT_HOME=`cygpath --unix "$ANT_HOME"` 118402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll [ -n "$JAVA_HOME" ] && 119402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 120402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 121402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 122402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# set ANT_LIB location 123402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael MollANT_LIB="${ANT_HOME}/lib" 124402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 125402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif [ -z "$JAVACMD" ] ; then 126402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -n "$JAVA_HOME" ] ; then 127402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # IBM's JDK on AIX uses strange locations for the executables 128402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 129402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll JAVACMD="$JAVA_HOME/jre/sh/java" 130402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll elif [ -x "$JAVA_HOME/jre/bin/java" ] ; then 131402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll JAVACMD="$JAVA_HOME/jre/bin/java" 132402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll else 133402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll JAVACMD="$JAVA_HOME/bin/java" 134402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 135402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll else 136402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll JAVACMD=`which java 2> /dev/null ` 137402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -z "$JAVACMD" ] ; then 138402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll JAVACMD=java 139402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 140402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 141402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 142402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 143402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif [ ! -x "$JAVACMD" ] ; then 144402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo "Error: JAVA_HOME is not defined correctly." 145402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo " We cannot execute $JAVACMD" 146402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll exit 1 147402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 148402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 149402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Build local classpath using just the launcher in non-rpm mode or 150402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# use the Jpackage helper in rpm mode with basic and default jars 151402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# specified in the ant.conf configuration. Because the launcher is 152402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# used, libraries linked in ANT_HOME/lib will also be included, but this 153402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# is discouraged as it is not java-version safe. A user should 154402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# request optional jars and their dependencies via the OPT_JAR_LIST 155402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# variable 156402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif $rpm_mode && [ -x /usr/bin/build-classpath ] ; then 157402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll LOCALCLASSPATH="$(/usr/bin/build-classpath ant ant-launcher jaxp_parser_impl xml-commons-apis)" 158402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 159402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # If no optional jars have been specified then build the default list 160402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -z "$OPT_JAR_LIST" ] ; then 161402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll for file in /etc/ant.d/*; do 162402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -f "$file" ]; then 163402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll case "$file" in 164402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *~) ;; 165402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *#*) ;; 166402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *.rpmsave) ;; 167402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *.rpmnew) ;; 168402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *) 169402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll for dep in `cat "$file"`; do 170402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll case "$OPT_JAR_LIST" in 171402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *"$dep"*) ;; 172402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *) OPT_JAR_LIST="$OPT_JAR_LIST${OPT_JAR_LIST:+ }$dep" 173402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll esac 174402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll done 175402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll esac 176402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 177402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll done 178402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 179402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 180402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # If the user requested to try to add some other jars to the classpath 181402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -n "$OPT_JAR_LIST" ] ; then 182402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll _OPTCLASSPATH="$(/usr/bin/build-classpath $OPT_JAR_LIST 2> /dev/null)" 183402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -n "$_OPTCLASSPATH" ] ; then 184402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll LOCALCLASSPATH="$LOCALCLASSPATH:$_OPTCLASSPATH" 185402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 186402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 187402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 188402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # Explicitly add javac path to classpath, assume JAVA_HOME set 189402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # properly in rpm mode 190402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -f "$JAVA_HOME/lib/tools.jar" ] ; then 191402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll LOCALCLASSPATH="$LOCALCLASSPATH:$JAVA_HOME/lib/tools.jar" 192402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 193402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -f "$JAVA_HOME/lib/classes.zip" ] ; then 194402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll LOCALCLASSPATH="$LOCALCLASSPATH:$JAVA_HOME/lib/classes.zip" 195402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 196402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 197402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # if CLASSPATH_OVERRIDE env var is set, LOCALCLASSPATH will be 198402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # user CLASSPATH first and ant-found jars after. 199402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # In that case, the user CLASSPATH will override ant-found jars 200402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # 201402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # if CLASSPATH_OVERRIDE is not set, we'll have the normal behaviour 202402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # with ant-found jars first and user CLASSPATH after 203402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -n "$CLASSPATH" ] ; then 204402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # merge local and specified classpath 205402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -z "$LOCALCLASSPATH" ] ; then 206402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll LOCALCLASSPATH="$CLASSPATH" 207402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll elif [ -n "$CLASSPATH_OVERRIDE" ] ; then 208402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll LOCALCLASSPATH="$CLASSPATH:$LOCALCLASSPATH" 209402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll else 210402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll LOCALCLASSPATH="$LOCALCLASSPATH:$CLASSPATH" 211402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 212402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 213402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # remove class path from launcher -cp option 214402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll CLASSPATH="" 215402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 216402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollelse 217402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # not using rpm_mode; use launcher to determine classpaths 218402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -z "$LOCALCLASSPATH" ] ; then 219402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll LOCALCLASSPATH=$ANT_LIB/ant-launcher.jar 220402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll else 221402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll LOCALCLASSPATH=$ANT_LIB/ant-launcher.jar:$LOCALCLASSPATH 222402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 223402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 224402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 225402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif [ -n "$JAVA_HOME" ] ; then 226402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # OSX hack to make Ant work with jikes 227402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if $darwin ; then 228402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll OSXHACK="${JAVA_HOME}/../Classes" 229402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -d "${OSXHACK}" ] ; then 230402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll for i in "${OSXHACK}"/*.jar 231402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll do 232402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll JIKESPATH="$JIKESPATH:$i" 233402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll done 234402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 235402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 236402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 237402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 238402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Allow Jikes support (off by default) 239402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif $usejikes; then 240402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ANT_OPTS="$ANT_OPTS -Dbuild.compiler=jikes" 241402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 242402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 243402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# For Cygwin, switch paths to appropriate format before running java 244402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# For PATHs convert to unix format first, then to windows format to ensure 245402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# both formats are supported. Probably this will fail on directories with ; 246402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# in the name in the path. Let's assume that paths containing ; are more 247402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# rare than windows style paths on cygwin. 248402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif $cygwin; then 249402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; then 250402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll format=mixed 251402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll else 252402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll format=windows 253402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 254402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ANT_HOME=`cygpath --$format "$ANT_HOME"` 255402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ANT_LIB=`cygpath --$format "$ANT_LIB"` 256402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll JAVA_HOME=`cygpath --$format "$JAVA_HOME"` 257402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll LCP_TEMP=`cygpath --path --unix "$LOCALCLASSPATH"` 258402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll LOCALCLASSPATH=`cygpath --path --$format "$LCP_TEMP"` 259402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -n "$CLASSPATH" ] ; then 260402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll CP_TEMP=`cygpath --path --unix "$CLASSPATH"` 261402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll CLASSPATH=`cygpath --path --$format "$CP_TEMP"` 262402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 263402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll CYGHOME=`cygpath --$format "$HOME"` 264402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 265402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 266402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Show script help if requested 267402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif $show_help ; then 268402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo $0 '[script options] [options] [target [target2 [target3] ..]]' 269402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo 'Script Options:' 270402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo ' --help, --h print this message and ant help' 271402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo ' --noconfig suppress sourcing of /etc/ant.conf,' 272402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo ' $HOME/.ant/ant.conf, and $HOME/.antrc' 273402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo ' configuration files' 274402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo ' --usejikes enable use of jikes by default, unless' 275402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo ' set explicitly in configuration files' 276402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo ' --execdebug print ant exec line generated by this' 277402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo ' launch script' 278402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo ' ' 279402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 280402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# add a second backslash to variables terminated by a backslash under cygwin 281402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif $cygwin; then 282402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll case "$ANT_HOME" in 283402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *\\ ) 284402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ANT_HOME="$ANT_HOME\\" 285402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ;; 286402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll esac 287402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll case "$CYGHOME" in 288402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *\\ ) 289402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll CYGHOME="$CYGHOME\\" 290402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ;; 291402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll esac 292402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll case "$JIKESPATH" in 293402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *\\ ) 294402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll JIKESPATH="$JIKESPATH\\" 295402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ;; 296402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll esac 297402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll case "$LOCALCLASSPATH" in 298402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *\\ ) 299402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll LOCALCLASSPATH="$LOCALCLASSPATH\\" 300402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ;; 301402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll esac 302402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll case "$CLASSPATH" in 303402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *\\ ) 304402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll CLASSPATH="$CLASSPATH\\" 305402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ;; 306402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll esac 307402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 308402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Execute ant using eval/exec to preserve spaces in paths, 309402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# java options, and ant args 310402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollant_sys_opts= 311402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif [ -n "$CYGHOME" ]; then 312402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -n "$JIKESPATH" ]; then 313402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ant_sys_opts="-Djikes.class.path=\"$JIKESPATH\" -Dcygwin.user.home=\"$CYGHOME\"" 314402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll else 315402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ant_sys_opts="-Dcygwin.user.home=\"$CYGHOME\"" 316402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 317402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollelse 318402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ -n "$JIKESPATH" ]; then 319402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll ant_sys_opts="-Djikes.class.path=\"$JIKESPATH\"" 320402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 321402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 322402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollant_exec_command="exec \"$JAVACMD\" $ANT_OPTS -classpath \"$LOCALCLASSPATH\" -Dant.home=\"$ANT_HOME\" -Dant.library.dir=\"$ANT_LIB\" $ant_sys_opts org.apache.tools.ant.launch.Launcher $ANT_ARGS -cp \"$CLASSPATH\" $ant_exec_args" 323402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif $ant_exec_debug ; then 324402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo $ant_exec_command 325402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 326402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Molleval $ant_exec_command 327