#! /bin/bash # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Edited for Gentoo Linux # $Header: /var/cvsroot/gentoo-x86/dev-java/ant-core/files/1.7.1-ant-r1,v 1.1 2008/11/09 00:19:14 caster Exp $ # Extract launch and ant arguments, (see details below). ant_exec_args= no_config=false use_jikes_default=false ant_exec_debug=false show_help=false for arg in "$@" ; do if [ "$arg" = "--noconfig" ] ; then no_config=true elif [ "$arg" = "--usejikes" ] ; then use_jikes_default=true elif [ "$arg" = "--execdebug" ] ; then ant_exec_debug=true elif [ my"$arg" = my"--h" -o my"$arg" = my"--help" ] ; then show_help=true ant_exec_args="$ant_exec_args -h" else if [ my"$arg" = my"-h" -o my"$arg" = my"-help" ] ; then show_help=true fi ant_exec_args="$ant_exec_args \"$arg\"" fi done # Source/default ant configuration if $no_config ; then rpm_mode=false usejikes=$use_jikes_default else # load system-wide ant configuration (ONLY if ANT_HOME has NOT been set) if [ -z "$ANT_HOME" -o "$ANT_HOME" = "/usr/share/ant" ]; then if [ -f "/etc/ant.conf" ] ; then . /etc/ant.conf fi fi # load user ant configuration if [ -f "$HOME/.ant/ant.conf" ] ; then . $HOME/.ant/ant.conf fi if [ -f "$HOME/.antrc" ] ; then . "$HOME/.antrc" fi # provide default configuration values if [ -z "$rpm_mode" ] ; then rpm_mode=false fi if [ -z "$usejikes" ] ; then usejikes=$use_jikes_default fi fi export WANT_JAVA_CONFIG=2 # Always get JAVA_HOME from java-config, unless ANT_RESPECT_JAVA_HOME is set # Use GENTOO_VM to change which VM is used instead. if [[ -z "${ANT_RESPECT_JAVA_HOME}" || -z "${JAVA_HOME}" ]]; then export JAVA_HOME="$(java-config -g JAVA_HOME)" fi if [ -z $JAVA_HOME ] ; then echo 'Error: No JDK found!' echo "Try using java-config script to set your JDK" echo "Remember that you need a JDK not a JRE" exit 1 fi ANT_HOME=/usr/share/ant-core # set ANT_LIB location ANT_LIB="${ANT_HOME}/lib" if [ -z "$JAVACMD" ] ; then if [ -n "$JAVA_HOME" ] ; then JAVACMD="$JAVA_HOME/bin/java" else JAVACMD=`which java 2> /dev/null ` if [ -z "$JAVACMD" ] ; then JAVACMD=java fi fi fi if [ ! -x "$JAVACMD" ] ; then echo "Error: JAVA_HOME is not defined correctly." echo " We cannot execute $JAVACMD" exit 1 fi if [ -z "$LOCALCLASSPATH" ] ; then LOCALCLASSPATH=$ANT_LIB/ant-launcher.jar else LOCALCLASSPATH=$ANT_LIB/ant-launcher.jar:$LOCALCLASSPATH fi # if ANT_TASKS is not set, default to "all" ANT_TASKS="${ANT_TASKS:-all}" # if ANT_TASKS is set to "all", get the tasks list from /usr/share/ant/tasks/ if [[ "${ANT_TASKS}" == "all" ]]; then ANT_TASKS="" # but only if it exists if [[ -d /usr/share/ant/tasks ]]; then ANT_TASKS="${ANT_TASKS} "/usr/share/ant/tasks/* fi if [[ -d /usr/share/ant/tasks-1.7.1 ]]; then ANT_TASKS="${ANT_TASKS} "/usr/share/ant/tasks-1.7.1/* fi # if set to "none", make ANT_TASKS empty list elif [[ "${ANT_TASKS}" == "none" ]]; then ANT_TASKS="" fi # otherwise ANT_TASKS defines explicit task list # construct the tasks list separated with commas to pass to java-config TASKS_LIST="" for task in $ANT_TASKS; do TASKS_LIST="${TASKS_LIST},$(basename $task)" done TASKS_LIST=${TASKS_LIST#,} # get the classpath for optional tasks and their dependency .jar files if [[ -n "${TASKS_LIST}" ]] ; then ANT_TASKS_CLASSPATH="-lib \"$(java-config -dp ${TASKS_LIST})\"" ANT_TASKS_LIBPATH="-Djava.library.path=\"$(java-config -di ${TASKS_LIST})\"" else ANT_TASKS_CLASSPATH="" ANT_TASKS_LIBPATH="" fi # determine where to get tools.jar from if [[ -n "${ANT_RESPECT_JAVA_HOME}" ]]; then TOOLS_JAR="${JAVA_HOME}/lib/tools.jar" else TOOLS_JAR="$(java-config --tools)" fi if [[ -n "${TOOLS_JAR}" ]] ; then LOCALCLASSPATH="$LOCALCLASSPATH:${TOOLS_JAR}" else echo "Warning: Unable to determine tools.jar location." echo " If build fails because sun.* classes could not be found," echo " Make sure you are using a JDK, not JRE as your user/system VM." echo " and that you have java-config version 2.0.30 or above installed." fi # Allow Jikes support (off by default) if $usejikes; then ANT_OPTS="$ANT_OPTS -Dbuild.compiler=jikes" fi # Show script help if requested if $show_help ; then echo $0 '[script options] [options] [target [target2 [target3] ..]]' echo 'Script Options:' echo ' --help, --h print this message and ant help' echo ' --noconfig suppress sourcing of /etc/ant.conf,' echo ' $HOME/.ant/ant.conf, and $HOME/.antrc' echo ' configuration files' echo ' --usejikes enable use of jikes by default, unless' echo ' set explicitly in configuration files' echo ' --execdebug print ant exec line generated by this' echo ' launch script' echo ' ' fi # Execute ant using eval/exec to preserve spaces in paths, # java options, and ant args ant_sys_opts= if [ -n "$JIKESPATH" ]; then ant_sys_opts="-Djikes.class.path=\"$JIKESPATH\"" fi ant_exec_command="exec \"${JAVACMD}\" ${ANT_OPTS} -classpath \"${LOCALCLASSPATH}\" \ -Dant.home=\"${ANT_HOME}\" -Dant.library.dir=\"${ANT_LIB}\" ${ant_sys_opts} \ ${ANT_TASKS_LIBPATH} org.apache.tools.ant.launch.Launcher \ ${ANT_TASKS_CLASSPATH} ${ANT_ARGS} -cp \"${CLASSPATH}\" ${ant_exec_args}" if $ant_exec_debug ; then echo $ant_exec_command fi eval $ant_exec_command