source: local/greenstone3/linux-android-ndk-cross/apache-ant-1.8.1/bin/ant@ 26780

Last change on this file since 26780 was 26780, checked in by davidb, 11 years ago

Initial cut at setup files for compiling Greenstone3 using the Android NDK

File size: 9.8 KB
Line 
1#! /bin/sh
2
3# Licensed to the Apache Software Foundation (ASF) under one or more
4# contributor license agreements. See the NOTICE file distributed with
5# this work for additional information regarding copyright ownership.
6# The ASF licenses this file to You under the Apache License, Version 2.0
7# (the "License"); you may not use this file except in compliance with
8# the License. You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17
18# Extract launch and ant arguments, (see details below).
19ant_exec_args=
20no_config=false
21use_jikes_default=false
22ant_exec_debug=false
23show_help=false
24for arg in "$@" ; do
25 if [ "$arg" = "--noconfig" ] ; then
26 no_config=true
27 elif [ "$arg" = "--usejikes" ] ; then
28 use_jikes_default=true
29 elif [ "$arg" = "--execdebug" ] ; then
30 ant_exec_debug=true
31 elif [ my"$arg" = my"--h" -o my"$arg" = my"--help" ] ; then
32 show_help=true
33 ant_exec_args="$ant_exec_args -h"
34 else
35 if [ my"$arg" = my"-h" -o my"$arg" = my"-help" ] ; then
36 show_help=true
37 fi
38 ant_exec_args="$ant_exec_args \"$arg\""
39 fi
40done
41
42# Source/default ant configuration
43if $no_config ; then
44 rpm_mode=false
45 usejikes=$use_jikes_default
46else
47 # load system-wide ant configuration (ONLY if ANT_HOME has NOT been set)
48 if [ -z "$ANT_HOME" -o "$ANT_HOME" = "/usr/share/ant" ]; then
49 if [ -f "/etc/ant.conf" ] ; then
50 . /etc/ant.conf
51 fi
52 fi
53
54 # load user ant configuration
55 if [ -f "$HOME/.ant/ant.conf" ] ; then
56 . $HOME/.ant/ant.conf
57 fi
58 if [ -f "$HOME/.antrc" ] ; then
59 . "$HOME/.antrc"
60 fi
61
62 # provide default configuration values
63 if [ -z "$rpm_mode" ] ; then
64 rpm_mode=false
65 fi
66 if [ -z "$usejikes" ] ; then
67 usejikes=$use_jikes_default
68 fi
69fi
70
71# Setup Java environment in rpm mode
72if $rpm_mode ; then
73 if [ -f /usr/share/java-utils/java-functions ] ; then
74 . /usr/share/java-utils/java-functions
75 set_jvm
76 set_javacmd
77 fi
78fi
79
80# OS specific support. $var _must_ be set to either true or false.
81cygwin=false;
82darwin=false;
83mingw=false;
84case "`uname`" in
85 CYGWIN*) cygwin=true ;;
86 Darwin*) darwin=true
87 if [ -z "$JAVA_HOME" ] ; then
88 JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
89 fi
90 ;;
91 MINGW*) mingw=true ;;
92esac
93
94if [ -z "$ANT_HOME" -o ! -d "$ANT_HOME" ] ; then
95 ## resolve links - $0 may be a link to ant's home
96 PRG="$0"
97 progname=`basename "$0"`
98
99 # need this for relative symlinks
100 while [ -h "$PRG" ] ; do
101 ls=`ls -ld "$PRG"`
102 link=`expr "$ls" : '.*-> \(.*\)$'`
103 if expr "$link" : '/.*' > /dev/null; then
104 PRG="$link"
105 else
106 PRG=`dirname "$PRG"`"/$link"
107 fi
108 done
109
110 ANT_HOME=`dirname "$PRG"`/..
111
112 # make it fully qualified
113 ANT_HOME=`cd "$ANT_HOME" > /dev/null && pwd`
114fi
115
116# For Cygwin and Mingw, ensure paths are in UNIX format before
117# anything is touched
118if $cygwin ; then
119 [ -n "$ANT_HOME" ] &&
120 ANT_HOME=`cygpath --unix "$ANT_HOME"`
121 [ -n "$JAVA_HOME" ] &&
122 JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
123fi
124if $mingw ; then
125 [ -n "$ANT_HOME" ] &&
126 ANT_HOME="`(cd "$ANT_HOME"; pwd)`"
127 [ -n "$JAVA_HOME" ] &&
128 JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
129fi
130
131# set ANT_LIB location
132ANT_LIB="${ANT_HOME}/lib"
133
134if [ -z "$JAVACMD" ] ; then
135 if [ -n "$JAVA_HOME" ] ; then
136 # IBM's JDK on AIX uses strange locations for the executables
137 if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
138 JAVACMD="$JAVA_HOME/jre/sh/java"
139 elif [ -x "$JAVA_HOME/jre/bin/java" ] ; then
140 JAVACMD="$JAVA_HOME/jre/bin/java"
141 else
142 JAVACMD="$JAVA_HOME/bin/java"
143 fi
144 else
145 JAVACMD=`which java 2> /dev/null `
146 if [ -z "$JAVACMD" ] ; then
147 JAVACMD=java
148 fi
149 fi
150fi
151
152if [ ! -x "$JAVACMD" ] ; then
153 echo "Error: JAVA_HOME is not defined correctly."
154 echo " We cannot execute $JAVACMD"
155 exit 1
156fi
157
158# Build local classpath using just the launcher in non-rpm mode or
159# use the Jpackage helper in rpm mode with basic and default jars
160# specified in the ant.conf configuration. Because the launcher is
161# used, libraries linked in ANT_HOME/lib will also be included, but this
162# is discouraged as it is not java-version safe. A user should
163# request optional jars and their dependencies via the OPT_JAR_LIST
164# variable
165if $rpm_mode && [ -x /usr/bin/build-classpath ] ; then
166 LOCALCLASSPATH="$(/usr/bin/build-classpath ant ant-launcher jaxp_parser_impl xml-commons-apis)"
167
168 # If no optional jars have been specified then build the default list
169 if [ -z "$OPT_JAR_LIST" ] ; then
170 for file in /etc/ant.d/*; do
171 if [ -f "$file" ]; then
172 case "$file" in
173 *~) ;;
174 *#*) ;;
175 *.rpmsave) ;;
176 *.rpmnew) ;;
177 *)
178 for dep in `cat "$file"`; do
179 case "$OPT_JAR_LIST" in
180 *"$dep"*) ;;
181 *) OPT_JAR_LIST="$OPT_JAR_LIST${OPT_JAR_LIST:+ }$dep"
182 esac
183 done
184 esac
185 fi
186 done
187 fi
188
189 # If the user requested to try to add some other jars to the classpath
190 if [ -n "$OPT_JAR_LIST" ] ; then
191 _OPTCLASSPATH="$(/usr/bin/build-classpath $OPT_JAR_LIST 2> /dev/null)"
192 if [ -n "$_OPTCLASSPATH" ] ; then
193 LOCALCLASSPATH="$LOCALCLASSPATH:$_OPTCLASSPATH"
194 fi
195 fi
196
197 # Explicitly add javac path to classpath, assume JAVA_HOME set
198 # properly in rpm mode
199 if [ -f "$JAVA_HOME/lib/tools.jar" ] ; then
200 LOCALCLASSPATH="$LOCALCLASSPATH:$JAVA_HOME/lib/tools.jar"
201 fi
202 if [ -f "$JAVA_HOME/lib/classes.zip" ] ; then
203 LOCALCLASSPATH="$LOCALCLASSPATH:$JAVA_HOME/lib/classes.zip"
204 fi
205
206 # if CLASSPATH_OVERRIDE env var is set, LOCALCLASSPATH will be
207 # user CLASSPATH first and ant-found jars after.
208 # In that case, the user CLASSPATH will override ant-found jars
209 #
210 # if CLASSPATH_OVERRIDE is not set, we'll have the normal behaviour
211 # with ant-found jars first and user CLASSPATH after
212 if [ -n "$CLASSPATH" ] ; then
213 # merge local and specified classpath
214 if [ -z "$LOCALCLASSPATH" ] ; then
215 LOCALCLASSPATH="$CLASSPATH"
216 elif [ -n "$CLASSPATH_OVERRIDE" ] ; then
217 LOCALCLASSPATH="$CLASSPATH:$LOCALCLASSPATH"
218 else
219 LOCALCLASSPATH="$LOCALCLASSPATH:$CLASSPATH"
220 fi
221
222 # remove class path from launcher -cp option
223 CLASSPATH=""
224 fi
225else
226 # not using rpm_mode; use launcher to determine classpaths
227 if [ -z "$LOCALCLASSPATH" ] ; then
228 LOCALCLASSPATH=$ANT_LIB/ant-launcher.jar
229 else
230 LOCALCLASSPATH=$ANT_LIB/ant-launcher.jar:$LOCALCLASSPATH
231 fi
232fi
233
234if [ -n "$JAVA_HOME" ] ; then
235 # OSX hack to make Ant work with jikes
236 if $darwin ; then
237 OSXHACK="${JAVA_HOME}/../Classes"
238 if [ -d "${OSXHACK}" ] ; then
239 for i in "${OSXHACK}"/*.jar
240 do
241 JIKESPATH="$JIKESPATH:$i"
242 done
243 fi
244 fi
245fi
246
247# Allow Jikes support (off by default)
248if $usejikes; then
249 ANT_OPTS="$ANT_OPTS -Dbuild.compiler=jikes"
250fi
251
252# For Cygwin, switch paths to appropriate format before running java
253# For PATHs convert to unix format first, then to windows format to ensure
254# both formats are supported. Probably this will fail on directories with ;
255# in the name in the path. Let's assume that paths containing ; are more
256# rare than windows style paths on cygwin.
257if $cygwin; then
258 if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; then
259 format=mixed
260 else
261 format=windows
262 fi
263 [ -n "$ANT_HOME" ] && ANT_HOME=`cygpath --$format "$ANT_HOME"`
264 ANT_LIB=`cygpath --$format "$ANT_LIB"`
265 [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --$format "$JAVA_HOME"`
266 LCP_TEMP=`cygpath --path --unix "$LOCALCLASSPATH"`
267 LOCALCLASSPATH=`cygpath --path --$format "$LCP_TEMP"`
268 if [ -n "$CLASSPATH" ] ; then
269 CP_TEMP=`cygpath --path --unix "$CLASSPATH"`
270 CLASSPATH=`cygpath --path --$format "$CP_TEMP"`
271 fi
272 CYGHOME=`cygpath --$format "$HOME"`
273fi
274
275# Show script help if requested
276if $show_help ; then
277 echo $0 '[script options] [options] [target [target2 [target3] ..]]'
278 echo 'Script Options:'
279 echo ' --help, --h print this message and ant help'
280 echo ' --noconfig suppress sourcing of /etc/ant.conf,'
281 echo ' $HOME/.ant/ant.conf, and $HOME/.antrc'
282 echo ' configuration files'
283 echo ' --usejikes enable use of jikes by default, unless'
284 echo ' set explicitly in configuration files'
285 echo ' --execdebug print ant exec line generated by this'
286 echo ' launch script'
287 echo ' '
288fi
289# add a second backslash to variables terminated by a backslash under cygwin
290if $cygwin; then
291 case "$ANT_HOME" in
292 *\\ )
293 ANT_HOME="$ANT_HOME\\"
294 ;;
295 esac
296 case "$CYGHOME" in
297 *\\ )
298 CYGHOME="$CYGHOME\\"
299 ;;
300 esac
301 case "$JIKESPATH" in
302 *\\ )
303 JIKESPATH="$JIKESPATH\\"
304 ;;
305 esac
306 case "$LOCALCLASSPATH" in
307 *\\ )
308 LOCALCLASSPATH="$LOCALCLASSPATH\\"
309 ;;
310 esac
311 case "$CLASSPATH" in
312 *\\ )
313 CLASSPATH="$CLASSPATH\\"
314 ;;
315 esac
316fi
317# Execute ant using eval/exec to preserve spaces in paths,
318# java options, and ant args
319ant_sys_opts=
320if [ -n "$CYGHOME" ]; then
321 if [ -n "$JIKESPATH" ]; then
322 ant_sys_opts="-Djikes.class.path=\"$JIKESPATH\" -Dcygwin.user.home=\"$CYGHOME\""
323 else
324 ant_sys_opts="-Dcygwin.user.home=\"$CYGHOME\""
325 fi
326else
327 if [ -n "$JIKESPATH" ]; then
328 ant_sys_opts="-Djikes.class.path=\"$JIKESPATH\""
329 fi
330fi
331ant_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\""
332if $ant_exec_debug ; then
333 echo $ant_exec_command $ant_exec_args
334fi
335eval $ant_exec_command "$ant_exec_args"
Note: See TracBrowser for help on using the repository browser.